NEWS
Flurlicht mit Schalter und BM steuern
-
Hallo,
ich möchte gerne meine Flurbeleuchtung über einen Bewegungsmelder (Presece 5 Presenc) zwischen 21:00 und 6:00 einschalten lassen . Und zwar für 20 sek. Der "shelly Flur unten" soll geschaltet werden. Es entspricht der "falls" dann "mache" Bedingung. Das funktioniert einwandfrei! JETZT möchte ich zudem, das der am Shelly angebundene Wippschalter (klassische Installation) außerhalb der obigen Zeiten für 5 sek. das Licht einschaltet. Unabhängig vom Bewegungsmelder. Die dargestellte Schaltung war der letzte Versuch gestern Abend, dies zu realisieren. Es scheint hier eine verknüpfte Abhängigkeit zu der "mache"-Funktion zu geben. Jedenfalls endet das ganze in einer wilden flackerei am shelly-Relais. Ich möchte gerne erreichen, das der klassische Schalter übergeordnet und unabhängig für eine eingestellte Zeit das Flurlicht einschaltet. Egal wie spät, egal was der BM geschaltet hat. Hat jemand einen Vorschlag? Danke ! Grüße Ulli
-
@Ulli1
poste bitte mal den Blockly Code, ich hätte da ne Idee -
@Jan1 sorry..welchen Blockly-Code? reicht der nicht, den ich angehangen habe?
-
@Ulli1
Nö, weil ich den nicht importieren kann und das erst nachbauen müsste -
@Jan1
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="^CQ7gV0U22U+p,t5?ucB" x="-162" y="38">
<mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
<field name="CONDITION">ne</field>
<field name="ACK_CONDITION"></field>
<value name="OID0">
<shadow type="field_oid" id="{k-1H^spruoCRf)tsORQ">
<field name="oid">deconz.0.Sensors.5.presence</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="SBgbf=pGL;3#+xSi5WwS">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_operation" id="$wJV})Wvn/:Sv6hIF@t" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="4(dMH;L/+/5SPA$tz3Yd"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="4Pyv)I?2tLhjv:dO!1T-"> <field name="TEXT">21:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="(#zSo~L;LfxM-o
pZ7:5">
<field name="TEXT">06:00</field>
</shadow>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="6Q5Ir1mpJjxM!iUCC)q4">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="RtH}ap7l{9z@6.fhu%^P">
<field name="ATTR">val</field>
<field name="OID">deconz.0.Sensors.5.presence</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="+qYB6I6/HC?m~6NT4dV"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="G95Df?IPELoU{#EG9Luq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":%U]*4a!w.Aj,@zb1+R)"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="cz-!i$Y:z_TJD^u;XIWi"> <field name="NAME">Flurlicht unten</field> <next> <block type="timeouts_settimeout" id="p=jEY%g:8|r*eT=yZ)gI"> <field name="NAME">Flurlicht unten</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="Ojw4JQ!lE9s07/S4$t6("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~q28Xu_BVx;[D?CsxgMv"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="KPiGi=}Z~=C}2jHB=2lM"> <value name="IF0"> <block type="logic_operation" id="kY#P:Uo,C3-PdtE4tm3I" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="Yjx]EPElvxxUy9^Q8K;t"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="gBkcC9RrX8a;tD_AQ2LT"> <field name="TEXT">06:02</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="E{$DYJB~J@)=HhbsBv^;"> <field name="TEXT">20:58</field> </shadow> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Q9rQSt63
i)IaVXn{ttI">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="v+DGr;3Vy5V,z#2MU}|.">
<field name="ATTR">val</field>
<field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="/vh%Mf2sb89%9}Zmph~a">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="4~UHLl?!HOAiV(|UTQz$">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="i[Us7(P{5jAloc4GH3y">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="timeouts_cleartimeout" id="8LwH`%Cx~~[o?]VW0eot">
<field name="NAME">Shelly Schalter</field>
<next>
<block type="timeouts_settimeout" id="H_U{H?G,EPXo?f^t)HZ,">
<field name="NAME">Shelly Schalter</field>
<field name="DELAY">5</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT">
<block type="control" id="=hiWpys(9-1PdC2KUUG5">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="9uuUFIkH=3kd0eYm;rG">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</statement>
</block> -
@Ulli1
so sollte das schon mal laufen:<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="Flurlicht unten">Flurlicht unten</variable> <variable type="timeout" id="Flurlicht unten2">Flurlicht unten2</variable> </variables> <block type="on_ext" id="^CQ7gV0U22U+p,t5?ucB" x="-162" y="38"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="{k-1H^spruoCRf)tsORQ"> <field name="oid">deconz.0.Sensors.5.presence</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="SBgbf=pGL;3#+xSi5WwS"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="$wJV})Wvn/:Sv6hIF@t" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="4(dMH;L/+/5SPA$tz3Yd"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="4Pyv)I?2tLhjv:dO!1T-"> <field name="TEXT">6:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="(#zSo~L;LfxM-opZ7:5"> <field name="TEXT">21:00</field> </shadow> </value> </block> </value> <value name="B"> <block type="on_source" id="J0R1`,gj,XEP#sbo5j!I"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="G95Df?IPELoU{#EG9Luq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":%U]*4a!w.Aj,@zb1+R)"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="cz-!i$Y:z_TJD^u;XIWi"> <field name="NAME">Flurlicht unten</field> <next> <block type="timeouts_settimeout" id="p=jEY%g:8|r*eT=yZ)gI"> <field name="NAME">Flurlicht unten</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="Ojw4JQ!lE9s07/S4$t6("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~q28Xu_BVx;[D?CsxgMv"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="4~UHLl?!HOAiV(|UTQz$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="i[Us7(P{5jAloc4GH3y"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="8LwH`%Cx~~[o?]VW0eot"> <field name="NAME">Flurlicht unten2</field> <next> <block type="timeouts_settimeout" id="H_U{H?G,EPXo?f^t)HZ,"> <field name="NAME">Flurlicht unten2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="=hiWpys(9-1PdC2KUUG5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Adatper shelly Flur unten tasmota 111.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="9uuUFIkH=3kd0eYm;rG"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Bleibt noch die Aufgabe des manuellen Schalten. Da gibts den Ansatz, dass man erkennt, ob über Bewegung geschaltet wurde, ist das der Fall, kann das Script auch ausschalten. Heißt wurde nicht über den BWM geschaltet, sondern über den Schalter an der Wand, bleibt das Licht an.
Hier gibts aber ein kleines Problem. Wo befindet sich der Schalter? Befindet der sich innerhalb des BWM Range, wird immer über Bewegung geschaltet und man muss sich was anderes einfallen lassen. -
@Jan1 said ich kann es erst später testen! Danke schon mal für die Mühe.. Interessieren würde mich aber schon, was der "Wert" in der oberen "und"-Verknüpfung besagt?
-
@Ulli1
Wert ist aus dem Triggerblock und bezieht sich deshalb immer auf das Objekt im Trigger. -
@Jan1 also das Licht wird scheinbar unstetig außerhalb der definierten Zeit geschaltet. Ich habe die Zeitabfrage wieder auf "21 bis 6 Uhr" mit "wahr" eingestellt. Ich beobachte..
-
@Ulli1
Die wahr Abfrage ist unnötig, da die dalls Bedingung eh auf wahr prüft, somit ist das doppelt. -
@Jan1 Was ich feststelle ist, das die Schaltung die Uhrzeit komplett ignoriert. Sowohl in der einen, als auch in der anderen Variante (Zeitbaustein). Jetzt habe ich wieder meinen alten Blockly gestartet und zumindest schaltet der BM nur noch in der voreingestellten Zeit. Bleibt das Thema mit dem Lichtschalter in der Wand...
-
@Ulli1 sagte:
der klassische Schalter übergeordnet und unabhängig für eine eingestellte Zeit das Flurlicht einschaltet. Egal wie spät, egal was der BM geschaltet hat.
Schaltet der Schalter das Licht direkt ein ? Denn ich sehe in Deinem Blockly keinen getrennten Datenpunkt für den Schalter. Wenn ja, dann versuche es mal so:
-
@paul53 der Schalter schaltet direkt den shelly1.
-
@Ulli1
wenn die Zeit nicht beachtet wird, kann das daran liegen, dass Deine System Zeit nicht stimmt, da ich ein BWM Blockly habe, dass ich so aufgebaut habe und das bei mir läuft.
Paul53 ist in Blockly allerdings auch wesentlich fitter als ich und das was er zaubert sollte auf alle Fälle laufen -
@Jan1 OK...auf dem RPi läuft tatsächlich eine völlig abwegige Uhrzeit! IOBroker hingegen zeigt die korrekte Zeit an. Verwunderlich ist, das bei meiner ersten Schaltung die Funktionalität sehr genau nach den eingestellten 21:00 Uhr erfolgt. Wird hier auf 2 Uhrzeiten zurückgegriffen? Ich werde am RPi die Uhrzeit einstellen und dann noch mal testen. Das Scrypt von Paul hat einen anderen Ansatz, den ich auch mal testen werde.
-
Vielleicht schaust Du Dir mal diesen Adapter an?!
https://github.com/Mic-M/ioBroker.smartcontrol/blob/master/README.mdHatte bei meinem Flurlicht Probleme bzgl. des Bewegungsmelders und dem Helligkeitssensor.
In Smartcontrol war das schnell zusammengeklickt und es funktioniert nun wie gewünscht. -
@paul53 Bitte sage mir, was "system.adapter.javascript.0" sein könnte? Ich glaube ich stolpere gerade darüber.. Danke!
-
@Ulli1 sagte:
was "system.adapter.javascript.0" sein könnte?
Das ist der Ursprung (state.from) der Zustandsänderung, wenn sie aus einem Script (setState) / Blockly (steuere) kommt.
-
@w00dst0ck kannst du mir ein Beispiel geben?
-
@ulli1
Sorry, ich hab erst jetzt wieder ins Forum geschaut.
Brauchst Du hier noch Input, oder hast Du Dir den Adapter schon angesehen?Ich finde die integrierte Hilfe eigentlich sehr gut und damit erklärt sich alles von selbst.