Sicherheits-Bestätigungsabrage bei Buttos/Switches

Begonnen von Tobias, 15 Mai 2017, 16:09:46

Vorheriges Thema - Nächstes Thema

Tobias

Hi,
gibt es (am besten FTUI OOTB) ein code snipped für eine Art Bestätigungsabfrage bei Betätigung eines Buttons oder Switches?

Ich habe bei mir zb. jetzt das Setzen der Betriebsart meiner Heizung als 3er SwitchGruppe umgesetzt.
Wenn man jetzt zb. ausversehen auf einen der Buttons kommt, wird sofort die Betriebsart verändert.
Am liebsten so wie man es von Windoof kennt, "Sind Sie sicher das Sie diese Aktion ausführen möchten?" -> Ja/Nein
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Reinerlein

Hi Tobias,

ich habe das z.B. bei mir etwas anders gelöst.

Ich habe einen Button auf der Oberfläche, der für eine gewisse Zeit (30 Sekunden) einen Änderungsfreigabe-Dummy in Fhem setzt. Wenn dieser Button gedrückt wurde, kann meine Änderungen in diesem Zeitraum durchführen.
Ich hatte bei meinem Tablet das Problem, dass ich manchmal aus Versehen etwas umgeschaltet hatte, obwohl ich eigentlich woanders was sehen wollte...

Diesen Dummy kann ich dann bei einem Switch als data-lock angeben, und erhalte somit einen blockierten Switch, es sei denn man hat diese Änderungsfreigabe aktiv.

Hier mal der Änderungsfreigabe-Dummy in Fhem:

defmod global_FTUIFree dummy
attr global_FTUIFree alias FTUI-Free
attr global_FTUIFree devStateIcon off:taster_ch_aus_rot:on on:taster_ch_an_gruen:off set_.*:ampel_gelb
attr global_FTUIFree icon secur_locked
attr global_FTUIFree setList on off
attr global_FTUIFree useSetExtensions 1
attr global_FTUIFree userReadings lock:.* {\
  return 'on' if (ReadingsVal($name, 'state', 'off') eq 'off');;\
  return 'off';;\
}
attr global_FTUIFree webCmd on:off

Durch das Userreading bin ich in der Lage auch immer das Gegenteil abfragen zu können. Z.B. ist es manchmal einfacher eine Sperr-Angabe zu machen, als eine Freigabe-Angabe. "data-lock" ist eine solche Sperr-Abfrage, trotzdem wollte ich einen Freigabebutton, wo man die ablaufende Zeit sieht. Dafür braucht man irgendwo eine Logik-Umkehr...

Hier dann der Änderungsfreigabeschalter in Tablet-UI:

<div data-type="switch" data-device="global_FTUIFree" data-icon="fa-unlock-alt" data-set-on="on-for-timer 30" class="tiny"></div>
<div data-type="label" class="tiny">Änderungsfreigabe</div>

Beim Drücken wird der Dummy für 30 Sekunden aktiviert. Es wird ein optischer Ablaufbalken um diesen Button herum dargestellt,

Und hier dann, wie man es bei einem Button mittels data-lock verwenden kann:

<div data-type="switch" data-device="global_Home" data-icon="fa-home" data-lock="global_FTUIFree:lock"></div>


Grüße
Reinerlein

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Standarduser

Eine andere Variante:

Angenommen, dein Switch/Button/Push/Wasauchimmer schaltet die Heizung ab.

Bisher hast Du diese Funktion "Heizung aus" direkt an dem Button hinterlegt. Eine Sicherheitsabfrage kannst Du einbauen, indem dieser Button nur ein Popup öffnet, der dann zwei weitere Buttons "OK" und "ABBRUCH" enthält. Während "OK" die eigentliche Funktion (also Heizung aus) ausführt, schließt "ABBRUCH" einfach das Popup wieder.

Aber die Variante von Reineren finde ich auch ganz interessant. Werde ich sicher mal ausprobieren.