- Home
- Deutsch
- Skripten / Logik
- Blockly
- Dachfenster - Automatisierung, wie triggern?
Dachfenster - Automatisierung, wie triggern?
-
@gezi70
Was bewirkt die unterste Abfrage? -
@paul53 wenn die Außentemperatur höher als die Innentemperatur ist..., und der Magnetkontakt erkennt, dass das Fenster geöffnet ist (braucht man nicht unbedingt, oder?), dann soll es geschlossen werden. Hab ich rein genommen, weil ein Jalousieaktor angesteuert wird, und das Fenster nicht unbedingt genau die Prozentzahl hat, die angezeigt wird.
Außerdem wird durch ein weiteres Skript (welches sogar funktioniert!
) bewirkt, dass, wenn der Aktor 0% meldet, der Magnetkontakt aber ein offenes Fenster erkennt, das Fenster quasi eine Initialisierung durchmacht. Es fährt so oft zwischen 0% und 100% hin und her, bis es stimmt.
-
@gezi70
Mit den Intervallen funktioniert es nicht. Die Temperaturen ändern sich oft genug, so dass diese als Trigger genügen.
Ohne auf Sinnhaftigkeit der Verknüpfungen zu prüfen, habe ich mal einige Prüfungen (z.B. Automatisierung_Dachfenster und rH < 90) zusammengefasst und den Duty cycle berücksichtigt:<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</variable> <variable id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</variable> <variable id="?gPo#pQYYOu=(4;YAvZP">level</variable> </variables> <block type="on_ext" id="nCFf$5D~RW7-Ymg+*/U8" x="255" y="-517"> <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=",,EX.PPu/%+]#l-y!i3_"> <field name="oid">netatmo.0.Lohgrund-(Indoor).Indoor.Temperature.Temperature</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="pC9Rt(X=ab]p5B{kJXk{"> <field name="oid">weatherunderground.0.forecast.current.temp</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="I@*Ccdo_WIBN!jh;sdxL"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> <value name="VALUE"> <block type="get_value" id="hvv_Nn9@#z?)G?%pmpl)"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Lohgrund-(Indoor).Indoor.Temperature.Temperature</field> </block> </value> <next> <block type="variables_set" id="A:R?pMh{[(e!|=V~db@F"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> <value name="VALUE"> <block type="get_value" id="{=*xq:dTi)iovx:FL7:N"> <field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.current.temp</field> </block> </value> <next> <block type="controls_if" id="QkG;9AFT;6k#t4Ugx`q~"> <value name="IF0"> <block type="get_value" id="4Vv@+9-y3L;0r,PRuczE"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Schlafzimmersteuerung.Automatisierung_Dachfenster</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="j{5^ghPLXvGI)Ev$66%V"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id=",nSG@.t}P!6y*HTP*6tA"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id=":pO5YL,l;h|*p3G2PL?C"> <field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.current.relativeHumidity</field> </block> </value> <value name="B"> <block type="math_number" id="!NXEa@,k0b94(yX:(I2P"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="rkMDuk]ov53B**7{D=rT"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="time_compare" id="KP)RRP)pRVLf:P]G1{fK"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">19:00</field> <field name="END_TIME">23:00</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="=8]uN+vX+D2QDw8s{hV)"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="9MKBOjnE3U$hBBy~q^NH" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="%]YtubWyjW#Y.7~MQf`V"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="z9Gl*js:giKNRSiU@Pn0"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="vc$QvfW~T0=TGz2c*uY3"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="+sM6;77(yB)5jE)dqi^k"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="5y43TxyG3Mr0;$}2$)5;"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="ES`T+)~B:Tp_b}gG5)++"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="bLk+=,kgiZP^PmtZ?Uv#"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="t;T~=x$Uu9A{|ma^tnap"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="KWjz+S*z2hZ4WB-BADW%"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="N#=={sp:`]vJSHz$@D@H"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="9@igocO!csf?|E8PBU~2"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="`ULK(Ue@.S{aq?OIH`]+"> <field name="NUM">100</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="bfA.;iwuS3,(ij36NQ+a"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="~MZ:A3Pc+8F5G=~TF4:a"> <field name="NUM">48</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="YFx2W.@#YO=BaI_Bz,JY"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="F=_cZArg`8x!BpU?s}}z"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="time_compare" id="v3/]k@0XNu%9tY,Cu;A8"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">7:00</field> <field name="END_TIME">19:00</field> </block> </value> <statement name="DO1"> <block type="controls_if" id="_W#h|:v[KZc8Q|@yj}O~"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="%QKJ[#O^k8~BtKEn[mWS" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="jmB,PpgD%],4MgR0,OqC"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="GVcHB9vf~0|u3D$)gN0%"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="JjT4yrP;qJ=0BbGoEmye"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="El.j|;FMCNKU]$Na)2Fi"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="r78WNTqWeUzX4=#KY[cf"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="#EF.L]294,^ru3cF3:z,"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="ASp-hyK,lRg~)IoB)B[{"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="@!d.S7Dx}jM0.gAF8H)|" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="rjmZatx%YrPO7[T~yl8G"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=".asb:CMRE!t|9VeXd/Nf"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="W70YuY1%zs*!s(mC(6Yz"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="hm,Pd/kd{R[ayjtft{#_"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5?j?bAK7Sz.!eZlO$,9a"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="B*(1%TO:Ad7+#j/N3$a#"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="|oQ%`WV![Ag$9InqPP.+"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="m_h0_K;%U)$+/M5pfJ9D"> <field name="NUM">100</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="W)|CgY2h.5s18E-Es]4S" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="QR)as%-.8uN0+W~kB*0," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="aD5S@2:JwEE!~%u)X`:l"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="`%eD|d@b{;X/KgWqH`(-"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="tttO!jV%**XZ^qdg3cY4"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="aVa)KWA1-5#0D_;:K:5]"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4Sio%/7P$~~P2o5FbPpO"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="oQX$4wt%P?Jje9kyH5B%"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="qa!S_Pqdtr6,;@5:OLl)" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{d2:V~+/5L7Q!Z7hRRzp"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=":[RWlz+?y:FLS3bhf!fZ"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="C#XZyTJ54?K4?U;y8Lv^"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="U8S~ZnIgu7VI8$l[qYtP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="R)Ssnor+36Om,!bHm)fi"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="2CQtMFEjhkRx9IH%W^]_"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="[$8lY2)-D8dB47.W[93r"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="@`+l$-E~?Vj=3WWut!A-"> <field name="NUM">48</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_operation" id=",^Da9FMWJ=3x|:O=Qh{^" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="cy!-6Xdgy~y(x9E;!ol}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="BtSy?Iw@REOzEx6D;`2$"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="vgYrGOGgJ_=@l;ZU%p(("> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="[zXNik$.V*![uv(5/42T"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id=":cB9;ZdL-8kUDe|e5p/Z" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="AvXKJS7,3}(I)`W/Pf=U"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ribkb)$.Ap6)Q(5gIF{-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="#%zRxl@+SS,KghLDOV2b"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5HDMS1d9|pH*Y8E*Yhb["> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Qj?8eWxwL!6|*P;phS|I"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="?;;pDXAdy7+OLajdu!q}"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="5@MFP=rgfT32~5ajmFC`" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="2-*X+pq`]`C;qarz09Sz"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="F-!~N^-x],HhJDiMp5LZ"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="M`|1cHJT{3bWOABk2|(G"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="z|VsmE|NJ?-Ss!9cF}a,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~9i4-,8^3@jxm6#o=$yV"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="@~0tkS4C)u._Pmxd(+r+"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="$#k]Oo/XrL-M?)amwS6L"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="}N`W!K(pZoF1IM~EATIu"> <field name="NUM">40</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_operation" id="BCKn}h6Zlmq+1^hVnG_F" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="F=c|1kWLPjf@g6{V[xFb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="FhY8j9}-s49ah]P70e(!"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="JJ8olm3[T1|.aHK.?+L7"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="3WdpxkLyrVT#,%4j5[%."> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="O;l/!a!Fu%uiATiV8FVP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="Y!G-sDwyi9KJfr?l[pp6"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="qqwF(bQTM;4TrO4!!t}n"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5(;JmMw8`t6KJlw~4xX$"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="oNK@Re1)WU%,1`KF^KZQ"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="p9{FdGtw0WPJj`406dD?"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="zN4N@!$|=uru?%9~r6WK"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="ka1B`-L%-WUq[1Wjl*l?"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="~@.QyU`p;xTp[_{T$ay]"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="C_.)F.vp=#hFXd}/$hDe"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="comment" id="QItG9]J$ysxP0``Jdw`["> <field name="COMMENT">Nur Änderungen senden (Duty cycle)</field> <next> <block type="controls_if" id="O/!TgQ91UEpq*@21AkVz"> <value name="IF0"> <block type="logic_compare" id="{Y5G0%TM/D9hv:{_b2Ae"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="tZS{srpg6/yUvY=/$8^("> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> </block> </value> <value name="B"> <block type="get_value_var" id="tt*[*@az`V2,;MP*/bHf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="rmy|I2|zhy8=qlm-Jmfg"> <field name="TEXT">hm-rpc.1.OEQ0888649.1.LEVEL</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="q=;Vg99Rd|^P0,aXz=4V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.OEQ0888649.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="eO()T`SZ`)]65-N:^XKk"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@gezi70 sagte: das Fenster quasi eine Initialisierung durchmacht. Es fährt so oft zwischen 0% und 100% hin und her, bis es stimmt.
Geht das nicht intelligenter?
-
@paul53 danke erstmal, das muss ich mir heute Abend mal in Ruhe anschauen.
Eine Frage hätte ich noch. Wie könnte ich es bewerkstelligen, dass das Fenster - sollte es aller paar Minuten die Stellung wechselt, dies nur aller, sagen wir mal 30 Minuten, macht? Mit einem Timeout in der Abfrage? -
@paul53 vielleicht schon - aber die Automatisierung ist halt nur so intelligent wie der Programmierer...
-
@gezi70 sagte: sollte es aller paar Minuten die Stellung wechselt, dies nur aller, sagen wir mal 30 Minuten, macht?
-
@paul53 der Timeout ist quasi noch mal als Variable angelegt?
-
@gezi70 sagte: der Timeout ist quasi noch mal als Variable angelegt?
timeout ist der Variablenbezeichner für das rückgegebene Timerobjekt von setTimeout().
Nach Einfügen von "Ausführen timeout" muss erst einmal in die Javascript-Ansicht und wieder zurück gewechselt werden, um auf die Variable timeout zugreifen zu können. -
@paul53 danke, und wo kriege ich die Variable von "level' her? Sorry wenn ich so dämlich frage...
Oder könntest du mir bitte deine Version als Code geben? Danke... -
@gezi70 sagte: deine Version als Code geben?
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</variable> <variable id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</variable> <variable id="?gPo#pQYYOu=(4;YAvZP">level</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id="nCFf$5D~RW7-Ymg+*/U8" x="255" y="-517"> <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=",,EX.PPu/%+]#l-y!i3_"> <field name="oid">netatmo.0.Lohgrund-(Indoor).Indoor.Temperature.Temperature</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="pC9Rt(X=ab]p5B{kJXk{"> <field name="oid">weatherunderground.0.forecast.current.temp</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="I@*Ccdo_WIBN!jh;sdxL"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> <value name="VALUE"> <block type="get_value" id="hvv_Nn9@#z?)G?%pmpl)"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Lohgrund-(Indoor).Indoor.Temperature.Temperature</field> </block> </value> <next> <block type="variables_set" id="A:R?pMh{[(e!|=V~db@F"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> <value name="VALUE"> <block type="get_value" id="{=*xq:dTi)iovx:FL7:N"> <field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.current.temp</field> </block> </value> <next> <block type="controls_if" id="QkG;9AFT;6k#t4Ugx`q~"> <value name="IF0"> <block type="get_value" id="4Vv@+9-y3L;0r,PRuczE"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Schlafzimmersteuerung.Automatisierung_Dachfenster</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="j{5^ghPLXvGI)Ev$66%V"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id=",nSG@.t}P!6y*HTP*6tA"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id=":pO5YL,l;h|*p3G2PL?C"> <field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.current.relativeHumidity</field> </block> </value> <value name="B"> <block type="math_number" id="!NXEa@,k0b94(yX:(I2P"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="rkMDuk]ov53B**7{D=rT"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="time_compare" id="KP)RRP)pRVLf:P]G1{fK"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">19:00</field> <field name="END_TIME">23:00</field> </block> </value> <statement name="DO0"> <block type="controls_if" id="=8]uN+vX+D2QDw8s{hV)"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="9MKBOjnE3U$hBBy~q^NH" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="%]YtubWyjW#Y.7~MQf`V"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="z9Gl*js:giKNRSiU@Pn0"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="vc$QvfW~T0=TGz2c*uY3"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="+sM6;77(yB)5jE)dqi^k"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="5y43TxyG3Mr0;$}2$)5;"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="ES`T+)~B:Tp_b}gG5)++"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="bLk+=,kgiZP^PmtZ?Uv#"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="t;T~=x$Uu9A{|ma^tnap"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="KWjz+S*z2hZ4WB-BADW%"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="N#=={sp:`]vJSHz$@D@H"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="9@igocO!csf?|E8PBU~2"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="`ULK(Ue@.S{aq?OIH`]+"> <field name="NUM">100</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="bfA.;iwuS3,(ij36NQ+a"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="~MZ:A3Pc+8F5G=~TF4:a"> <field name="NUM">48</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="YFx2W.@#YO=BaI_Bz,JY"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="F=_cZArg`8x!BpU?s}}z"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="time_compare" id="v3/]k@0XNu%9tY,Cu;A8"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">7:00</field> <field name="END_TIME">19:00</field> </block> </value> <statement name="DO1"> <block type="controls_if" id="_W#h|:v[KZc8Q|@yj}O~"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="%QKJ[#O^k8~BtKEn[mWS" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="jmB,PpgD%],4MgR0,OqC"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="GVcHB9vf~0|u3D$)gN0%"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="JjT4yrP;qJ=0BbGoEmye"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="El.j|;FMCNKU]$Na)2Fi"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="r78WNTqWeUzX4=#KY[cf"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="#EF.L]294,^ru3cF3:z,"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="ASp-hyK,lRg~)IoB)B[{"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="@!d.S7Dx}jM0.gAF8H)|" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="rjmZatx%YrPO7[T~yl8G"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=".asb:CMRE!t|9VeXd/Nf"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="W70YuY1%zs*!s(mC(6Yz"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="hm,Pd/kd{R[ayjtft{#_"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5?j?bAK7Sz.!eZlO$,9a"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="B*(1%TO:Ad7+#j/N3$a#"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="|oQ%`WV![Ag$9InqPP.+"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="m_h0_K;%U)$+/M5pfJ9D"> <field name="NUM">100</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="W)|CgY2h.5s18E-Es]4S" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="QR)as%-.8uN0+W~kB*0," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="aD5S@2:JwEE!~%u)X`:l"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="`%eD|d@b{;X/KgWqH`(-"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="tttO!jV%**XZ^qdg3cY4"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="aVa)KWA1-5#0D_;:K:5]"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4Sio%/7P$~~P2o5FbPpO"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="oQX$4wt%P?Jje9kyH5B%"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="qa!S_Pqdtr6,;@5:OLl)" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{d2:V~+/5L7Q!Z7hRRzp"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=":[RWlz+?y:FLS3bhf!fZ"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="C#XZyTJ54?K4?U;y8Lv^"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="U8S~ZnIgu7VI8$l[qYtP"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="R)Ssnor+36Om,!bHm)fi"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="2CQtMFEjhkRx9IH%W^]_"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="[$8lY2)-D8dB47.W[93r"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="@`+l$-E~?Vj=3WWut!A-"> <field name="NUM">48</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_operation" id=",^Da9FMWJ=3x|:O=Qh{^" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="cy!-6Xdgy~y(x9E;!ol}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="BtSy?Iw@REOzEx6D;`2$"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="vgYrGOGgJ_=@l;ZU%p(("> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="[zXNik$.V*![uv(5/42T"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id=":cB9;ZdL-8kUDe|e5p/Z" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="AvXKJS7,3}(I)`W/Pf=U"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ribkb)$.Ap6)Q(5gIF{-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="#%zRxl@+SS,KghLDOV2b"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5HDMS1d9|pH*Y8E*Yhb["> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Qj?8eWxwL!6|*P;phS|I"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="?;;pDXAdy7+OLajdu!q}"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="5@MFP=rgfT32~5ajmFC`" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="2-*X+pq`]`C;qarz09Sz"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="F-!~N^-x],HhJDiMp5LZ"> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> <value name="B"> <block type="math_number" id="M`|1cHJT{3bWOABk2|(G"> <field name="NUM">20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="z|VsmE|NJ?-Ss!9cF}a,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~9i4-,8^3@jxm6#o=$yV"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="@~0tkS4C)u._Pmxd(+r+"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="$#k]Oo/XrL-M?)amwS6L"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="}N`W!K(pZoF1IM~EATIu"> <field name="NUM">40</field> </block> </value> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_operation" id="BCKn}h6Zlmq+1^hVnG_F" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="F=c|1kWLPjf@g6{V[xFb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="FhY8j9}-s49ah]P70e(!"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="JJ8olm3[T1|.aHK.?+L7"> <field name="VAR" id="*_-GmR@MCKPKv:J@BmX9">Aussentemperatur</field> </block> </value> <value name="B"> <block type="variables_get" id="3WdpxkLyrVT#,%4j5[%."> <field name="VAR" id="Q0]Lq],ip{HX/6~Fp30x">Innentemperatur</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="O;l/!a!Fu%uiATiV8FVP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="Y!G-sDwyi9KJfr?l[pp6"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="qqwF(bQTM;4TrO4!!t}n"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5(;JmMw8`t6KJlw~4xX$"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="oNK@Re1)WU%,1`KF^KZQ"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.value.wetterbedingung_sonne_wind</field> </block> </value> <value name="B"> <block type="math_number" id="p9{FdGtw0WPJj`406dD?"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="zN4N@!$|=uru?%9~r6WK"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="ka1B`-L%-WUq[1Wjl*l?"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="~@.QyU`p;xTp[_{T$ay]"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> <value name="VALUE"> <block type="math_number" id="C_.)F.vp=#hFXd}/$hDe"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="comment" id="QItG9]J$ysxP0``Jdw`["> <field name="COMMENT">Nur Änderungen senden (Duty cycle)</field> <next> <block type="controls_if" id="O/!TgQ91UEpq*@21AkVz"> <value name="IF0"> <block type="logic_operation" id=":Fx.)AR#]cNL,n@CMB[p" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{Y5G0%TM/D9hv:{_b2Ae"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="tZS{srpg6/yUvY=/$8^("> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> </block> </value> <value name="B"> <block type="get_value_var" id="tt*[*@az`V2,;MP*/bHf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="rmy|I2|zhy8=qlm-Jmfg"> <field name="TEXT">hm-rpc.1.OEQ0888649.1.LEVEL</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="_#rfMxhBIFQV9StU!`WU"> <value name="BOOL"> <block type="variables_get" id="+{g%6xEEOwb[c%62Jy`U"> <field name="VAR" id="timeout" variabletype="timeout">timeout</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="q=;Vg99Rd|^P0,aXz=4V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.OEQ0888649.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="eO()T`SZ`)]65-N:^XKk"> <field name="VAR" id="?gPo#pQYYOu=(4;YAvZP">level</field> </block> </value> <next> <block type="timeouts_settimeout" id="L7;^Cn;lH5YJcZ{l)cw4"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="(pB_C43#)[3V~O]!2?NU"> <field name="VAR" id="timeout" variabletype="timeout">timeout</field> <value name="VALUE"> <block type="logic_null" id="E)0|^qoF,*tk8jzot]Pk"></block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@paul53 ich danke dir!
-
@gezi70
Was beinhaltet eigentlich die "Differenz-Temperatur", die auf > 10 geprüft wird? -
@paul53 Differenz zwischen Innen- und Außentemperatur
-
@gezi70 sagte: Differenz zwischen Innen- und Außentemperatur
Die Differenz soll > 10 Grad sein, damit das Fenster geöffnet wird?
-
@paul53 die genauen Werte wollte ich durch Spielerei herausfinden. Erstmal ja.
-
@paul53 Ich habe mir das Ganze nochmal in Ruhe angesehen.
Vielen Dank nochmal, dass du dich dieses Skriptes angenommen hast. Gehe ich Recht in der Annahme, dass du das über Java programmiert, und es dann in Blockly konvertiert hast? Denn ich wäre sonst auf die Variablen von "level" und dem unteren Teil gar nicht gekommen.
Was bewirkt dieser (s. Bild) eigentlich genau? Ich kann das irgendwie nicht ganz nachvollziehen...Und wie hättest du denn die Initialisierung, dass der Aktor die 100% und 0% wieder findet, gelöst (s. oben)?
-
@gezi70 sagte: dass du das über Java programmiert, und es dann in Blockly konvertiert hast?
Nein, allerdings habe ich den zugehörigen Javascript-Code "im Hinterkopf" und falls nicht, schaue ich nach.
@gezi70 sagte in Dachfenster - Automatisierung, wie triggern?:
Denn ich wäre sonst auf die Variablen von "level" und dem unteren Teil gar nicht gekommen.
Das Verwenden von Variablen ist viel effizienter, da setState() eine komplexe Funktion ist, die nur so oft wie unbedingt nötig aufgerufen werden sollte. Außerdem muss man im 868-MHz-Band auf den Duty cycle achten, was einfacher ist, wenn man es nur an einer Stelle machen muss.
@gezi70 sagte in Dachfenster - Automatisierung, wie triggern?:
Initialisierung, dass der Aktor die 100% und 0% wieder findet, gelöst (s. oben)?
Da ich keine Rollo-Aktoren habe, weiß ich nicht, welche Optionen sie bieten.
-
@paul53 ich versuche den unteren Teil deines Skriptes zu verstehen. Das ist der Abschnitt, den ich als letztes Foto eingefügt hatte. Also der Teil, indem der Variablen der Wert des Levels zugeteilt wird. Deshalb habe ich ihn kopiert und versucht, ihn in einem eigenen CRON nur su zum Verständnis anzusteuern. Aber im Log bekomme ich folgende Aussage, ohne dass sich etwas am Stellmotor tut:
Wo liegt mein Denkfehler?
-
@gezi70 sagte: Wo liegt mein Denkfehler?
Die Variable level muss einen Zahlenwert zwischen 0 und 100 erhalten bevor sie ausgewertet wird.