NEWS
[Gelöst] Blockly-script zur steuerung Aussenbeleuchtung mit Bewegungsmelder
-
ich habe versucht einen Mini-script zu schreiben das unsere Aussenbeleuchtung Ein/Aus schaltet.
Es sollen die Änderung der states von zwei Bewegungsmeldern ausgewertet werden. Wenn einer der beiden
true oder false schaltet soll die Aussenbeleuchtung Ein bzw. Aus geschaltet werden. Aber nur wenn der der
manuelle Schalter für die Aussenbeleuchtung (javascript.0.Außenbeleuchtung.Wegbeleuchtung.BW_Melder)
auf false steht.
on({id: getState("rflink.1.channels.Conrad_3.SWITCH_0a").val || getState("rflink.1.channels.Conrad_4.SWITCH_0a").val, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.Außenbeleuchtung.Wegbeleuchtung.BW_Melder").val == false) { if (getState("rflink.1.channels.Conrad_3.SWITCH_0a").val || getState("rflink.1.channels.Conrad_4.SWITCH_0a").val == true) { setState("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, true); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, true, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, true, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, true, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, true, 200, false); } if (getState("rflink.1.channels.Conrad_3.SWITCH_0a").val || getState("rflink.1.channels.Conrad_4.SWITCH_0a").val == false) { setState("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, false, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, false, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, false, 200, false); setStateDelayed("rflink.1.channels.Conrad_1.SWITCH_07"/*Conrad 1 Switch 07*/, false, 200, false); } } });
leider bekomme ich im Log folgenden fehler:
javascript.0 2017-09-26 19:33:46.333 error unsubscribe: invalid type of id - boolean
-
Mach doch mal einen Blockly-Export.
(Die Pfeilchen links neben "Blöcke prüfen"
Den Export dann bitte in Spoiler UND Code Tag.
Und/oder einen Screenshot vom Blockly.
Grüße
-
gern doch… here we go...
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="oiewU1qs!kCPH3d=a.Tc" x="-551" y="39"><mutation items="1"></mutation>
<field name="CONDITION">any</field><value name="OID0"><shadow type="field_oid" id="VvOVXB/reB=4U*dhV)]}"><field name="oid">default</field></shadow> <block type="logic_operation" id="j[`~JE}oyE~SXHoXl4a("><field name="OP">OR</field> <value name="A"><block type="get_value" id="m*P/2![f2%RdPGM_v7|m"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="B"><block type="get_value" id="|{HUUHlyiqXw/PQ]_gaX"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value></block></value> <statement name="STATEMENT"><block type="controls_if" id="4;vR;%_{-c9P4?HlaWQC"><value name="IF0"><block type="logic_compare" id="LF_8|{k7jr(at2mCsJ(H"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="_@R}oJlpTzS=.p(VYB3/"><field name="ATTR">val</field> <field name="OID">javascript.0.Außenbeleuchtung.Wegbeleuchtung.BW_Melder</field></block></value> <value name="B"><block type="logic_boolean" id=")1oY1U:IqMU9O05Z]fg8"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO0"><block type="controls_if" id="v`*Jm|Ie9|;bQO!(*2vl"><value name="IF0"><block type="logic_operation" id="zH!I#Sjz+d,jL;60l?T6"><field name="OP">OR</field> <value name="A"><block type="get_value" id="nGD.:?)BAY_+`Ft.|v~l"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="B"><block type="logic_compare" id="JOq:tT0C;C0VI:91Wo^1"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="^JjjnGaqN~.tzLV(:)se"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value> <value name="B"><block type="logic_boolean" id="uabCcKFsHHAlyknfuQE#"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="%XUQe^8,3,HMNEx(JHQA"><mutation delay_input="false"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="9r.qeS7l7a]!]dT108[,"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="aFOn,DM/2%T@w+d3)Wl4"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="r.cmdjwe_UMoqhMC7`ID"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="TitTy_,DsI/-+!ABc8@b"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="}9dURa}]uGl/-0(*OfCx"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="5-Kf^4THebiAPRojskby"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="-%2SuzFZjnZXc4f04O1`"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="7z3YY!mXR`C9bLdcaO*B"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="+xfr+]nS3(%m[sXuA)(2"><field name="BOOL">TRUE</field></block></value></block></next></block></next></block></next></block></next></block></statement> <next><block type="controls_if" id="YM.GNK~r26fixh=%X9-e"><value name="IF0"><block type="logic_operation" id="9K~D.nDvop57#B}*|3~J"><field name="OP">OR</field> <value name="A"><block type="get_value" id="k4Yq]GiZTNr/.%p(uETT"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="B"><block type="logic_compare" id="oyY()e)U92+I4{Bwx47U"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="?CFZ;zIv69Hm{2nX0ZYX"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value> <value name="B"><block type="logic_boolean" id="PpgHu@xc]E,xUt^W2Ir%"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="(#[2apThGXfH~lrV`ZjG"><mutation delay_input="false"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="}Uvxu8{OTQX7n[o;HWrs"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="Vc|*:b=X5*AvC)2K*X^r"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="bOBAq~TkV9sQ{rzaz=e,"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="jr9U96b]Rp83wWh*)D*K"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="ax;/1`;)./6=LEarA##`"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="eFH-sOfUG2Mc^7ispPIv"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="qOFc0emb%eaqD7{H2)+^"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="K[@rcPW3w!joTD@%g=eF"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="(6Jx=v6R-?[c*PUa9]ay"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></statement></block></xml>
-
So auf den ersten Blick…
KEINE "oder" Bedingung im Trigger!!!
Mach es mal so.
Export
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="oiewU1qs!kCPH3d=a.Tc" x="-551" y="39"><mutation items="2"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="XK;_I,FL^S26_a4cPHn9"><field name="oid">default</field></shadow> <block type="get_value" id="m*P/2![f2%RdPGM_v7|m"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="OID1"><shadow type="field_oid" id="7agAjRcutccGpq~M9441"><field name="oid">default</field></shadow> <block type="get_value" id="|{HUUHlyiqXw/PQ]_gaX"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value> <statement name="STATEMENT"><block type="controls_if" id="4;vR;%_{-c9P4?HlaWQC"><value name="IF0"><block type="logic_compare" id="LF_8|{k7jr(at2mCsJ(H"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="_@R}oJlpTzS=.p(VYB3/"><field name="ATTR">val</field> <field name="OID">javascript.0.Außenbeleuchtung.Wegbeleuchtung.BW_Melder</field></block></value> <value name="B"><block type="logic_boolean" id=")1oY1U:IqMU9O05Z]fg8"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO0"><block type="controls_if" id="v`*Jm|Ie9|;bQO!(*2vl"><value name="IF0"><block type="logic_operation" id="zH!I#Sjz+d,jL;60l?T6"><field name="OP">OR</field> <value name="A"><block type="get_value" id="nGD.:?)BAY_+`Ft.|v~l"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="B"><block type="logic_compare" id="JOq:tT0C;C0VI:91Wo^1"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="^JjjnGaqN~.tzLV(:)se"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value> <value name="B"><block type="logic_boolean" id="uabCcKFsHHAlyknfuQE#"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="%XUQe^8,3,HMNEx(JHQA"><mutation delay_input="false"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="9r.qeS7l7a]!]dT108[,"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="aFOn,DM/2%T@w+d3)Wl4"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="r.cmdjwe_UMoqhMC7`ID"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="TitTy_,DsI/-+!ABc8@b"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="}9dURa}]uGl/-0(*OfCx"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="5-Kf^4THebiAPRojskby"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="-%2SuzFZjnZXc4f04O1`"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="7z3YY!mXR`C9bLdcaO*B"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="+xfr+]nS3(%m[sXuA)(2"><field name="BOOL">TRUE</field></block></value></block></next></block></next></block></next></block></next></block></statement> <next><block type="controls_if" id="YM.GNK~r26fixh=%X9-e"><value name="IF0"><block type="logic_operation" id="9K~D.nDvop57#B}*|3~J"><field name="OP">OR</field> <value name="A"><block type="get_value" id="k4Yq]GiZTNr/.%p(uETT"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_3.SWITCH_0a</field></block></value> <value name="B"><block type="logic_compare" id="oyY()e)U92+I4{Bwx47U"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="?CFZ;zIv69Hm{2nX0ZYX"><field name="ATTR">val</field> <field name="OID">rflink.1.channels.Conrad_4.SWITCH_0a</field></block></value> <value name="B"><block type="logic_boolean" id="PpgHu@xc]E,xUt^W2Ir%"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="(#[2apThGXfH~lrV`ZjG"><mutation delay_input="false"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="}Uvxu8{OTQX7n[o;HWrs"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="Vc|*:b=X5*AvC)2K*X^r"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="bOBAq~TkV9sQ{rzaz=e,"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="jr9U96b]Rp83wWh*)D*K"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="ax;/1`;)./6=LEarA##`"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="eFH-sOfUG2Mc^7ispPIv"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="qOFc0emb%eaqD7{H2)+^"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="K[@rcPW3w!joTD@%g=eF"><mutation delay_input="true"></mutation> <field name="OID">rflink.1.channels.Conrad_1.SWITCH_07</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="(6Jx=v6R-?[c*PUa9]ay"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></statement></block></xml>
! ````
Weiter habe ich es mir nicht angeschaut.
Grüße
[EDIT] Ein kleiner Schönheitsfehler bei Blocky. Die Trigger-Bedingung hat sich verändert und ich habe nicht drauf geachtet.
-
gibt folgende Fehlermeldung:
javascript.0 2017-09-26 22:16:29.856 error script.js.common.Bewegungsmelder compile failed: SyntaxError: missing ) after argument list
-
gibt folgende Fehlermeldung:
javascript.0 2017-09-26 22:16:29.856 error script.js.common.Bewegungsmelder compile failed: SyntaxError: missing ) after argument list ```` `
Du benutzt einen falschen Block in Trigger, nicht wert von object sondern nur object nehmen bitte
–-----------------------
Send from mobile device
-
Du benutzt einen falschen Block in Trigger, nicht wert von object sondern nur object nehmen bitte `
Danke Dutchman :!:Ich war zu schnell "mit mal eben nebenbei" :oops:
Grüße
-
Danke an euch Beide… Jetzt funtioniert es...
Ich musste allerding die beiden Bewegungsmelder einzeln tiggern da einer von beiden ja false sein kann und dann
das licht gleich wieder abgeschalten wird...
-
Danke an euch Beide… Jetzt funtioniert es...
Ich musste allerding die beiden Bewegungsmelder einzeln tiggern da einer von beiden ja false sein kann und dann
das licht gleich wieder abgeschalten wird... `
?
Sehr gerade das blockly mich komplett aber wenn du auf beide triggerst und dan eine oder Abfrage hast (bw1 = true oder bw2 = true) sollte das doch hinhauen?
–-----------------------
Send from mobile device
-
richtig… aber ich trigger ja auch das false signal zu abschalten.
Wenn der erste Bewegungsmelder 1 auf true geht, steht der zweite noch auf false. wenn ich zum Abschalten nun
trigger das BW1 oder BW2 auf false steht, schaltet das Licht sofort wieder aus...
-
richtig… aber ich trigger ja auch das false signal zu abschalten.
Wenn der erste Bewegungsmelder 1 auf true geht, steht der zweite noch auf false. wenn ich zum Abschalten nun
trigger das BW1 oder BW2 auf false steht, schaltet das Licht sofort wieder aus... `
Ehm ja ok und wen du:
Wen Bw1 = true oder bw2 = true {Schalte ein} Lampe ein
Sonst wenn
bw1 = false UND bw2 = false {Schalte aus} Lampe ein
Es gibt ja die "sonst" (Englisch "Else") aber auch die sonst wenn (Englisch "Else if) Funktion [emoji3]
–-----------------------
Send from mobile device
-
ja, das würde natürlich auch funktionieren…