NEWS
[gelöst] Xiaomi Aqara Wandschalter ZigBee Version
-
Hallo,
ich versuche seit Tagen den Wandschalter von Xiaomi zum laufen zu bekommen.
Generell funktioniert er. Im IoBroker wird der Wanschalter angezeigt. Ich musste hierbei feststellen das es sich nicht direkt um einen Schalter handelt sondern um einen Switch. Wenn man in drückt springt der Wert für den Wandschalter kurz auf true und dann direkt wieder auf false.
Mein derzeitiges Skript zum anschalten , welches nicht funktioniert, sieht wie folgt aus:
on({id: "mihome.0.devices.86sw2_158d000163dec7.channel_0"/*First button pressed*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("mihome.0.devices.86sw2_158d000163dec7.channel_0").val == true) { setState("mqtt.0.cmnd.Wohnzimmer-sonoff-Steckdose-Steh.POWER"/*cmnd/Wohnzimmer-sonoff-Steckdose-Steh/POWER*/, true); } });
Kann mir jemand sagen ob es am Wandschalter, mir oder dem Skript liegt ???
Und vielleicht noch besser mir eine Lösung nennen ??
Vielen Dank schonmal im voraus. In der Suche konnte ich leider nichts hierzu finden…..
-
Wenn du direkt auf true triggers musst du im Code den Status nicht nochmals abfragen. Beim setState solltest du vllt nach dem Wert true noch ein false als weiteren Parameter schreiben weil du ja was steuern willst … wobei ich nicht weiß ob das bei mqtt so nötig ist.
-
Leider kann ich nicht so gut programmieren daher habe ich für den Code Blocky verwendet
-
Leider kann ich nicht so gut programmieren daher habe ich für den Code Blocky verwendet `
exportiere mal dein blockly dan koennen wir dir damit weiterhelfen mit den tips von apollon77.
Und ist dies ein schalter der einen an/aus status hat (wippe oben/unter) oder ein taster (drukken - befehl)?
-
Es ist ein Taster. Er springt immer wieder in die Ausgangspostion.
Habe den Code nun wie folgt angepasst. Das Anschalten funktioniert nun.
on({id: "mihome.0.devices.86sw2_158d000163dec7.channel_1"/*Second button pressed*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER"/*cmnd/Wohnzimmer-Sonoff-rf-Esstischlam/POWER*/, true); });
Das ist nun mein geänderter Blocky Auszug
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="|=hlNxvm0TXlNLEVsT|@" x="263" y="188"><field name="OID">mihome.0.devices.86sw2_158d000163dec7.channel_1</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="control" id="?Pr(Ul1;/fKO(y!y=#;7"><mutation delay_input="false"></mutation> <field name="OID">mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="y.igRc`;a9%b3qGZm.:t"><field name="BOOL">TRUE</field></block></value></block></statement></block></xml>
Habt Ihr ne Idee wie ich mit dem Schalter nun auch wieder ausschalten kann ?
modEdit: Code in code bloecken bitten
-
Es ist ein Taster. Er springt immer wieder in die Ausgangspostion.
Habe den Code nun wie folgt angepasst. Das Anschalten funktioniert nun.
on({id: "mihome.0.devices.86sw2_158d000163dec7.channel_1"/*Second button pressed*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER"/*cmnd/Wohnzimmer-Sonoff-rf-Esstischlam/POWER*/, true); });
Das ist nun mein geänderter Blocky Auszug
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="|=hlNxvm0TXlNLEVsT|@" x="263" y="188"><field name="OID">mihome.0.devices.86sw2_158d000163dec7.channel_1</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="control" id="?Pr(Ul1;/fKO(y!y=#;7"><mutation delay_input="false"></mutation> <field name="OID">mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="y.igRc`;a9%b3qGZm.:t"><field name="BOOL">TRUE</field></block></value></block></statement></block></xml>
Habt Ihr ne Idee wie ich mit dem Schalter nun auch wieder ausschalten kann ?
modEdit: Code in code bloecken bitten `
ja :), da es ein taster ist wird er immer true sende und muessen wir per logic ueberpruefen ob die lampe an oder aus ist.
Hast du auch ein object wo der jetzige status der lampe (an/aus) drin steht ?
-
sehe das du offline bist, ich gehe auch gleich
Hier mal der tipp, ich habe eine logic an deinem block hinzugefuegt die dafuer sorgt wen lampe aus dan an, wen lampe an dan aus.
Du musst aber noch den datenpunkt der lampe eintragen (hoffe due hast den?).
und hier der block zum import
<block xmlns="http://www.w3.org/1999/xhtml" type="on" id="|=hlNxvm0TXlNLEVsT|@" x="-1787.826181645019" y="-261.89844081970523"><field name="OID">mihome.0.devices.86sw2_158d000163dec7.channel_1</field> <field name="CONDITION">true</field> <statement name="STATEMENT"><block type="comment" id="[+W=0QzW1~}}~Z^_yOWJ"><field name="COMMENT">Bei If jetzigen wert der lampe einsetzen</field> <next><block type="controls_if" id="`!*B3R:Yr;]OknH~WC5-"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="r3q6O%YX3.(R[M1dng,m"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="yl~yEWnlVMv(0%IpnnCL"><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="B"><block type="logic_boolean" id="KyB%;gdakBj7A7|y=tCQ"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="comment" id="pP`VoNE%DSGB]_7X+mRG"><field name="COMMENT">Wenn lampe aus dan an</field> <next><block type="control" id="?Pr(Ul1;/fKO(y!y=#;7"><mutation delay_input="false"></mutation> <field name="OID">mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="y.igRc`;a9%b3qGZm.:t"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> <statement name="ELSE"><block type="comment" id="^n,@PAm2SkMeFRS;W;M["><field name="COMMENT">Sonst lampe aus</field> <next><block type="control" id="ZX+LEYC!e7Cn}@kXurP|"><mutation delay_input="false"></mutation> <field name="OID">mqtt.0.cmnd.Wohnzimmer-Sonoff-rf-Esstischlam.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="yKUck@:bK?.8mF~;5HH-"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></next></block></statement></block>
-
Vielen Dank an euch (apollon77 und Dutchman) !!!!!!!!!!!!!!!!!!!!
Das letzte Skript von Dutchman funktioniert perfekt. Die Lampe lässt sich nun mit dem Schalter ein und ausschalten !
Somit kann das Thema geschlossen werden.
Super Forum !!!!!
-
super ! setzte das thema bitte auf geloest closen machen wir nicht
` > <size size="150">1. Verfassen von Themen:</size>
-
a) Betreff:
- Folgendes Schema ist zu verwenden: [Offen/Gelöst]* [(Tag, siehe Liste)] Titel des Themas
*Nur bei Fragen oder Fehlern. Wenn eine Frage beantwortet oder ein Fehler behoben wurde ist der Betreff des Themas von "Offen" auf "Gelöst" zu setzen.
<size size="120">Tag Liste:</size> `
-
-
@Dutchman Hi das Skript liegt ja nun schon Jahre zurück, jedoch hab ich es getestet und bei mir geht es leider nicht..
könntest du mir da weiterhelfen?wenn ja würde ich mich sehr freuen
-
@D4vE wenn du mittels Taster eine Lampe schalten möchtest, kannst du es so lösen
-
@crunchip danke man es geht warum komm ich da nicht drauf besten Danke man!
-
@D4vE eine etwas abweichende Frage; funktioniert in deinen Objekten der State "Hold"? - Bei mir steht der dauerhaft auf true und ändert sich auch nicht wenn ich den Taster längere Zeit betätige...
-
@Phinix bei mir geht alles, 1 klick Doppelt klick und die Hold Klick.