NEWS
Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume
-
Hallo, ich bräuchte mal wieder eure geschätzte Hilfe bei einem Blockly,
ich probier jetzt schon wieder mehrere Stunden rum und bring das einfach nicht zum laufen.
Ich würde gerne folgendes Lösen:
Im Schlafzimmer ist ein Bewegungsmelder der beim Betreten das Licht einschaltet, für 90 sec, muß man dann mal aufs Häuschen, dann geht das Licht wieder an und im WC ist ein erneuter Bewegungsmelder, solange man natürlich auf dem Häuschen gegenwärtig ist, soll im Schlafzimmer das Licht weiterbrennen, betritt man nun wieder das Schlafzimmer sollte es nach 30 sec ausgehen.
Natürlich soll aber das Licht nicht angehen wenn man nur auf Toilette ist usw. Ich hoffe ihr könnt mir folgen.
Folgendes Blockly hätte ich mir überlegt. Habe es auch mit 2 extra Datenpunkten schon probiert. Funktioniert leider auch nciht so toll, irgendwo habe ich ein Verständnisproblem drin.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="v2{])uwQNlIu%d=GYXm0">LUX</variable> <variable type="timeout" id="Bewegung">Bewegung</variable> <variable type="timeout" id="Bewegung2">Bewegung2</variable> </variables> <block type="on_ext" id="wtVsD?e9c+mG@xHA$RFr" x="313" y="-337"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="305IEOY4{H;Brbhcht9a"> <field name="oid">zigbee.0.00158d0006b79823.occupancy</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="VfahqoTSA@eWc%FWl#5q"> <field name="oid">zigbee.0.00158d0007bcc364.occupancy</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="y9#)1purY9:l9ejp{L:g"> <field name="VAR" id="v2{])uwQNlIu%d=GYXm0">LUX</field> <value name="VALUE"> <block type="math_number" id="|ztj:K_t,QO-QY=|nSH8"> <field name="NUM">50</field> </block> </value> <next> <block type="controls_if" id="=hYKH$0^}LJM~2lr5Re`"> <value name="IF0"> <block type="logic_operation" id="*0(.uKtLX-vf%6FtMj=a"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Z610j5q2aZeMh@e_]4bO"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="V*BRzm=Wi.0O,cD@}#O="> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0006b79823.occupancy</field> </block> </value> <value name="B"> <block type="logic_boolean" id="EO]f,ZczE:@*O=P38}MK"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="+0C2WZ:TD^*3KyzmgYq/"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="#LaxwfI*7QQ~v=3Ww]yz"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0006b79823.illuminance</field> </block> </value> <value name="B"> <block type="variables_get" id="])::b{~^gHqcmbd~jr;%"> <field name="VAR" id="v2{])uwQNlIu%d=GYXm0">LUX</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="?*+AT]/SpJ?TJQH5e_X["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Bewegungsmelder.Schlafzimmer_EG</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="NuZHbmFV0})dAc?|)^M9"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="t$YV@qJsa/}j;3V0)6P!"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="O2h.`-F3s~Mdt?-@PB#{"> <field name="TEXT">Datenpunkt Schlafzimmer_EG ist wahr</field> </shadow> </value> <next> <block type="controls_if" id="DK9Z*R?YVHqyt6:I6IU2"> <value name="IF0"> <block type="logic_compare" id="B]~)H(Ox+/RtXk#o4*Xt"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="x)t08TjB!/S`8$mnUz7S"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0007bcc364.occupancy</field> </block> </value> <value name="B"> <block type="logic_boolean" id="oP-gxuC1Q:9IBS6se}}N"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="~^RG]F2yBvMrbT~756lP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Bewegungsmelder.WC_EG</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="/$)WzUXsmfZ[_Tx%L8~:"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="1^x.JfDPR!IO}D^T]txB"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="NsJc8*xK=.-wh3d=(?x;"> <field name="TEXT">Datenpunkt WC_EG ist wahr</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> <block type="on_ext" id="JOdE+S58RR1_YL~d3VN*" x="313" y="188"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="7*,64yZzBtQ6`|)Md{O!"> <field name="oid">0_userdata.0.Bewegungsmelder.Schlafzimmer_EG</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id=",t.2wfIO2-eyrwa1oxf/"> <field name="oid">0_userdata.0.Bewegungsmelder.WC_EG</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="{{9k]:_0uK8mifUSea[A"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="nWpAz-W31-u},AI,F:!B"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="((CL`b-X^+Y4%YKu{v]!"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Bewegungsmelder.Schlafzimmer_EG</field> </block> </value> <value name="B"> <block type="logic_boolean" id="~-90$]g}LA]t*GF!s547"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="TSW]mCVRubXvAMsOO[8^"> <field name="NAME">Bewegung</field> <next> <block type="debug" id="l4ZfHeeVazs(Uj#ng;$U"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="gl{.X_5!JC]Lx{N0{p-!"> <field name="TEXT">Licht Nur Schlafzimmer ein</field> </shadow> </value> <next> <block type="control" id="4JL*G$C3|I6wKSZs3`Qn"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.847127fffe082710.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6sZHI9)rK$9-5,b)%23X"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="Z[3TGzJhm0;ou~Uy_,Wv"> <field name="NAME">Bewegung</field> <field name="DELAY">90</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="rP7C$(]{Bm#W-1/j;9l]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Bewegungsmelder.Schlafzimmer_EG</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="cLBWMbV9+$:k3bOkw^`x"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="Ssr.-UZ=4iPWl.*QF.{V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.847127fffe082710.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":Bm!cltfP@VMcdRL;97n"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="gT1zO#KyjB^uA9s%2pkr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="%#Od6qebcMPFv*Qv#|!Y"> <field name="TEXT">Licht nach 90sec aus und schlafzimmer_EG falsch</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="PYUEe)N66z,|NJ+ohl@s"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="!pX?z8Uh?V49xia:2!qz"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="88YwVOg*Qzd@}j,8N#X5"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="u[qv-r~MUp;-mPqilX{@"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Bewegungsmelder.Schlafzimmer_EG</field> </block> </value> <value name="B"> <block type="logic_boolean" id="H$O_wTi@FW~_=6VkY5S$"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="W./,=2HB@QW9K(|)26xP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="6PZKB~ZCKfXQg];f=b{A"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Bewegungsmelder.WC_EG</field> </block> </value> <value name="B"> <block type="logic_boolean" id="F@?96t5Q5SaJ%e$-9J$`"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="{$+C{iM:93Lh_VDF91A$"> <field name="NAME">Bewegung2</field> <next> <block type="debug" id="Fu:D:!}!9~e8x;d9zha;"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="/JZWb)lp=j=6H,AYDtL/"> <field name="TEXT">Licht 2 ein</field> </shadow> </value> <next> <block type="controls_if" id="_Ufw$v?Zx-Yr,=h@XJLM"> <value name="IF0"> <block type="logic_compare" id="+WbKB@?V#m99t?yz-lf/"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="W+aYBw$;Zsye_j8.JAwU"> <field name="ATTR">val</field> <field name="OID">zigbee.0.847127fffe082710.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="stG=SnTa[R[[Kg_5bHpa"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="@B=4jwon?;oIwp[$R/Dt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.847127fffe082710.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="%oS]nmz4/8aa=;9EAQOo"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="f_(ZbDr@IUjXc~j,B3jc"> <field name="NAME">Bewegung2</field> <field name="DELAY">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="K~Ii7HE!Xs-X(KCqEjOh"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Bewegungsmelder.WC_EG</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="[?}k@gx3izDYAJq5bvAW"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="6WV1O}*:b|0-;IoRP*V("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.847127fffe082710.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Anzcc5!^lwl5Ryy_jLg)"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="`g2CE]mg:CLQ*g,eSm9!"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="iOrpZT)Eua6=n3.;NGD]"> <field name="TEXT">Licht nach 90sec aus und schlafzimmer_EG falsch</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Ich hoffe mir kann auf die Schnelle jemand helfen. Danke im Voraus.
Gruß Babl
-
-
@paul53 sagte in Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume:
<xml xmlns="https://developers.google.com/blockly/xml">
guten morgen, wie gewohnt läuft es super, danke dir da wäre ich wohl nie draufgekommen, wahnsinn wie du das umsetzen kannst.
-
Kannst ja ggf mal ein Bild vom Blockly posten.
Würde es aus Interesse gerne ansehen (andere bestimmt auch).Aber dafür extra importieren....
-
-
@babl
und wo wird Bewegung2 gestoppt ? -
@dslraser das ist eine gute Frage, hier müßte wahrscheinlich @paul53 Antwort geben, das ganze ist mir sowieso zu hoch.
Ich kann bis jetzt keine Ungereimtheiten feststellen, es wird alles zu meiner vollsten Zufriedenheit ausgeführt, doch es kann durchaus sein daß hier nach verschiedenen Scenarien irgendwo ein Fehler durch das nichtstoppen der Bewegung2 auftaucht.
Wie gesagt ich habe hier die ganze Logik und das Erstellen solcher Scripte bei weitem nicht raus, und steig auch leider bei diesem Script nicht so ganz durch, auf das Erstellen eines solchen Scripts wäre ich soweiso nicht gekommen.
-
@dslraser ich verstehe es generell nicht
was ist denn, wenn man sich länger im WC aufhält. -
@dslraser sagte: und wo wird Bewegung2 gestoppt ?
Weshalb soll es gestoppt werden?
@crunchip sagte in Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume:
was ist denn, wenn man sich länger im WC aufhält.
Dann findet keine Bewegung im Schlafzimmer statt und das Licht bleibt an.
-
@paul53 sagte in Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume:
@dslraser sagte: und wo wird Bewegung2 gestoppt ?
Weshalb soll es gestoppt werden?
weil ich von Dir und anderen Usern gelernt habe, das ein timeout immer gestoppt werden sollte, da es sonst auch mehrfach laufen könnte ?
-
@dslraser sagte: timeout immer gestoppt werden sollte, da es sonst auch mehrfach laufen könnte ?
Da vor dem Timeout eine Sperre ist, kann es nur mehrfach laufen, wenn innerhalb der 30 s nochmal das WC aufgesucht und zurück gekehrt wird, was sehr unwahrscheinlich ist.
-
@paul53 sagte in Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume:
Dann findet keine Bewegung im Schlafzimmer statt und das Licht bleibt an.
aber warum? lässt mir gerade keine Ruhe
Trigger wurde geändert,
(BWM schalten nacht Zeit x(60 sec) auf false, wenn keine Bewegung erkannt wird.)- betritt man nun das WC, wird durch den letzten falls Block, die variable wc auf true gesetzt,
- nun startet der 2te falls Block, variable wird auf false gesetzt, Bewegungs2(30sec) löst aus
wodurch wird verhindert, das die 30 sec ablaufen und das Licht ausgeht? zumal es ja passieren kann, das der BWM nicht erkennt, wenn man länger sitzt
hab das mal versucht aufzumalen
-
@crunchip sagte: wodurch wird verhindert, das die 30 sec ablaufen und das Licht ausgeht? zumal es ja passieren kann, das der BWM nicht erkennt, wenn man länger sitzt
Wenn man im WC sitzt, wird im Schlafzimmer keine Bewegung erkannt, der 30-s-Timer also nicht gestartet, sondern erst, wenn man das Schlafzimmer wieder betritt (1-Personen-Haushalt vorausgesetzt).
-
@paul53 sagte in Hilfe benötigt 2 Bewegungsmelder, 1 Lichtschalter, 2 Räume:
der 30-s-Timer also nicht gestartet, sondern erst, wenn man das Schlafzimmer wieder betritt
genau das ist, was ich nicht verstehe,
man betritt vom SZ das WC, somit sind beide BWM true, dadurch wird die variable auf wahr gesetzt, diese löst doch Bewegung2 aus? -
@crunchip sagte: wird die variable auf wahr gesetzt, diese löst doch Bewegung2 aus?
Eine Variable löst nichts aus. Das kann nur ein Trigger.
-
@paul53 na da hab ich wohl was begonnen, sorry für mich ist das ganze sowieso zu hoch, ich kann nur sagen dass es bisher funktioniert und ich gehe auch davon weiter aus.