NEWS
Blockly: Heizungssteuerung in Abhängigkeit mit Temperatur und Präsenz
-
Hallo zusammen,
ich benötige Unterstützung bei einem Blockly Skript.
In meinem Arbeits-/ Gästezimmer hängt eine Elektroheizung, welche über einen Homematic Schaltaktor steuerbar ist. Weiterhin gibt es einen Homematic Präsenzmelder und einen Homematic Temperaturfüher.
Ich möchte gern folgendes erreichen:
Wenn die Raumtemperatur unter 20 Grad fällt und über den Bewegungsmelder 5 mal in Folge innerhalb 15 Minuten Bewegung erkannt wird, dann soll die Heizung angeschaltet werden. Sobald 15 Minuten keine Bewegung erkannt wurde, soll die Heizung ausgehen. Weiterhin soll die Heizung auch bei Überschreitung der Raumtemperatur von 22 Grad ausgehen. Zusätzlich soll die Heizung sich bei einer Raumtemperatur von kleiner 19 Grad eingeschaltet werden, um eine Auskühlung des Raumes zu vermeiden und auf 19,5 Grad aufheizen - Dies unabhängig von Bewegung.
Ich möchte dafür sorgen, dass ich tagsüber dort sitze oder Schlafgäste habe eine halbwegs konstante Raumtemperatur erreiche. Um aber nicht unnötig Stromkosten zu verursachen, soll die Heizung bei nicht Benutzung des Raumes ausgeschaltet sein.
Ich gehe davon aus, dass ich hier mit Variablen arbeiten muss. Habe dies bei einer anderen Schaltung auch schon mal gemacht. Doch wenn man das nicht regelmäßig macht, fängt man immer wieder von neuem an.
Ich denke, dass ich eine Variable brauche, die sich jede Minute um 1 erhöht und sich danach zurücksetzt. Oder man arbeitet mit Timeouts?
Bei der 5 maligen Bewegungserkennung wird es bestimmt auch eine Variable werden müssen und sich bei 5 zurücksetzt.
Ich freue mich auf eure Hilfestellung.
Mein Skript sieht aktuell so aus:
Hier noch das Skript:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id=":zg-)_EIq?4wI^ar^xX!" x="41" y="-15"><field name="NAME">AZ_Anzahl_Bewegung</field>
<next><block type="on_ext" id="i:tQ/iJ#.SLVro0jNI~S"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id=";/!P|B1JE-hF_QZMFBTz"><field name="oid">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="L(x|T4qvmH86E6_:1mh+"><value name="IF0"><block type="logic_operation" id="=dOVAQzBHNb(DH-[q=pl"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="W.KmU1UkXl;z|N64}Eo^"><field name="OP">LT</field> <value name="A"><block type="get_value" id="*ilW)e`F+WvYDX9f=SnP"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6i/reE..}C^J*hd=.m@0"><field name="NUM">20</field></block></value></block></value> <value name="B"><block type="logic_compare" id="c.VMK;VA8?YrMLjzMC:G"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="`-V}t|1fgfx%9`q[9Vvy"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></block></value> <value name="B"><block type="logic_boolean" id="~_hJbLLcT6[?kiyNiKxX"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="timeouts_settimeout" id="=8%/t,~16NWMR!qVi!fe"><field name="NAME">timeout_AZ_Heizung</field> <field name="DELAY">15</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="math_change" id="Yn+*#.#au+moI+M9j=7A"><field name="VAR">AZ_Anzahl_Bewegung</field> <value name="DELTA"><shadow type="math_number" id="Sd-icO]K}ThE:;uf4?:5"><field name="NUM">1</field></shadow></value></block></statement></block></statement> <next><block type="controls_if" id="E{@tupVFuStBC4XjuL7e"><value name="IF0"><block type="logic_compare" id="KoSm6u|@c(xg*!I7/2Q;"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="tf^uOgdgoYACzHo=Wj)~"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field></block></value> <value name="B"><block type="math_number" id="}BA@-FWt!WXV1ur,aW5V"><field name="NUM">5</field></block></value></block></value> <statement name="DO0"><block type="control" id="D%g9su{rG5Mf[=[j^(KF"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="vhsB!r:,v5*rq%Bf(V1w"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="^@#PQp]eZ`ilrjdPMrZx"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="w%MJ7B+sO6.vxX3O)*mL"><field name="NUM">0</field></block></value> <next><block type="timeouts_cleartimeout" id="mjtLl(/8g2.eV5%9wJ8b"><field name="NAME">timeout_AZ_Heizung</field></block></next></block></next></block></statement></block></next></block></statement> <next><block type="on_ext" id="K%9D@.Nwwf;x}WWqS(l1"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="o/lIUv0998Q%vk*|2cks"><field name="oid">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="M5:]JYt5_t]EO*ntsS8p"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="S74=3vIUpyY:Z}`|wCaD"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="y}]ghcF?0fnBjenl5@KQ"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6^{tLMlRoCcoa1@n`@2)"><field name="NUM">20</field></block></value></block></value> <statement name="DO0"><block type="control" id="O@ezlo_=QVg~{v^!8kp7"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="1?W;%KpPj*]b|HpP(p#3"><field name="BOOL">FALSE</field></block></value></block></statement> <value name="IF1"><block type="logic_compare" id="WYBGS*H1E@XI@2.E;.QU"><field name="OP">LT</field> <value name="A"><block type="get_value" id="aiTPK+(k6v6C[+bgfSfl"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="aTsuka1E{@SJaR:1Jo{h"><field name="NUM">19</field></block></value></block></value> <statement name="DO1"><block type="control" id="Vo::4Nu+;XA8Pq0p66E;"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="eecRUdvQ7]cw+~]2T60g"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></xml>
Vielen Dank im Voraus. Grüße, Stefan
-
Hallo Stefan,
sehe da auch eher Variablen.
Ziemlich tief verschaltet.
Als Beginner mach es es dir einfacher.
Bewegungsmelder in einem Falls Objekt hochzählen in einer Var anhand der Zeit.
Timer < 15 min, Bewegungszähler ein und hochzählen,
Timer > 15 min, Bewegungszähler auf 0 setzen
Kommentare bitte einfügen.
Du möchtest also haben dies ?
< 19 Heizung ein
= oder > 19,5, kein Bewegungsmelder, Heizung aus
< 20 , Bewegungsmelder > 5 , Heizung ein
22 Heizung aus
Ralf
-
Hallo Stefan,
sehe da auch eher Variablen.
Ziemlich tief verschaltet.
Als Beginner mach es es dir einfacher.
Bewegungsmelder in einem Falls Objekt hochzählen in einer Var anhand der Zeit.
Kommentare bitte einfügen.
Du möchtest also haben dies ?
< 19 Heizung ein
= oder > 19,5, kein Bewegungsmelder, Heizung aus
< 20 , Bewegungsmelder > 5 , Heizung ein
22 Heizung aus
Ralf `
Hallo Ralf,
danke für Deine Antwort.
Kommentare füge ich dann noch ein.
Ja… genau das möchte ich erreichen. Bloß der Präsenzmelder soll die >= 5 Bewegungen innerhalb 15 Minuten triggern. Falls das nicht der Fall ist, würde die Heizung auch nach 5 Tagen angehen, wenn ich ein mal pro Tag ins Arbeitszimmer gehe.
Grüße,
Srefan
Gesendet von iPhone mit Tapatalk
-
Hallo Stefan,
Kannst du ja machen, wenn Bewegungszähler > 5 und Zeit < 15 mache ..
Nach 15 min setzt du die Var Bewegungszähler auf 0.
Falls das nicht der Fall ist greift ja deine Temperatursteuerung ohne Bewegung.
Zitat:
Falls das nicht der Fall ist, würde die Heizung auch nach 5 Tagen angehen, wenn ich ein mal pro Tag ins Arbeitszimmer gehe.
Warum 5 Tage ?
Nachtrag Verstanden, Var nach 15 min Bewegungszähler auf 0 setzen.
Für die 15 min würde ich ein Timer bauen der per Var runter läuft.
-
Mir fällt jetzt keine einfache Lösung für 5x in 15 Minuten ein. Würde ein Variable nehmen und die bei jedem Impuls um 1 erhöhen und gleichzeitig alle 3 Minuten um 1 reduzieren (aber nur bis 0). Dann kannst Du schauen ab welchem Wert du schalten willst. Bei 1 würde im Extremfall die Heizung für 3 Minuten anspringen wenn wer durch geht. Kannst natürlich auch sagen bei 3 wird eingeschaltet und läuft solange nicht 0. Oder du erhöhst den Abstand der Reduktion. Ist etwas spielerei.
-
Würde da mit Blöcke arbeiten, macht das am Anfang auch übersichtlicher.
Zur Fehlersuche sowie so besser, zumindest für Beginner wie ich das bin. :mrgreen:
Block 1 Var Timer für die 15 min / Runterzähler
Block 2 Var Bewegungsmelder
Block 3 Frostschutz / Übertemperatur, ohne Bewegung ( kleiner als Bewegung )
Block 4 Besuch, mit Bewegung >5 in < 15 min
Beispiel Bild anbei
Gruß Ralf
5230_stefan_v2.jpg
5230_stefan_bm_v1.jpg
5230_stefan_v3.jpg -
Hallo Ralf,
ich schaue mir das mal am Sonntag an. Vielen Dank für die Ansätze und Deine Hilfe.
Grüße,
Stefan
Gesendet von iPhone mit Tapatalk
-
Hallo Stefan,
den Runterzähler 15 min kannst du alle 15 min mit einem Zeitplan triggern.
In Block 4 sagst du dann:
Wenn der Runterzähler ist 0 und Bewegung > 5 dann mache ….
Probiere es mal :mrgreen:
Ralf
5230_stefan_v10_block1.jpg
5230_stefan_v10_block2.jpg
5230_stefan_v10_block4.jpg -
Hier mal der gesamte Code.
Läuft bei mir. :mrgreen:
Versuche den mal in einem Blockly Script zu importieren.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id=",g,yqz):B[UvwUS!/I)" x="-212" y="-137"><field name="COMMENT">Block_1</field>
! <next><block type="comment" id="i.#16PsJDkxRpsEcnDy="><field name="COMMENT">Vorbesetzung bis Zähler läuft</field>
! <next><block type="controls_repeat_ext" id=":D3].PuP[Fc~+]bJ^n|L"><value name="TIMES"><shadow type="math_number" id="DxN[DdQ1R#,JIEw3-%5/"><field name="NUM">1</field></shadow></value>
! <statement name="DO"><block type="update" id="f~DUiox[k[?f5NXd7zI"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="text" id="F[0pIP;Nda|0%[rj^/zZ"><field name="TEXT">Timer läuft an bei 0,15,30,45 min</field></block></value></block></statement>
! <next><block type="comment" id="+rgv?O?%LqO7/:,/=qh"><field name="COMMENT">Runterzähler_Teit_Block_1</field>
! <next><block type="schedule" id="9}r:FJN%I96j@XIj?d3["><field name="SCHEDULE">/15 * * * </field>
! <statement name="STATEMENT"><block type="variables_set" id="5^RO(wP0.6])yNY}yk/"><field name="VAR">Zeit</field> ! <value name="VALUE"><block type="math_number" id="+R|Q3DIq+(|5St{+v^TY"><field name="NUM">15</field></block></value> ! <next><block type="update" id="%l3pArE!Ln2%N![WD]|}"><mutation delay_input="true"></mutation> ! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">1</field> ! <field name="UNIT">sec</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="variables_get" id="sfK5)0YntwE+XT@hRsix"><field name="VAR">Zeit</field></block></value> ! <next><block type="timeouts_setinterval" id="?vO!pb!{KnT#~C#R_M0("><field name="NAME">Intervall</field> ! <field name="INTERVAL">1</field> ! <field name="UNIT">min</field> ! <statement name="STATEMENT"><block type="variables_set" id="sN10-L_yc)w#e4]lxZj~"><field name="VAR">Zeit</field> ! <value name="VALUE"><block type="math_arithmetic" id="h(~
66/Zx(e]}-tN/(Y"><field name="OP">MINUS</field>
! <value name="A"><shadow type="math_number" id="l.?259QltjCD:PG@/[i7"><field name="NUM">1</field></shadow>
! <block type="variables_get" id="O!CyHS,|R.?=Y!2F%He3"><field name="VAR">Zeit</field></block></value>
! <value name="B"><shadow type="math_number" id="v0Y}-QujGX?4Fr;j#3"><field name="NUM">1</field></shadow></value></block></value> ! <next><block type="update" id="vw,fzs%gI[hKvIWHo,tx"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="variables_get" id="}k8,afsI+dTo
k%}xaDc"><field name="VAR">Zeit</field></block></value>
! <next><block type="controls_if" id="(Ca~/?qotOff;6JCpM#y"><value name="IF0"><block type="logic_compare" id="P.sT1et.Lz,AV%kIj(SE"><field name="OP">EQ</field>
! <value name="A"><block type="variables_get" id="=rYFy=D#paj}?,Vv6%^"><field name="VAR">Zeit</field></block></value> ! <value name="B"><block type="math_number" id="#%2,~
#P6V51YMD]r4[%"><field name="NUM">0</field></block></value></block></value>
! <statement name="DO0"><block type="timeouts_clearinterval" id="2f@AU|7+j@1HyYAMJi[u"><field name="NAME">Intervall</field></block></statement></block></next></block></next></block></statement>
! <next><block type="update" id="aZ!OKug:g8i,(u_[Q-JJ"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_compare" id="kh#1eUb2L10YLH0DeHqC"><field name="OP">EQ</field>
! <value name="A"><block type="variables_get" id="]2z.i?mXOu-,Cv(2pQ)H"><field name="VAR">Zeit</field></block></value>
! <value name="B"><block type="math_number" id="TP#a/lW4[uiuu+(]085q"><field name="NUM">0</field></block></value></block></value></block></next></block></next></block></next></block></statement>
! <next><block type="comment" id="~4j^[TCWZHr:zxg7le%g"><field name="COMMENT">Block_2</field>
! <next><block type="comment" id="7R7JVZ28K{Qr.j}pg|~"><field name="COMMENT">Verbesetzung Zaehler</field>
! <next><block type="controls_repeat_ext" id="DcCpA88[q7_2?Ye|9=4"><value name="TIMES"><shadow type="math_number" id="Vbc{s_R5#f/JhvF%RZ%?"><field name="NUM">1</field></shadow></value> ! <statement name="DO"><block type="variables_set" id="%IqWH(_z^!jT~mrd.KER"><field name="VAR">Zaehler_BM</field> ! <value name="VALUE"><block type="math_number" id="KG(SjMJa1J1G]]9fxvRa"><field name="NUM">0</field></block></value> ! <next><block type="update" id="mM{kV~(|xHNs;r2zE%MI"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="variables_get" id="WG#cGKG^+:R,rCIvNy#a"><field name="VAR">Zaehler_BM</field></block></value></block></next></block></statement> ! <next><block type="comment" id="
ZTjV5Zx6:}[3maSc2c#"><field name="COMMENT">Bewegung Zaehler auf 0</field>
! <next><block type="comment" id="1mJytQ=Ye)YAhrum{HOP"><field name="COMMENT">wenn Timer 0</field>
! <next><block type="on" id="FGx{mizechr;LvRD]_X"><field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field>
! <field name="CONDITION">ne</field>
! <statement name="STATEMENT"><block type="controls_if" id="O2P#7VSM:YB/Wd*j~A_"><value name="IF0"><block type="logic_compare" id="1)i:~xLunCH.A;YlV/A("><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="}WwPESE#!g-It8u(hI3q"><field name="ATTR">val</field> ! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field></block></value> ! <value name="B"><block type="math_number" id="
EmyO/4-Qf|9bal)0SN5"><field name="NUM">0</field></block></value></block></value>
! <statement name="DO0"><block type="variables_set" id="cr8ya#(~5EEHgv%dDwCp"><field name="VAR">Zaehler_BM</field>
! <value name="VALUE"><block type="math_number" id="Hym45K=;H6X3A@OHHOEy"><field name="NUM">0</field></block></value>
! <next><block type="update" id="2HrMEDL)KHIYF#?H!l:"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="variables_get" id="dwT,YQuhkg{gw
?}8XD^"><field name="VAR">Zaehler_BM</field></block></value></block></next></block></statement></block></statement>
! <next><block type="comment" id="mB!{+I8mhJ0[j}AW5KZq"><field name="COMMENT">Bewegungsmelder_Block_2</field>
! <next><block type="on" id="(MlNSS2Vly9L?NW|#w+t"><field name="OID">javascript.0.scriptEnabled.Tests.Schalter</field>
! <field name="CONDITION">any</field>
! <statement name="STATEMENT"><block type="controls_if" id="=i|78xKgAgO:j/o^-3{1"><value name="IF0"><block type="logic_compare" id="dUFYspniIZ!]7=2XD(|d"><field name="OP">LTE</field>
! <value name="A"><block type="get_value" id="IW:IlRVZ.@3PI9[?p-6"><field name="ATTR">val</field>
! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field></block></value>
! <value name="B"><block type="math_number" id="7t!,.3OD+Q[32E[o;Br"><field name="NUM">10</field></block></value></block></value>
! <statement name="DO0"><block type="variables_set" id="xKm_V.J4azd~TcN3Z5{6"><field name="VAR">Zaehler_BM</field>
! <value name="VALUE"><block type="math_arithmetic" id="e}O=,J)i5tC;=(gM[Jdt"><field name="OP">ADD</field>
! <value name="A"><shadow type="math_number" id="L.Z.vRirc:?zWjvW!!ZF"><field name="NUM">1</field></shadow>
! <block type="variables_get" id="Qj;%AdH2Pg2W1-X6I;."><field name="VAR">Zaehler_BM</field></block></value>
! <value name="B"><shadow type="math_number" id="Y0VIcVxty2W^IEqOYNok"><field name="NUM">1</field></shadow></value></block></value>
! <next><block type="update" id="f0Tz2avmGQG%lWtchI?"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="variables_get" id="=Emr(JtRkmV;wl{.Ztmv"><field name="VAR">Zaehler_BM</field></block></value></block></next></block></statement> ! <next><block type="controls_if" id="_I{pqLZ8ny_BYDJckSz^"><value name="IF0"><block type="logic_compare" id="lnq5l6ebH+p=m@yy(_lE"><field name="OP">GT</field> ! <value name="A"><block type="variables_get" id="[Wf!};Uj0hR477vI,V1;"><field name="VAR">Zaehler_BM</field></block></value> ! <value name="B"><block type="math_number" id="RMX/=+{f9F89-kNje:e7"><field name="NUM">10</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="N0=xDwJ3Y|uJp
?t~Z6R"><field name="VAR">Zaehler_BM</field>
! <value name="VALUE"><block type="math_number" id="B6ByJ0UW](@-O-V-AXO{"><field name="NUM">0</field></block></value>
! <next><block type="update" id="4z,xfw@u;Z0HSLX%J({~"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="variables_get" id="zVG?d:td3MqF+y0]#~s`"><field name="VAR">Zaehler_BM</field></block></value></block></next></block></statement></block></next></block></statement>
! <next><block type="comment" id="xTDP/5Ejigu!l.z%;jhv"><field name="COMMENT">Block_3</field>
! <next><block type="comment" id="VzlQV8P!trYv]1|@94q"><field name="COMMENT">Block_4</field>
! <next><block type="on" id="EuY?v[RJD|=!4sY-Y|X"><field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field>
! <field name="CONDITION">ne</field>
! <statement name="STATEMENT"><block type="controls_if" id="?jc6j^qmd2s4^L^uhm7u"><value name="IF0"><block type="logic_operation" id="_hn;tI7b8q?Dt@e3JhOw"><field name="OP">AND</field>
! <value name="A"><block type="logic_compare" id="xga?iio@z+sbLcFS,Lqz"><field name="OP">GTE</field>
! <value name="A"><block type="get_value" id="EkK[)9]T%H7=.7g]x-V*"><field name="ATTR">val</field>
! <field name="OID">javascript.0.scriptEnabled.Tests.BM_Zaehler</field></block></value>
! <value name="B"><block type="math_number" id="9w@_9uMs!HX|=c:ul(sY"><field name="NUM">5</field></block></value></block></value>
! <value name="B"><block type="logic_compare" id="t,4o81k+?g+AQ!O}l}X@"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="JtUN0E_100+dfIsX2=g["><field name="ATTR">val</field>
! <field name="OID">javascript.0.scriptEnabled.Tests.Runterzaehler_Timer</field></block></value>
! <value name="B"><block type="math_number" id="}(r6v[K]7oJl#.b?FPiF"><field name="NUM">0</field></block></value></block></value></block></value>
! <statement name="DO0"><block type="control" id=")m6%YD:8LcPmvJ,}jh7f"><mutation delay_input="false"></mutation>
! <field name="OID">broadlink2.0.RM:Broadlink-RMPROPLUS-8a-60-33.L.StehlampeAus</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="PZ7o8CJb^/i)Id}1:TY~"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>
Ralf
5230_stefan_v10_import.jpg -
Nachteil dieser Lösung ist dass wenn der Skript jm 0, 15, 30 und 45' läuft Bewegungen um 10,14, 17, 19 und 21' nicht als 5 Bewegungen erkannt werden. Entweder man schreibt jede Bewegung mit Uhrzeit mit oder macht sowas wie weiter oben von mir beschrieben oder lebt mit der Einschränkung.
-
Hallo zusammen,
ich habe das Skript jetzt so gebaut. Konnte es aber noch nicht testen. Kann das so funktionieren? (Kommentare fehlen noch)
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id=":zg-)_EIq?4wI^ar^xX!" x="38" y="12"><field name="NAME">AZ_Anzahl_Bewegung</field>
<next><block type="create" id="CFxy|i:Z`!b;-*fc3x?T"><field name="NAME">AZ_Timer_15Min</field>
<next><block type="on_ext" id="i:tQ/iJ#.SLVro0jNI~S"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id=";/!P|B1JE-hF_QZMFBTz"><field name="oid">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="L(x|T4qvmH86E6_:1mh+"><value name="IF0"><block type="logic_operation" id="=dOVAQzBHNb(DH-[q=pl"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="W.KmU1UkXl;z|N64}Eo^"><field name="OP">LT</field> <value name="A"><block type="get_value" id="*ilW)e`F+WvYDX9f=SnP"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6i/reE..}C^J*hd=.m@0"><field name="NUM">20</field></block></value></block></value> <value name="B"><block type="logic_compare" id="c.VMK;VA8?YrMLjzMC:G"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="`-V}t|1fgfx%9`q[9Vvy"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></block></value> <value name="B"><block type="logic_boolean" id="~_hJbLLcT6[?kiyNiKxX"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="timeouts_setinterval" id="@3FnQiMM:!-YI^+OfzEU"><field name="NAME">AZ_Anzahl_Bewegung_Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="math_change" id="Yn+*#.#au+moI+M9j=7A"><field name="VAR">AZ_Anzahl_Bewegung</field> <value name="DELTA"><shadow type="math_number" id="Sd-icO]K}ThE:;uf4?:5"><field name="NUM">1</field></shadow></value></block></statement> <next><block type="timeouts_setinterval" id="*0XLzl2w95E@9u}:/E{V"><field name="NAME">AZ_Timer_15Min_Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="math_change" id="*I(f-Ymq(efI}?`~!7lU"><field name="VAR">AZ_Timer_15Min</field> <value name="DELTA"><shadow type="math_number" id="0Key~u2~3nxExQzs#URY"><field name="NUM">1</field></shadow></value></block></statement></block></next></block></statement> <next><block type="controls_if" id="E{@tupVFuStBC4XjuL7e"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="Pw|lq]`z,!G4-a:7)u`6"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="KoSm6u|@c(xg*!I7/2Q;"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="tf^uOgdgoYACzHo=Wj)~"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field></block></value> <value name="B"><block type="math_number" id="}BA@-FWt!WXV1ur,aW5V"><field name="NUM">5</field></block></value></block></value> <value name="B"><block type="logic_compare" id="k~h@diPm5*iDWnfpu-%o"><field name="OP">LT</field> <value name="A"><block type="get_value" id=".,)}Bw59qwpL(iyV5T)s"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Timer_15Min</field></block></value> <value name="B"><block type="math_number" id="J|!-ZkgH6~cQef}zG`08"><field name="NUM">15</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="D%g9su{rG5Mf[=[j^(KF"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="vhsB!r:,v5*rq%Bf(V1w"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="^@#PQp]eZ`ilrjdPMrZx"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="w%MJ7B+sO6.vxX3O)*mL"><field name="NUM">0</field></block></value> <next><block type="control" id="X8y36}}+p}-oV4QF3zSj"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Timer_15Min</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="o|T.*_=]m5pSsie)xRkE"><field name="NUM">0</field></block></value></block></next></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="77dV5wje+#fP.~JH{GI|"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="?(FH)^J/b?1%?{+ai*BS"><field name="OP">LT</field> <value name="A"><block type="get_value" id="+Urg1|7oxkH-`7O4ZxT8"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field></block></value> <value name="B"><block type="math_number" id="nB}Z4ikkqagZo0JQavL!"><field name="NUM">5</field></block></value></block></value> <value name="B"><block type="logic_compare" id="QlO/@_hJEx^WY9cbSi7M"><field name="OP">GT</field> <value name="A"><block type="get_value" id="xJ{78z)3?gxU=19;BI+M"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Timer_15Min</field></block></value> <value name="B"><block type="math_number" id="*K|wTjXdGc(H1_d!)yQO"><field name="NUM">15</field></block></value></block></value></block></value> <statement name="DO1"><block type="control" id="DItJ{^4r3#L+;(9G54[]"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="y}.|I*hoL1dYs}@[X_)i"><field name="NUM">0</field></block></value> <next><block type="control" id="n%rm*taT*5Oo)ms3jq9?"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Timer_15Min</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="~ZowvHkH_jH%w0#*=|Q3"><field name="NUM">0</field></block></value></block></next></block></statement></block></next></block></statement> <next><block type="on_ext" id="K%9D@.Nwwf;x}WWqS(l1"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="o/lIUv0998Q%vk*|2cks"><field name="oid">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="M5:]JYt5_t]EO*ntsS8p"><value name="IF0"><block type="logic_compare" id="S74=3vIUpyY:Z}`|wCaD"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="y}]ghcF?0fnBjenl5@KQ"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6^{tLMlRoCcoa1@n`@2)"><field name="NUM">21</field></block></value></block></value> <statement name="DO0"><block type="control" id="O@ezlo_=QVg~{v^!8kp7"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="1?W;%KpPj*]b|HpP(p#3"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement> <next><block type="on_ext" id="m|)dAho,l~=F{Ly?yjc{"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="A*_/rS(IXa2d6(5GYj+B"><field name="oid">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="QO].n*_c9^3Is*RY#x0H"><value name="IF0"><block type="logic_compare" id="WYBGS*H1E@XI@2.E;.QU"><field name="OP">LT</field> <value name="A"><block type="get_value" id="aiTPK+(k6v6C[+bgfSfl"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="aTsuka1E{@SJaR:1Jo{h"><field name="NUM">19</field></block></value></block></value> <statement name="DO0"><block type="control" id="Vo::4Nu+;XA8Pq0p66E;"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="eecRUdvQ7]cw+~]2T60g"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></xml>
Ich freue mich auf eure Antworten. Grüße, Stefan