NEWS
Bei Druck eines Tasters Toggeln
-
Hallo,
ich verzweifle gerade mal wieder an Javascript
Ich versuche mir ein Script zu stricken, das beim betätigen eines Tasters den Schaltzustand eines Zwischensteckers auf true oder false prüft und dann den jeweiligen anderen Zustand schaltet.
on("hm-rpc.0.JEQ0696242.3.PRESS_SHORT", function(obj) { if(obj.newState.val ===false) {setState("hm-rpc.0.JEQ0697674.1.STATE" ,true);} else {setState("hm-rpc.0.JEQ0697674.1.STATE" ,false);} });
Wo liegt nur der Fehler?
Kann mir jemand helfen?
-
Versuche es mal so:
on({id: "hm-rpc.0.JEQ0696242.3.PRESS_SHORT", val: true}, function() { if(getState("hm-rpc.0.JEQ0697674.1.STATE").val) {setState("hm-rpc.0.JEQ0697674.1.STATE" ,false);} else {setState("hm-rpc.0.JEQ0697674.1.STATE" ,true);} });
-
Funktioniert bestens
Vielen Dank für Deine Unterstützung!
-
Man kann es noch weiter abkürzen mit der Kurzschreibweise:
on({id: "hm-rpc.0.JEQ0696242.3.PRESS_SHORT", val: true}, function() { x = (getState("hm-rpc.0.JEQ0697674.1.STATE").val === true) ? false : true; setState("hm-rpc.0.JEQ0697674.1.STATE", x); }); ````Lohnt sich hier aber kaum :lol: Gruß, Pix
-
Es müsste noch kürzer ebenfalls funktionieren:
on({id: "hm-rpc.0.JEQ0696242.3.PRESS_SHORT", val: true}, function() { setState("hm-rpc.0.JEQ0697674.1.STATE", !getState("hm-rpc.0.JEQ0697674.1.STATE").val); });
-
Das kannte ich noch gar nicht. Steht das ! fürs Umkehren des Wertes? Wieder was gelernt, das probiere ich morgen mal aus.
Danke,
Pix
Gesendet mit Tapatalk
-
@pix:Steht das ! fürs Umkehren des Wertes? `
Ja, ! vor einem Wert (boolean) bedeutet https://wiki.selfhtml.org/wiki/JavaScript/Operatoren/Logische_Operatoren.