FTUI Switch mit mehreren Zuständen ändert den Zustand trotz data-lock

Begonnen von mBielemeier, 10 Juni 2019, 10:48:34

Vorheriges Thema - Nächstes Thema

mBielemeier

Hallo,

ich versuche, das Alarm-Modul mit Passwort zu sichern ohne die gesamte Oberfläche zu sperren. Für die Bedienung habe ich einige Switch-Widgets mit Attributen für mehrere Zustände in der FTUI-Oberfläche, alle in der Art

<div data-type="switch" data-device="Alarm3ein" data-lock="Password:STATE" data-lock-on="off" data-states='["on","off","np","na"]' data-background-colors='["green","darkgray","red","gray"]' data-set-states='["","on","",""]'></div>

Das Sperren wird korrekt ausgewertet, die CSS-Klasse "lock" wird bei "Password:STATE" == "off" gesetzt und sonst entfernt. Der Switch lässt sich aber auch im Zustand "lock" klicken und löst ein "set Alarm3ein on" aus. Direkt anschließend wird dann auf "off" zurückgesetzt. Aber das Event ist dann schon ausgelöst und die anderen Zustände "np", "na" gehen verloren.

Übersehe ich eine Einstellung zum Sperren? Ich habe mir jetzt geholfen, indem ich die Sperre aus widget_famultibutton.js
function toggleOn(elem) {
        if (elem.hasClass('lock')) {
//return;
            elem.addClass('fail-shake');
            setTimeout(function () {
                var faelem = elem.data('famultibutton');
                if (faelem) {
                    faelem.setOff();
                }
                elem.removeClass('fail-shake');

            }, 500);
            return;
        } ...

etwas abgewandelt in fa-multi-button.js eingefügt habe (in Version 1.3.0 ab Zeile 470):
if (this.parentElement.classList.contains("lock")) {
elem.addClass('fail-shake');
setTimeout(function () {
elem.removeClass('fail-shake');
}, 500);
return false;
}


Dadurch kommt die Signalisierung, aber der Zustand bleibt erhalten und es wird kein "set" ausgelöst. Wenn das auch schon ohne Eingriff in den Code geht, wäre es natürlich besser.

Viele Grüße
Manfred
FHEM 6.1 Raspberry 4, CUL868+CUL433 auf ESP8266-Basis, FS20, IT-Steckdosen, ESP8266-MQTT, Zigbee, Shelly