NEWS
Zigbee Aqara 2-fach Schalter
-
Hallo zusammen,
Ich habe mir den 2-fach Zigbee-Schalter von Aqara zugelegt. Nachdem ich ein bisschen gebraucht habe ihn an den Stick anzulernen, wollte ich ihn dann dazu nutzen um Lichter zu schalten. Ich habe jetzt aber festgestellt, daß er bei einem Schaltvorgang (1x drücken) auf true und gleich wieder auf false wechselt, das Licht geht also an und gleich wieder aus. Ist das normal bei dem Schalter? Ich bin davon ausgegangen 1x drücken = true ein weiteres Mal drücken wieder false…
Hat jemand Erfahrung mit dem Ding?
Gruß
Ja.rod
-
Jupp, is so. Ich fange das als Trigger in einem Script ab. Ich nutze den Doppeltaster für meine beiden Toreinfahrten.
-
Ich kann mir von Prinzip vorstellen was du meinst, bin aber noch eine Laie was Blockly-Scripts betrifft, kannst du mir ein Beispiel geben?
-
Du brauchst nur den "falls"-Baustein von Blockly nehmen und dort "ist wahr" anzugeben.
Dann wird nur bei Änderung auf "ist wahr" (=true) getriggert.
MfG Markus
-
Ich kann mir von Prinzip vorstellen was du meinst, bin aber noch eine Laie was Blockly-Scripts betrifft, kannst du mir ein Beispiel geben? `
Blockly mache ich nicht. Hier mal das Script welches bei mir läuft:on({id: 'zigbee.0.00158d000128eefc.left_click', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value != oldValue) { setState('mqtt.0.Einfahrt_1.SET.gpio.5', '1'); log('Einfahrt 1 öffnet'); setStateDelayed('mqtt.0.Einfahrt_1.SET.gpio.5', '0', 1000, false); log('Einfahrt 1 schließt'); }});
-
Vielen Dank. Werde ich morgen früh ausprobieren.
-
Dein Skript versteh ich nicht.
Im on-Trigger steht als change "ne", triggert also nur wenn ungleich ist.
Bedeutet dann also, daß die Abfrage value!=oldValue immer true ist; und somit obsolet ist.
Ich denke einfach würde das so gehen:
on({id: 'zigbee.0.00158d000128eefc.left_click', change: "ne", val: true}, function (obj) { ... });
Dann wird der Trigger nur ausgelöst, wenn er von false auf true geändert wurde,
aber nicht von true auf false.
MfG Markus
-
Dein Skript versteh ich nicht.
Im on-Trigger steht als change "ne", triggert also nur wenn ungleich ist.
Bedeutet dann also, daß die Abfrage value!=oldValue immer true ist; und somit obsolet ist.
Ich denke einfach würde das so gehen:
on({id: 'zigbee.0.00158d000128eefc.left_click', change: "ne", val: true}, function (obj) { ... });
Dann wird der Trigger nur ausgelöst, wenn er von false auf true geändert wurde,
aber nicht von true auf false.
MfG Markus `
Hallo Markus,das Script stammt aus einer Zeit als ich von Javascript so gar keine Ahnung hatte. (Womit ich nicht sagen will, dass es heut anders ist :lol: )
ich hatte damals Probleme, dass einmal bei false –> true ausgelöst wurde und gleich noch mal beim Abfallen von false --> true.
Ich hatte mir grad noch einmal die "Function documentation" angeschaut und du wirst auch Recht haben. Mit deinem Ansatz kann man auf den if-Zweig verzichten.
VG Lenny