NEWS
Xiaomi Bewegungsmelder: Unterschied zwischen den 2
-
Hi
Das schaut im großen und ganzen genau so aus wie dein Script für den Schalter. Wenn du im Iobroker dann ein Gerät hinzufügst wählst du nicht diesen powerState Variable aus sondern eine eigen angelegte Variable diese wird dann durch Alexa Licht "an/aus" auf true oder false geschalten. Das Licht An/ Aus Script wird dann ausgeführt wenn sich zB der Wert ändert
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="create" id="pWxRq+D2NWzO/86PG]b" x="13" y="-87"><field name="NAME">Licht.Shelly1-Oben</field> ! <statement name="STATEMENT"><block type="create" id="fO|m=.Z^PNKB3K.K4N=U"><field name="NAME">Licht.ManuellAn</field></block></statement> ! <next><block type="on_ext" id="*eb170=h]k@L=8F!/MCA"><mutation items="1"></mutation> ! <field name="CONDITION">any</field> ! <value name="OID0"><shadow type="field_oid" id=".v9MGR8m:%(@Zt(g-CgL"><field name="oid">javascript.0.Licht.Shelly1-Oben</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="[bC@nY#s#8E-yYJh2s}m"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="*qHTky8+;IsuCu/)z0v0"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="Wjmz,Yyu5bPsHp6S8cdq"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Licht.Shelly1-Oben</field></block></value> ! <value name="B"><block type="logic_boolean" id="]t1rlvb,(xszGzbr^SL"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="control" id="vqgcOTGBKPW7wRiA?]CT"><mutation delay_input="false"></mutation>
! <field name="OID">sonoff.0.Shelly1-Oben.POWER</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="zeob%[4r3a/V:TrmFJS*"><field name="BOOL">TRUE</field></block></value>
! <next><block type="control_ex" id="i08MllFg}bq%q_acDJjj"><field name="TYPE">false</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="OID"><shadow type="field_oid" id="vUM1=*]f^3o,?@D9=cGH"><field name="oid">javascript.0.Licht.ManuellAn</field></shadow></value>
! <value name="VALUE"><shadow type="logic_boolean" id="^FDB#t1jq7I.Hy#.T]@"><field name="BOOL">TRUE</field></shadow></value> ! <value name="DELAY_MS"><shadow type="math_number" id="IW6QKbG5wyK,|}6DPd=s"><field name="NUM">0</field></shadow></value></block></next></block></statement> ! <value name="IF1"><block type="logic_compare" id="YTm{@K0/a;FGjo/Y)Yn{"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="ZA;aMcMn,EXH/Edzj*}f"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Licht.Shelly1-Oben</field></block></value> ! <value name="B"><block type="logic_boolean" id="O=.Dg,K6a1ob67vdPee"><field name="BOOL">FALSE</field></block></value></block></value>
! <statement name="DO1"><block type="control" id=".mkc~/8|YJ#rRiu/(Da"><mutation delay_input="false"></mutation> ! <field name="OID">sonoff.0.Shelly1-Oben.POWER</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="d*eRzm8%EIHmk?=:kvQ"><field name="BOOL">FALSE</field></block></value>
! <next><block type="control_ex" id="Hu(a!uEW9sUfT7zBYzOw"><field name="TYPE">false</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="OID"><shadow type="field_oid" id="G;)/xS!UUeLGxLmh?T_"><field name="oid">javascript.0.Licht.ManuellAn</field></shadow></value> ! <value name="VALUE"><shadow type="logic_boolean" id="jYD!v%{@(YTAx?9G6aS!"><field name="BOOL">FALSE</field></shadow></value> ! <value name="DELAY_MS"><shadow type="math_number" id="2cN!RTy/V,u!SZl://1"><field name="NUM">0</field></shadow></value></block></next></block></statement></block></statement></block></next></block></xml>

-
Hallo MyzerAT,
Ich versuche gerade zu verstehen, wie die Lösung aussieht, habe aber lauter Blöcke vor den Augen.
Könntest du bitte, falls es keine Umstände macht, deine fertige Lösung einmal Posten?
Wenn es geht mit Kommentaren?Danke im voraus.
-
Hallo MyzerAT,
Ich versuche gerade zu verstehen, wie die Lösung aussieht, habe aber lauter Blöcke vor den Augen.
Könntest du bitte, falls es keine Umstände macht, deine fertige Lösung einmal Posten?
Wenn es geht mit Kommentaren?Danke im voraus.
np
also was du brauchst ist einen Datenpunkt , Beispiel:

Das Script für den Switch:
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id=":vo~N@skU5P)zFslh68z" x="-838" y="-438"> <field name="COMMENT">27022019ok</field> <next> <block type="create" id="9Y5+b;.Hg=_9qPL2@r])"> <field name="NAME">Tischlicht.ManuellAn</field> <next> <block type="on" id=".yFu.6eg``QjG|_!/9LA"> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="comment" id="~PJiL9/|+)ftu5:-)/pQ"> <field name="COMMENT">Tischlicht AUS</field> <next> <block type="controls_if" id="Lq6/^7WQEfn1#!-]Px[8"> <value name="IF0"> <block type="logic_operation" id="3N2yi@z,|$:R!j.U]~!w" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="}iB~k(Cwq_2~q}?22+HF"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vlwiQt??gd@LvgRFt/N1"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> </block> </value> <value name="B"> <block type="logic_boolean" id="y{)CQK_jLv{JKKM30uI["> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")Io8`B3s(9RzZqQt3yQ8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n6`5PQa~l!+mxeeAN18{"> <field name="ATTR">val</field> <field name="OID">javascript.0.Tischlicht.ManuellAn</field> </block> </value> <value name="B"> <block type="logic_boolean" id="jSq?xKv9zs;;EeI~)?Pg"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="mf0b:/FUXQu_UiTOVYn*"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Smart-Home-Devices.a1b7ad2c-815e-43a3-9819-e979c7b0d39a.powerState</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="K]D~#yG!*X;KW*^%+hK}"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control_ex" id="ZY=Il2KvKem1;cK^-,Z^"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="_|Y1N/47@7CeNhv5S}1y"> <field name="oid">javascript.0.Tischlicht.ManuellAn</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean" id="1=`k2s^0=!Gbe|F12).#"> <field name="BOOL">FALSE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="QiHspg1h%lQP[CkDm::|"> <field name="NUM">1000</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="comment" id="z]udZ`rN#*]ap6NG:n85"> <field name="COMMENT">Tischlicht EIN</field> <next> <block type="controls_if" id="%jn`(`j.Fvu[4duKFBm|"> <value name="IF0"> <block type="logic_operation" id="wW}{cAa6uh#Jstp+da/c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="lrn;KhY]B+b;bDn!!0}Z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n1m)_1u8uMV`VsXC[Bj["> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> </block> </value> <value name="B"> <block type="logic_boolean" id="RvJ+!O|.^FPF1C4+nvb5"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="3,[SHJ9c@]BHXZ/nT./Z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="|N$5!2dZNy[??l1bvc8v"> <field name="ATTR">val</field> <field name="OID">javascript.0.Tischlicht.ManuellAn</field> </block> </value> <value name="B"> <block type="logic_boolean" id="aSz{Fi_SiK?bO2fQo/:t"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_CH!AydVbWK|!{UF64Fc"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Smart-Home-Devices.a1b7ad2c-815e-43a3-9819-e979c7b0d39a.powerState</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="F_I+/n6C1vVYB`|ex,Yz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control_ex" id=".T+b;qm*Eofd^Y6FGz{k"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id=")1Bz*GuwP5K|Q`%jB+{l"> <field name="oid">javascript.0.Tischlicht.ManuellAn</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean" id="6QO,qK6^^Tv9In8lR]4]"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="ScegsP!#vEZ2th+7Fs6P"> <field name="NUM">100</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml> -
np
also was du brauchst ist einen Datenpunkt , Beispiel:

Das Script für den Switch:
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id=":vo~N@skU5P)zFslh68z" x="-838" y="-438"> <field name="COMMENT">27022019ok</field> <next> <block type="create" id="9Y5+b;.Hg=_9qPL2@r])"> <field name="NAME">Tischlicht.ManuellAn</field> <next> <block type="on" id=".yFu.6eg``QjG|_!/9LA"> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="comment" id="~PJiL9/|+)ftu5:-)/pQ"> <field name="COMMENT">Tischlicht AUS</field> <next> <block type="controls_if" id="Lq6/^7WQEfn1#!-]Px[8"> <value name="IF0"> <block type="logic_operation" id="3N2yi@z,|$:R!j.U]~!w" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="}iB~k(Cwq_2~q}?22+HF"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vlwiQt??gd@LvgRFt/N1"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> </block> </value> <value name="B"> <block type="logic_boolean" id="y{)CQK_jLv{JKKM30uI["> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")Io8`B3s(9RzZqQt3yQ8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n6`5PQa~l!+mxeeAN18{"> <field name="ATTR">val</field> <field name="OID">javascript.0.Tischlicht.ManuellAn</field> </block> </value> <value name="B"> <block type="logic_boolean" id="jSq?xKv9zs;;EeI~)?Pg"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="mf0b:/FUXQu_UiTOVYn*"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Smart-Home-Devices.a1b7ad2c-815e-43a3-9819-e979c7b0d39a.powerState</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="K]D~#yG!*X;KW*^%+hK}"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control_ex" id="ZY=Il2KvKem1;cK^-,Z^"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="_|Y1N/47@7CeNhv5S}1y"> <field name="oid">javascript.0.Tischlicht.ManuellAn</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean" id="1=`k2s^0=!Gbe|F12).#"> <field name="BOOL">FALSE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="QiHspg1h%lQP[CkDm::|"> <field name="NUM">1000</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="comment" id="z]udZ`rN#*]ap6NG:n85"> <field name="COMMENT">Tischlicht EIN</field> <next> <block type="controls_if" id="%jn`(`j.Fvu[4duKFBm|"> <value name="IF0"> <block type="logic_operation" id="wW}{cAa6uh#Jstp+da/c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="lrn;KhY]B+b;bDn!!0}Z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="n1m)_1u8uMV`VsXC[Bj["> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.switch_158d0002c7c0a4.click</field> </block> </value> <value name="B"> <block type="logic_boolean" id="RvJ+!O|.^FPF1C4+nvb5"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="3,[SHJ9c@]BHXZ/nT./Z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="|N$5!2dZNy[??l1bvc8v"> <field name="ATTR">val</field> <field name="OID">javascript.0.Tischlicht.ManuellAn</field> </block> </value> <value name="B"> <block type="logic_boolean" id="aSz{Fi_SiK?bO2fQo/:t"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="_CH!AydVbWK|!{UF64Fc"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Smart-Home-Devices.a1b7ad2c-815e-43a3-9819-e979c7b0d39a.powerState</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="F_I+/n6C1vVYB`|ex,Yz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control_ex" id=".T+b;qm*Eofd^Y6FGz{k"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id=")1Bz*GuwP5K|Q`%jB+{l"> <field name="oid">javascript.0.Tischlicht.ManuellAn</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean" id="6QO,qK6^^Tv9In8lR]4]"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="ScegsP!#vEZ2th+7Fs6P"> <field name="NUM">100</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>ich suche die ganze Zeit den Bewegungsmelder.
Mein Hauptproblem ist aber folgendes:Das Licht kann über
- ein Schalter (Broadlink)
- Alexa
- Bewegungsmelder
ein und aus geschaltet werden.
Welchen Datenpunkt muss ich also Manuel schalten, damit der BWM nicht Ausschaltet?
-
habe ich dir eh geschrieben, du musst einen eigenen Datenpunkt anlegen und dann in deinen Script einbauen, falls das licht durch Alexa, oder Switch eingeschaltet wurde, somit der DP auf wahr steht, dann darf das Script des BWMs das Licht nicht abschalten !
so wie hier, wenn mein Bewegungsmelder das Tischlicht in der Küche einschaltet und ich nun, selbst das Licht einschalte (da ändert sich der Status des eDP_ManuellAN auf wahr) dann wird das "steuere powerstate mit false nicht ausgeführt, weil es ja auf wahr steht!

-
habe ich dir eh geschrieben, du musst einen eigenen Datenpunkt anlegen und dann in deinen Script einbauen, falls das licht durch Alexa, oder Switch eingeschaltet wurde, somit der DP auf wahr steht, dann darf das Script des BWMs das Licht nicht abschalten !
so wie hier, wenn mein Bewegungsmelder das Tischlicht in der Küche einschaltet und ich nun, selbst das Licht einschalte (da ändert sich der Status des eDP_ManuellAN auf wahr) dann wird das "steuere powerstate mit false nicht ausgeführt, weil es ja auf wahr steht!

-
also nochmal von Vorne
--> hier siehst du wie du einen eigenen Datenpunkt anlegst, den benötigst du --> Namensgebung Anpassen
wenn dies geschehen ist , musst du diesen DP in dein Script vom Bewegungsmelder einbauen, dort wo laut Script der Bewegungsmelder, das Licht nach der abgelaufen Zeit ausschalten würde, soll das Script überprüfen ob das Licht manuell eingeschaltet wurde, wenn ja schaltet er das Licht nicht ab!

-
vielen Dank.
Jetzt habe ich es endlich hinbekommen.
Mein Schalter (Broadlink) hat keinen Rückkanal, daher wurde der Staus von Manuellem schalten nicht geändert.
Nachdem ich den Knoten in meinem Gehirn entwirrt hatte, hat es nach dem oben genannten Prinzip funktioniert. -
Ich hab seit ein paar Tagen den ZigBee Adapter und dem geflashten USB Stick im Einsatz (https://github.com/ioBroker/ioBroker.zigbee)
Hier eine Anleitung was man benötigt und wie es geht: https://github.com/Koenkk/zigbee2mqtt/w … ng-started
Hat super geklappt und der Stick läuft. Damit hab ich einen alten Xiaomi Motion Sensor im Einsatz. Den Bewegungsmelder (Occupency) setze ich per Blockly Script immer nach 10 Sekunden zurück.
Momentan kommt zwar im Log eine Fehlermeldung, wenn man den Wert sozusagen zurückprügelt, aber der Entwickler vom Adpater will das im nächsten Updaten beheben. Funktionieren tut es.
Achja und das Gateway benötigt man von Xiaomi dann auch nicht mehr. `
Ich habe für mich praktisch dasselbe Skript geschrieben, nur ohne der Uhrzeit-Sache.
Musste zunächst auch feststellen, dass der Sensor erst nach 60 Sekunden wieder reagiert.
Ich habe aber die Lösung gefunden!!
Zumindest bei mir funktioniert es wenn ich die Occupancy nicht mit "steuere" sondern mit "aktualisiere" wieder auf false stelle.
Dann ist der Sensor sofort nach der angegebenen Verzögerung wieder scharf.
@piscator83 hallo Kannst du mir das Script vielleicht schicken?
Gruß Sascha
-
Hi,
ich weiß, dass der Blogpost relativ alt ist - er kommt aber bei Google relativ weit oben.
Deswegen möchte ich auch hier darauf hinweisen, dass die zwei Minuten Wartezeit normal sind, jedoch mit einer kurzen Lötarbeit abgestellt werden können.
Details findet ihr in meinem Youtube-Video: https://youtu.be/VIXZz9oy68wGruß,
Tristan