NEWS
Fenster offen/Terrasse mit Verzögerung/soll Temp speichern
-
@D3ltoroxp
gib mir mal das xml dann zeige ich dir wie ich mir das vorstelle. Bekomme das leider nicht als Beispiel hin ohne deine Gerätenamen. -
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="CuP,B)0Ri@%j_(A8Y=Kn">Heizprogramm</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="em3J5e8*F^vvG+m;L+iw">Wohnzimmer_Soll_Temp</variable> <variable type="" id="{#bB.LZ3XaHu)/HlOUg(">Esszimmer_Soll_Temp</variable> </variables> <block type="comment" id="DY`CYb|VzVDvuh.${ggg" x="-3112" y="-1062"> <field name="COMMENT">Energie sparen, Fenster offen erkennung</field> <next> <block type="on_ext" id="k9Ib~iWiKnl)!TP7PB=W"> <mutation items="5"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O-zGs8/$.EWXATsI=n*d"> <field name="oid">zigbee.0.00158d0002e8bbbc.opened</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="pZgAfGUMy?,x0TUQ,Hnc"> <field name="oid">zigbee.0.00158d000321a505.opened</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="k#6V7!#{n|zr/zxi9*#^"> <field name="oid">zigbee.0.00158d0003218006.opened</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="SK*^n:w=AoUwFfmE.7.7"> <field name="oid">zigbee.0.00158d000321800c.opened</field> </shadow> </value> <value name="OID4"> <shadow type="field_oid" id="YS]%{s|[@`BL^//`39yb"> <field name="oid">zigbee.0.00158d000321973c.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="[|JF{b//WvEce4Gkcf;N"> <field name="COMMENT">Prüfen ob Fenster offen, schreiben in Fake Fenster</field> <next> <block type="controls_if" id="*s)|-Un}^U43keU/wp`P"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="U+{woiYwFwyQ*g!;(A8*" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="/Sj7uUb-8J}kBLVBi{o+" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="K,s9Aord;dVu)iWZ0Tpx"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="RJ1n[2Ve#C%#LheO4}MS"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321a505.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ScvIJ;c#-xlJh-FF`s-#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="#dz[wD=8OGjJ|l[)bOxK" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="EBDJy-Aj9~j3BEp7QTEn"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="70qzpGBU6BYZXk;6a@u="> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0003218006.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="UgM+l.5:RuU:oIO%MH+%"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="A/;{bj4Gp)B]r?^{GoOq"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="|dRl=EL#doP2DU_oN*c["> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321800c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="uRN8OWa|rPpxK6k3@d%S"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="k=T(01BUK8:OQTq3j$9Q"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="I,b#a8WHvc6vZeM[[Z6!"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321973c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="@Dwu@^^7BPQtax{:^$iA"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="l^ru.9B5Q.(GO-V+Zr=a"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="TbvRm,g.9%dre1~Ru%0."> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="n/?P%KAPAyIR@Ae6?T+}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=")6~G=r)t8NAg$#$zao}x" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="35B!lHkmp!qhVZ9PVS=C" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="JYZ/13ReP-=/eepv@JET"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="WB%jpi;M;oI$8.XBtMY~"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0002e8bbbc.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="b,o#ti%nS3GdTgLhgk(Z"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="u`x=]GCaoD.A3t{ff}ha"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="YFvA=Ww9?!411|Z1Q(UH"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321a505.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="B/4)/7v]07(-z]7HAYga"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="xhQk@7QnSDB7X_-I#K-s" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="|]mw!:~oP9I+5ya#rF[s"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="0x,$!4Z2A]eJ.9v!61o*"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0003218006.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="juVk,n^|$z:7m$5^;*6W"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="@-:LSb6ZpYRl6PS8RQ/("> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="$K]7$B4#+6{6S:hu=p/h"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321800c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ykAVR{A?FXyZGJBPNB91"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="_5UKj`1,dp4h5:MTLwdo"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="0xPoX2-bDnwSZ~kj-9)*"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321973c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}wgr0x.we4tX1cHUurMZ"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="FS*t-).O3pU+r~chSe!V"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="/e/W~zO4syho)mQY1Pm~"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="comment" id="c4@$B)%iK,CTanzRjR8g"> <field name="COMMENT">Fake Fenster, damit nicht immer getriggert wird.</field> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="o[_8hzUsr0jtvYf.O!$B"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="=b$l3j90@f1hZ7%7_U%="> <field name="oid">0_userdata.0.WZ_EZ.Fenster_auf</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="H}T*Q7KVO2M-)wuv)Vq#"> <field name="COMMENT">Prüfen ob Fenster offen</field> <next> <block type="timeouts_cleartimeout" id="YuY:[M;+-iZ9}#;h=DBT"> <field name="NAME">timeout</field> <next> <block type="timeouts_cleartimeout" id="uH$GF*H[/|p%MN#J,hVf"> <field name="NAME">timeout1</field> <next> <block type="controls_if" id="5{PvH?,[r.|WQ:.?bO60"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="AFDB(ALF`WSku*9cP5j?"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="3Is3%:m#FP??/Lbo5l,s"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="1mELjOco6vqU*UYd}QL8"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="t^.!X2?{brnJ7+]JmJ@."> <value name="IF0"> <block type="logic_operation" id="aVvE{T.y0vwt`1yEO8B,"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="uOv]db/CIt{e,UTNneGc"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="EZ(91j$fCYDxxa)EJCkX"> <field name="ATTR">val</field> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> </block> </value> <value name="B"> <block type="math_number" id="vU/}24jERge1@wyV7^bQ"> <field name="NUM">6</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="ph~_(z2SAX*o[G]|:g!J"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="@Wo_.j`A}r?p0|z7=wwe"> <field name="ATTR">val</field> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> </block> </value> <value name="B"> <block type="math_number" id="k=V1v/E9:+[4DIlqg0Cv"> <field name="NUM">6</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="[r4m`-DWXDl-U{Tmxl)4"> <field name="COMMENT">(6) manual window mode (Temp OFF)</field> <next> <block type="timeouts_settimeout" id="-b~M%#=kqhn{WrvC3H[1"> <field name="NAME">timeout</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="KrosR^l0Q!_$=@~J%BY?" disabled="true"> <field name="VAR" id="em3J5e8*F^vvG+m;L+iw" variabletype="">Wohnzimmer_Soll_Temp</field> <value name="VALUE"> <shadow type="text" id="K!gk`#xT`%!X:Z~9m8jC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="JVRRKHfM/aJT8(u5It*J"> <field name="ATTR">val</field> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> </block> </value> <next> <block type="control" id="WNpsZ$8$I6[Tlk,oAKz!"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="qv[4S1LDHHr=M;XCH|7="> <field name="NUM">4.5</field> </block> </value> <next> <block type="variables_set" id="2E[HrGuupg_`jGbaGSnz" disabled="true"> <field name="VAR" id="{#bB.LZ3XaHu)/HlOUg(" variabletype="">Esszimmer_Soll_Temp</field> <value name="VALUE"> <shadow type="text" id="K!gk`#xT`%!X:Z~9m8jC"> <field name="TEXT"></field> </shadow> <block type="get_value" id="Z/arv?6{}bG7@H%)*`I7"> <field name="ATTR">val</field> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> </block> </value> <next> <block type="control" id="(_(f/nEZPLx+pUjE{6S+"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="A5%!5-CW-4zyE:jdipNn"> <field name="NUM">4.5</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="I^Tr?7!yLl.*G+-JLtHe"> <field name="NAME">timeout1</field> <field name="DELAY">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="debug" id="}L9JOx]?`%y@cJT_3s)t"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ErZA|)nz],aty)%$)To^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="cAQMO(YwO06g},jhO6Wr"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="debug" id="yuoHmd!:KfOH/eWOWhQ$"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ErZA|)nz],aty)%$)To^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="T){_q!E8{VBa?AAONK5{"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="comment" id="cM`iLz0$3yv8eQ][1{vQ"> <field name="COMMENT">zuvor eingestellte Temp setzten</field> <next> <block type="control" id="E|+DN@ed?p8Tzvsu1{?S"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="jD52nITzzG:OoU1Uj`*:"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="control" id="Z=4MGl7nnB]v|c@6vq@-"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="iC+^Nb$d)J}X?%Z)}JwU"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="comment" id="v}/Ec-^?[d`UFVtE(sk5" x="-2262" y="-1062"> <field name="COMMENT">Tür offen Erkennung, mit mehr Verzögerung</field> <next> <block type="on_ext" id="=;#kRY[[BRtTogqTHE$q"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="CVtiS9-`oJ2U6_$^21^)"> <field name="oid">zigbee.0.00158d0002e8bbbc.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="xM)26i]0r;;W4[5sSltv"> <field name="NAME">timeout2</field> <next> <block type="controls_if" id="V|F*ttWl5Xi{LI/c4C9~"> <value name="IF0"> <block type="logic_compare" id="-9:yyHB%Qxp::2:Xtngf"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9F^v)9fx!=lHd+;!%HfO"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0002e8bbbc.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="0N|u?nErUxvV5PP7D%Bp"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="LU6Ct|$LhR(j!8K_y6HO"> <field name="NAME">timeout2</field> <field name="DELAY">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="aSYB7NivBi)^~I44Q_OK"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r8V2jdw@_U,Q$`kW/CEG"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="kSzvq,+;oW3y@UL-/(+Q" x="-1563" y="-1062"> <field name="COMMENT">Werktags</field> <next> <block type="schedule" id=",nSP8Zc;PF,wP(JY;rRY"> <field name="SCHEDULE">30 5 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="_mDeC2kZ.i^Tj{}21~5:"> <field name="COMMENT">Mo-Fr 05:30 Heizkörper auf 20°</field> <next> <block type="variables_set" id="cU30f~(A_Tekfiw`QNZM"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="m)Z`sW_.DsCh|mbdzcR_"> <field name="NUM">20</field> </block> </value> <next> <block type="controls_if" id="C@VCFW=9S8VsNULQ}mFS"> <value name="IF0"> <block type="logic_compare" id="bNzNRwgeYW@;l|VJF?#4"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="_LlPm,LDmSy/hGu[};:i"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> </block> </value> <value name="B"> <block type="logic_boolean" id="0ZjE#2Idy6G`[/0@vkow"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Mhp3_oGn?K:./vD?b2%i"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="e.T9/Lk(fgU(EMnviDw_"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="control" id="Svi,~w+7$=B-P~9-ao=,"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=".A[1^;voo3^@0Sp|3_5a"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="P]FD[8d.6dMuri8T;GA|" disabled="true"> <field name="SCHEDULE">0 9 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="^@v~tI^E7F,x:m3([F}n"> <field name="COMMENT">Mo-Fr 09:00 Heizkörper auf 18°</field> <next> <block type="control" id="jcW*[hoK7vw#vm+_@++S"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="e|m;PCrmeC1aPJtNsG{Z"> <field name="NUM">18</field> </block> </value> <next> <block type="control" id="X34hX4u?5vrAGfFOTV$D"> <mutation delay_input="true"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="7px(2r+QLRkpuW)_CkH:"> <field name="NUM">18</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="KB91-DUp*DV=U{G2nvJm" disabled="true"> <field name="SCHEDULE">30 11 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="8E/~k%6[+sYD6C_nz#Y6"> <field name="COMMENT">Mo-Fr 11:30 Heizkörper auf 20°C</field> <next> <block type="control" id="]Z4?mht]VV`-OBgkl7qZ"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="dPu;Cxk!v%%$-!5cQr33"> <field name="NUM">20</field> </block> </value> <next> <block type="control" id="IVRN7~9#C}OQ4@CrGNte"> <mutation delay_input="true"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="3S{VVqi#7MuSyw-}B%P)"> <field name="NUM">20</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="7vlLoudvc}8H7t])?U4X"> <field name="SCHEDULE">0 22 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id=")2+bG2DX*rfvD-q)S,kg"> <field name="COMMENT">Mo-Fr 22:00 Nachtabsenkung auf 18°C</field> <next> <block type="variables_set" id="_1(,x|mT(vVLpc:1k8]b"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="]n09:)gX@wp0:+J7F8jE"> <field name="NUM">18</field> </block> </value> <next> <block type="controls_if" id="77:GV|nPyr?$2XoX~:n6"> <value name="IF0"> <block type="logic_compare" id="]Tbn*hgSj4w_lNzzgSOF"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="-J{}V9Mqv/-Z_BY7Sis#"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3zH6miGEDa,/=D!`+oK)"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="c8~lN0Md5!]`y*xhm{kv"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="6]l(GK/V~rd`F.Tnhpsj"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="control" id="sjq{}R6K^@1vY7[c6.],"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="NF[dn=[OiJhIuB0IyJ;~"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="comment" id="I@D2k[Rlb#E-st0J/o^6" x="-1562" y="-162"> <field name="COMMENT">Wochenende</field> <next> <block type="schedule" id="r7GeKE0]9w:Pv0.7y[mW"> <field name="SCHEDULE">30 6 * * 0,6</field> <statement name="STATEMENT"> <block type="comment" id="5ABX_-Gu|`]SI|^mhSCh"> <field name="COMMENT">Sa-So 06:45 Heizkörper auf 20°</field> <next> <block type="variables_set" id="ZEVIRt5mVrdE8;bU=`a$"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="(U`[A%3;$df=v:!U[?{}"> <field name="NUM">20</field> </block> </value> <next> <block type="controls_if" id="%nst-y,fW+2rpwykyw}f"> <value name="IF0"> <block type="logic_compare" id="9I@E(YUgBo^AL8Px]9f8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="}$@Z~f`Hejm5S$QK^ko;"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> </block> </value> <value name="B"> <block type="logic_boolean" id="rqRc8#lW`Tu9;|7VPmr7"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="y,zC{!liG-3.L~Y,oL!3"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="131[],}1`MN{ltthuNrK"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="control" id="_$r)s8.b.i01kH,ppAwi"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",hH{7qeKeq)oc|S;^:aA"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="hEdP^CDoFX)(~/pZR4{x"> <field name="SCHEDULE">0 0 * * 0,6</field> <statement name="STATEMENT"> <block type="comment" id="u:C[L~aEPO1ro/8wsm!D"> <field name="COMMENT">Sa-So 00:00 Heizkörper auf 18°</field> <next> <block type="variables_set" id="@5^7wv^^ZaOAeu**||so"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="FWPV`Z.99Q=n5/Pr}ouN"> <field name="NUM">18</field> </block> </value> <next> <block type="controls_if" id="9c{1i9QZMmicX6(Y=I`h"> <value name="IF0"> <block type="logic_compare" id="nDH4u+PKGZ?WLHS~!}*j"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="b1~L{XBDcp%r0(PZfvqE"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> </block> </value> <value name="B"> <block type="logic_boolean" id="n*eW|*mXwU);]Tze+?Mt"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="A]6;5Dkc=zOIK9xT.vK("> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="P,3g@Zaa`L797(D(Txij"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> <next> <block type="control" id="[6Uf{d^qbR=C0N(ZQ~i1"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="rTb{O!_dmp47^MS2%Keb"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">Heizprogramm</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>
Bitteschön, und Danke für deine Unterstützung.
-
Ich hoffe das ich keine Fehler drin hab ist doch recht groß das ganze.
-
Vielen Dank, ich muss da erst mal durchblicken, was was nun ist. Wolltest du nicht mit Datenpunkten arbeiten ? Ist das so eine saubere Lösung, die du mir geschickt hast, oder macht man das normalerweise nicht ?
-
Passt so.
Ich hatte in meinem Vorschlag übersehen das du ja schon einen Datenpunkt hast den du auf "wahr" setzt wenn die Fenster auf sind. Ansonsten kann man das so machen. Was du vorher hattest macht man nicht. Die Temperatur aus nur einem Blockly zu setzen ist der richtige Weg.
Ich habe nichts anders gemacht als das setzen der tatsächlichen Werte in einen Funktion auszulagern, die auch gleich die Fenster prüft.
Wenn du die auf verschiedene Blockys aufsplitten willst dann links in ein eigenes und rechts in ein eigenes:
Das hier könnte man noch optimieren:
Durch das Verlagern der Timeouts ersparst du dir eine Abfrage und es ist in sich schlüssiger. -
Glaub jetzt hast du mich komplett verwirrt. Jetzt bin ich komplett lost. Ich versuche mal zu erklären, ob ich das richtig verstehe.
Linke Teil ist klar, der kümmert sich um die Fenster offen oder zu. So auf der rechten Seite oben ist ja das Wochenprogramm.
Dieses schreibt einmal die gewünschte Temp in die Variable "Heizprogramm" und startet einmal einen Trigger ?
Dieser reagiert dann eben, wenn der Cron die Temp setzt, und prüft dann wenn Fenster auf, mache auf 4,5 und wenn Fenster zu setzte Temp aus der Variable "Heizprogramm" ?
Da die Variable unabhängig vom Fenster / Türstatus in die Variable geschrieben wird, holt er sich das dann eben wieder da raus, wenn die Tür zu geht, falls die Tür schon zu ist, schickt die Funktion die Temp an den HT.
EDIT::
Diesen Block gab es so schon immer ?
EDIT 2 ::
Das hier muss aber noch vorhanden sein, sonst fehlt mir ja der Block, setzte WZ_EZ_Heizprogramm. Aber wenn ich das so wie im zweiten Screen optimiere, ist er ja weg.
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Dieses schreibt einmal die gewünschte Temp in die Variable "Heizprogramm" und startet einmal einen Trigger ?
Das ist kein Trigger, das ist eine Funktion. Anstatt die gleichen Bausteine 8 mal zusammenzustecken, nehme ich einen Funktionsbaustein und rufe diesen auf.
Dieser reagiert dann eben, wenn der Cron die Temp setzt, und prüft dann wenn Fenster auf, mache auf 4,5 und wenn Fenster zu setzte Temp aus der Variable "Heizprogramm" ?
richtig.
Da die Variable unabhängig vom Fenster / Türstatus in die Variable geschrieben wird, holt er sich das dann eben wieder da raus, wenn die Tür zu geht, falls die Tür schon zu ist, schickt die Funktion die Temp an den HT.
richtig.
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
EDIT::
Diesen Block gab es so schon immer ?
Verstehe die Frage nicht.
EDIT 2 ::
Das hier muss aber noch vorhanden sein, sonst fehlt mir ja der Block, setzte WZ_EZ_Heizprogramm. Aber wenn ich das so wie im zweiten Screen optimiere, ist er ja weg.
War der vorher da?
-
@ticaki Hier doch im ersten Screen.
Wenn ich den lösche, habe ich auch oben keine Funktionsbausteine, die ich bei den CronJobs mit rein packe.
@ticaki said in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Verstehe die Frage nicht.
Dieser Block
Setze Temperatur mit:
Soll-Temperatur
Fenster aufGabs den schon immer, oder hast du den irgendwie erstellt ?
EDIT ::
Ich hab ja jetzt hier, weder wahr noch falsch..
Ist das dann einfach mache immer wahr und sonst dann falsch ?
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
@ticaki Hier doch im ersten Screen.
Wenn ich den lösche, habe ich auch oben keine Funktionsbausteine, die ich bei den CronJobs mit rein packe.
Ah verstanden, nein den sollst du nicht löschen nur die Bausteine von Falls Object nach Setze Temperatur verschieben.
@ticaki said in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Verstehe die Frage nicht.
Dieser Block
Setze Temperatur mit:
Soll-Temperatur
Fenster aufGabs den schon immer, oder hast du den irgendwie erstellt ?
Unter Funktion im Menu gibt es einen Baustein etwas tun wähle den aus, klicke auf das Rädchen und schiebe Variable(übergabe parameter) zu etwas tun. Nach dem du das getan hast sollte im Menu Funktion ein Baustein sein der so aussieht wie der Setzte Temperatur nur mit deinen Angaben.
-
Mist, das mit dem Editieren klappt nicht immer. Aber will nicht jedes mal nen neuen Post schreiben...
Ich hab es jetzt so...
Mir Platz gleich der Kopf So richtig ?
Ich hab ja jetzt hier, weder wahr noch falsch, ist das dann einfach "mache" immer "wahr" und "sonst" dann "falsch" ?
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Mir Platz gleich der Kopf So richtig ?
Jo sieht gut aus, stimmen die 4.5° die ich eingetragen habe?
Ich hab ja jetzt hier, weder wahr noch falsch, ist das dann einfach "mache" immer "wahr" und "sonst" dann "falsch" ?
Falls prüft auf wahr. Es ist unnötig da ein = wahr hin zu setzen.
-
Ja die 4,5° sind richtig. Dann steht der HT auf OFF.
So einen Teil hab ich jetzt verstanden, einen noch nicht so ganz und zwar in diesem Bereich..
Ich versuche zu verstehen.
Block Nr. 1 erstellt Block Nr.2 , Block Nr 3. erstellt Block Nr.4 . Hierbei legt Block 4 automatisch zwei Variablen an ? Soll-Temp und Fenster auf ?
So Nun triggert der CronJob und Setzt 20 Grad in die Variable und Triggert gleichzeitig Block 2, dieser Triggert dann den Funktionsblock 1 ? Dieser wiederum schreibt dann in die beiden angelegten Variablen, die angefügten Daten, Block Nr. 5 schreibt 20° in die Variable "Soll-Temperatur " und Block Nr. 6 "war / falsch" vom Fenster Datenpunkt in die Variable "Fenster auf " ?
So der untere eingekreiste Block "Falls Objekt" macht was ? Er reagiert quasi auf Fenster auf / zu und Triggert damit den mittleren Funktionsblock, der dann eben meinen HT auf 4,5° stellt und beim schließen dann wieder auf die aktuelle Temp aus dem Wochenprogramm ?
Der mittlere Block wird auch getriggert, wenn die Fenster zu sind, aber der CronJob am nächsten Zeitschaltpunkt ist, da Fenst auf auf falsch, springt der Funktionsblock gleich auf "sonst" und setzt so die nächste Temp aus dem Wochenprogramm ?
Warum nutzt du jetzt unten im eingekreisten Block den "Wert" Block, aber oben den "Wert vom Objekt" Block ?
Das verwirrt mich auch noch, in den Block
"Setze Temperatur mit :
Soll-Temperatur
Fenster aufWird doch durch die angehängten Blöcke, der Wert in die Variable Soll und Fenster auf" gesetzt ? Das macht er dann im oberen Block und im unteren Block ?
Zum Verständnis, der "Setze Temperatur mit :" Block ist quasi komprimiert, der ersetzt eigentlich nur folgendes ?
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Ich versuche zu verstehen.
Block Nr. 1 erstellt Block Nr.2 , Block Nr 3. erstellt Block Nr.4 . Hierbei legt Block 4 automatisch zwei Variablen an ? Soll-Temp und Fenster auf ?
Ja
So Nun triggert der CronJob und Setzt 20 Grad in die Variable und Triggert gleichzeitig Block 2, dieser Triggert dann den Funktionsblock 1 ? Dieser wiederum schreibt dann in die beiden angelegten Variablen, die angefügten Daten, Block Nr. 5 schreibt 20° in die Variable "Soll-Temperatur " und Block Nr. 6 "war / falsch" vom Fenster Datenpunkt in die Variable "Fenster auf " ?
Ja
So der untere eingekreiste Block "Falls Objekt" macht was ? Er reagiert quasi auf Fenster auf / zu und Triggert damit den mittleren Funktionsblock, der dann eben meinen HT auf 4,5° stellt und beim schließen dann wieder auf die aktuelle Temp aus dem Wochenprogramm ?
Ja
Der mittlere Block wird auch getriggert, wenn die Fenster zu sind, aber der CronJob am nächsten Zeitschaltpunkt ist, da Fenst auf auf falsch, springt der Funktionsblock gleich auf "sonst" und setzt so die nächste Temp aus dem Wochenprogramm ?
Ja
Warum nutzt du jetzt unten im eingekreisten Block den "Wert" Block, aber oben den "Wert vom Objekt" Block ?
Weil im Block Falls Objekt gibt es eine lokale Variable die den Wert von Falls Objekt enthält. Wenn ich die Funktion jedoch von woanders aufrufe muß ich mir diesen Wert erst besorgen deshalb "Wert von Objekt"
Das verwirrt mich auch noch, in den Block
"Setze Temperatur mit :
Soll-Temperatur
Fenster aufWird doch durch die angehängten Blöcke, der Wert in die Variable Soll und Fenster auf" gesetzt ? Das macht er dann im oberen Block und im unteren Block ?
EDIT: Vielleicht weiß ich jetzt welche Blöcke du meinst.
Der obere Block ist eine Zusammenfassung der Angaben die ich in einem Zeitplan machen muß. Da wir viele Zeitpläne haben, fasse ich diese halt zusammen um nur einen 1 zeiligen Block pro Zeitplan zu haben, anstatt einem 3 zeiligen.Der untere Block kennt den Wert von Fenster auf schon und deshalb rufe ich dort die Funktion "Setze Temperatur" auf, da ich dort diesen Wert direkt angeben kann.
Zum Verständnis, der "Setze Temperatur mit :" Block ist quasi komprimiert, der ersetzt eigentlich nur folgendes ?
Der Block macht eigentlich alles, oder ich verstehe dich falsch. Setzte Temperatur von WZ ist eine Hilfsfunktion um Platz zu sparen und der Setzte Temperatur block ersetzt das für jeden Zeitplan:
Edit: Präziser der Block oben muß für jeden Zeitplan erstellt werden ODER man macht das so:
EDIT: da ist leider ein Fehler im rechten oberen Block. Da gehört natürlich ein Baustein an die leere Stelle.
Das ist zwar bei einem Zeitplan mehr Arbeit, aber schon bei 2-3 dürfte es weniger Arbeit und weniger Platz sein. Nun und man hat viel weniger Chancen Fehler einzubauen. -
Mit den verschiedenen "Wert" Blöcken hab ich immer noch nicht ganz gerafft, wieso mal so und mal so.
Aber eins hätte ich noch, könntest du mir noch helfen wie ich das ganze nun mit Sommer/Winter verknüpfe, sprich wenn mein Aussensensor, 22° misst, dann wird das Heizprogramm deaktiviert oder eben Off an den HT gesendet und es passiert auch nichts mehr wenn man Tür auf und Zu macht. Sollte der Wert darunter fallen, soll das Heizprogramm wieder gelten und den aktuellen Wert an die HT's schicken.
Geht das so einfach ?
-
@D3ltoroxp sagte in Fenster offen/Terrasse mit Verzögerung/soll Temp speichern:
Mit den verschiedenen "Wert" Blöcken hab ich immer noch nicht ganz gerafft, wieso mal so und mal so.
Das verstehen wäre einfacher wenn du das darunter liegenden Javascript kennen würdest.
Sehr vereinfacht und ein Vergleich der natürlich wie immer hinkt:
Falls Objekt ist eine Pushnachricht in der steht ob die Fenster auf oder zu sind. Deshalb brauche ich nicht nachzufragen sondern verwende den Inhalt.
Der Zeitplan ist eine Pushnachricht in dem steht welche Temperatur wir wollen. Deshalb muß ich die Fenster anpingen damit die mir eine Nachricht schicken. Ohne die weiß ich nicht ob sie auf oder zu sind.Geht das so einfach ?
Jo, ich bau es heute Abend in das Blockly ein, das ich noch von dir habe, oder du gibst mir gerade das aktuelle.
-
@ticaki Wow das ist sehr nett. Ich gebe dir eben das aktuelle.
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="YSWMDSTJifwu@:}091mf">Soll-Temperatur</variable> <variable type="" id="RdLULWc.R|du)p*cN|li">Fenster auf</variable> <variable type="" id="CuP,B)0Ri@%j_(A8Y=Kn">WZ_EZ_Heizprogramm</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="undefined" id="timeout2">timeout2</variable> </variables> <block type="comment" id="DY`CYb|VzVDvuh.${ggg" x="-3112" y="-1112"> <field name="COMMENT">Energie sparen, Fenster offen erkennung</field> <next> <block type="on_ext" id="k9Ib~iWiKnl)!TP7PB=W"> <mutation items="5"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O-zGs8/$.EWXATsI=n*d"> <field name="oid">zigbee.0.00158d0002e8bbbc.opened</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="pZgAfGUMy?,x0TUQ,Hnc"> <field name="oid">zigbee.0.00158d000321a505.opened</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="k#6V7!#{n|zr/zxi9*#^"> <field name="oid">zigbee.0.00158d0003218006.opened</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="SK*^n:w=AoUwFfmE.7.7"> <field name="oid">zigbee.0.00158d000321800c.opened</field> </shadow> </value> <value name="OID4"> <shadow type="field_oid" id="YS]%{s|[@`BL^//`39yb"> <field name="oid">zigbee.0.00158d000321973c.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="[|JF{b//WvEce4Gkcf;N"> <field name="COMMENT">Prüfen ob Fenster offen, schreiben in Fake Fenster</field> <next> <block type="controls_if" id="*s)|-Un}^U43keU/wp`P"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="U+{woiYwFwyQ*g!;(A8*" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="/Sj7uUb-8J}kBLVBi{o+" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="K,s9Aord;dVu)iWZ0Tpx"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="RJ1n[2Ve#C%#LheO4}MS"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321a505.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ScvIJ;c#-xlJh-FF`s-#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="#dz[wD=8OGjJ|l[)bOxK" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="EBDJy-Aj9~j3BEp7QTEn"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="70qzpGBU6BYZXk;6a@u="> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0003218006.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="UgM+l.5:RuU:oIO%MH+%"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="A/;{bj4Gp)B]r?^{GoOq"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="|dRl=EL#doP2DU_oN*c["> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321800c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="uRN8OWa|rPpxK6k3@d%S"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="k=T(01BUK8:OQTq3j$9Q"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="I,b#a8WHvc6vZeM[[Z6!"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321973c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="@Dwu@^^7BPQtax{:^$iA"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="l^ru.9B5Q.(GO-V+Zr=a"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="TbvRm,g.9%dre1~Ru%0."> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="n/?P%KAPAyIR@Ae6?T+}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=")6~G=r)t8NAg$#$zao}x" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="35B!lHkmp!qhVZ9PVS=C" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="JYZ/13ReP-=/eepv@JET"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="WB%jpi;M;oI$8.XBtMY~"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0002e8bbbc.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="b,o#ti%nS3GdTgLhgk(Z"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="u`x=]GCaoD.A3t{ff}ha"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="YFvA=Ww9?!411|Z1Q(UH"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321a505.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="B/4)/7v]07(-z]7HAYga"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="xhQk@7QnSDB7X_-I#K-s" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="|]mw!:~oP9I+5ya#rF[s"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="0x,$!4Z2A]eJ.9v!61o*"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0003218006.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="juVk,n^|$z:7m$5^;*6W"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="@-:LSb6ZpYRl6PS8RQ/("> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="$K]7$B4#+6{6S:hu=p/h"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321800c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ykAVR{A?FXyZGJBPNB91"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="_5UKj`1,dp4h5:MTLwdo"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="0xPoX2-bDnwSZ~kj-9)*"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d000321973c.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}wgr0x.we4tX1cHUurMZ"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="FS*t-).O3pU+r~chSe!V"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="/e/W~zO4syho)mQY1Pm~"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="comment" id="c4@$B)%iK,CTanzRjR8g"> <field name="COMMENT">Fake Fenster, damit nicht immer getriggert wird.</field> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="v}/Ec-^?[d`UFVtE(sk5"> <field name="COMMENT">Tür offen Erkennung, mit mehr Verzögerung</field> <next> <block type="on_ext" id="=;#kRY[[BRtTogqTHE$q"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="CVtiS9-`oJ2U6_$^21^)"> <field name="oid">zigbee.0.00158d0002e8bbbc.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="xM)26i]0r;;W4[5sSltv"> <field name="NAME">timeout2</field> <next> <block type="controls_if" id="V|F*ttWl5Xi{LI/c4C9~"> <value name="IF0"> <block type="logic_compare" id="-9:yyHB%Qxp::2:Xtngf"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9F^v)9fx!=lHd+;!%HfO"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d0002e8bbbc.opened</field> </block> </value> <value name="B"> <block type="logic_boolean" id="0N|u?nErUxvV5PP7D%Bp"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="LU6Ct|$LhR(j!8K_y6HO"> <field name="NAME">timeout2</field> <field name="DELAY">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="aSYB7NivBi)^~I44Q_OK"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r8V2jdw@_U,Q$`kW/CEG"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="comment" id="kSzvq,+;oW3y@UL-/(+Q" x="-2188" y="-1113"> <field name="COMMENT">Werktags</field> <next> <block type="schedule" id=",nSP8Zc;PF,wP(JY;rRY"> <field name="SCHEDULE">30 5 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="_mDeC2kZ.i^Tj{}21~5:"> <field name="COMMENT">Mo-Fr 05:30 Heizkörper auf 20°</field> <next> <block type="variables_set" id="cU30f~(A_Tekfiw`QNZM"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="m)Z`sW_.DsCh|mbdzcR_"> <field name="NUM">20</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Ag?|p#JR51NEJkdOFI7f"> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="P]FD[8d.6dMuri8T;GA|" disabled="true"> <field name="SCHEDULE">0 9 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="^@v~tI^E7F,x:m3([F}n"> <field name="COMMENT">Mo-Fr 09:00 Heizkörper auf 18°</field> <next> <block type="variables_set" id="P_eF3EZ;S-c%+3e4BWfE"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="sy]^cJAwp}s{6F.}h2Lq"> <field name="NUM">18</field> </block> </value> <next> <block type="procedures_callnoreturn" id="llRwWFUhdHVLmtoy6g3W"> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="KB91-DUp*DV=U{G2nvJm" disabled="true"> <field name="SCHEDULE">30 11 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id="8E/~k%6[+sYD6C_nz#Y6"> <field name="COMMENT">Mo-Fr 11:30 Heizkörper auf 20°C</field> <next> <block type="variables_set" id="PS|u9WmNlI,X*g730G`s"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="4IT_]d:D:3xf8A`WgEeB"> <field name="NUM">20</field> </block> </value> <next> <block type="procedures_callnoreturn" id="|Bc`7#{S9]DDe,a@0MD."> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="7vlLoudvc}8H7t])?U4X"> <field name="SCHEDULE">0 22 * * 1-5</field> <statement name="STATEMENT"> <block type="comment" id=")2+bG2DX*rfvD-q)S,kg"> <field name="COMMENT">Mo-Fr 22:00 Nachtabsenkung auf 18°C</field> <next> <block type="variables_set" id="_1(,x|mT(vVLpc:1k8]b"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="]n09:)gX@wp0:+J7F8jE"> <field name="NUM">18</field> </block> </value> <next> <block type="procedures_callnoreturn" id="u,VV*|{*S[cSYP!+@?Pu"> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="I@D2k[Rlb#E-st0J/o^6"> <field name="COMMENT">Wochenende</field> <next> <block type="schedule" id="r7GeKE0]9w:Pv0.7y[mW"> <field name="SCHEDULE">30 6 * * 0,6</field> <statement name="STATEMENT"> <block type="comment" id="5ABX_-Gu|`]SI|^mhSCh"> <field name="COMMENT">Sa-So 06:45 Heizkörper auf 20°</field> <next> <block type="variables_set" id="ZEVIRt5mVrdE8;bU=`a$"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="(U`[A%3;$df=v:!U[?{}"> <field name="NUM">20</field> </block> </value> <next> <block type="procedures_callnoreturn" id="`|ZK$JG}JD$dau9*8(nD"> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="schedule" id="hEdP^CDoFX)(~/pZR4{x"> <field name="SCHEDULE">0 0 * * 0,6</field> <statement name="STATEMENT"> <block type="comment" id="u:C[L~aEPO1ro/8wsm!D"> <field name="COMMENT">Sa-So 00:00 Heizkörper auf 18°</field> <next> <block type="variables_set" id="@5^7wv^^ZaOAeu**||so"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> <value name="VALUE"> <block type="math_number" id="FWPV`Z.99Q=n5/Pr}ouN"> <field name="NUM">18</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Xck;?r,.t=~vyq^[3SJR"> <mutation name="setzte Temperatur von WZ_EZ_Heizprogramm"></mutation> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="S!Hz2;tVehu{K8rpDM6N" x="-1712" y="-1112"> <field name="NAME">setzte Temperatur von WZ_EZ_Heizprogramm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callnoreturn" id="I1L`Q3nJde#-jZbgy!5o"> <mutation name="Setze Temperatur"> <arg name="Soll-Temperatur"></arg> <arg name="Fenster auf"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="(KUvXmGC}KfF:.n9Gs|D"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> <value name="ARG1"> <block type="get_value" id="EmNZJQ}6mmLFVw4Ec*:A"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.WZ_EZ.Fenster_auf</field> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="+ngVIWZbNB!Iv7TkunE`" x="-1712" y="-937"> <mutation> <arg name="Soll-Temperatur" varid="YSWMDSTJifwu@:}091mf"></arg> <arg name="Fenster auf" varid="RdLULWc.R|du)p*cN|li"></arg> </mutation> <field name="NAME">Setze Temperatur</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="timeouts_cleartimeout" id="YuY:[M;+-iZ9}#;h=DBT"> <field name="NAME">timeout</field> <next> <block type="timeouts_cleartimeout" id="uH$GF*H[/|p%MN#J,hVf"> <field name="NAME">timeout1</field> <next> <block type="controls_if" id="~mrKE%`-iI3vP*/esx=M"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="A-@q1BFS`o,|/gF6+ti]"> <field name="VAR" id="RdLULWc.R|du)p*cN|li" variabletype="">Fenster auf</field> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="-b~M%#=kqhn{WrvC3H[1"> <field name="NAME">timeout</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="A]6;5Dkc=zOIK9xT.vK("> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="]O1ux(WNj-,}xGxYWj7G"> <field name="NUM">4.5</field> </block> </value> <next> <block type="control" id="[6Uf{d^qbR=C0N(ZQ~i1"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="z*JJyjb%LKhNB]EHq.B4"> <field name="NUM">4.5</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="I^Tr?7!yLl.*G+-JLtHe"> <field name="NAME">timeout1</field> <field name="DELAY">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="debug" id="}L9JOx]?`%y@cJT_3s)t"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ErZA|)nz],aty)%$)To^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="cAQMO(YwO06g},jhO6Wr"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> <next> <block type="debug" id="yuoHmd!:KfOH/eWOWhQ$"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="ErZA|)nz],aty)%$)To^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="T){_q!E8{VBa?AAONK5{"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> <next> <block type="control" id="@]n2f8I:.G2Oyl%~V,:?"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ0918271.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="_pusq2u2GY)u3:.+~3Y$"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> <next> <block type="control" id="$:Cysm_uF(7Df;(k-1_d"> <mutation delay_input="false"></mutation> <field name="OID">maxcul.0.KEQ1082883.desiredTemperature</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="KiS7J!Z0$t;B#E!hzL3e"> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="o[_8hzUsr0jtvYf.O!$B" x="-1712" y="-412"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="=b$l3j90@f1hZ7%7_U%="> <field name="oid">0_userdata.0.WZ_EZ.Fenster_auf</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="H}T*Q7KVO2M-)wuv)Vq#"> <field name="COMMENT">Prüfen ob Fenster offen</field> <next> <block type="procedures_callnoreturn" id="]tM=BKtw~;3nUM_gAk+z"> <mutation name="Setze Temperatur"> <arg name="Soll-Temperatur"></arg> <arg name="Fenster auf"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="BiDLRo1TJrrC$o8n)W%("> <field name="VAR" id="CuP,B)0Ri@%j_(A8Y=Kn" variabletype="">WZ_EZ_Heizprogramm</field> </block> </value> <value name="ARG1"> <block type="on_source" id="RosGX:{M)T6!LlN^(YHm"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
Das wäre der Sensorwert ::
zigbee.0.00158d00045c3576.temperature
Sorry fürs erneute nachhacken, zwecks den Wert Blöcken...
Also das heißt, wenn ich das jetzt richtig verstanden habe, da wir am Block "Falls Objekt" dahinter das Geräte angehängt haben, weiß der Block den Wert vom Objekt schon, somit muss ich unten nicht erneut, Wert vom Objekt anhängen sondern kann direkt den kleinen "Wert" Block anstecken, da dieser den Wert oben aus dem angehängten Objekt ausliest.
Bei diesem Funktionsblock muss ich mir den Wert aber direkt über den Block "Wert vom Objekt" holen, da anders als beim Falls Objekt ja noch kein Objekt abgefragt wird. Daher hier so und bei Falls Objekt eben nur mit dem Wert, sonst wäre es doppelt gemoppelt unten für die Variable noch mal den Wert vom Objekt Block dran zu hängen!
Und das ich bei beiden Screen's den Wert vom Objekt in die "Fenster auf" Variable schreibe hat damit was zu tun, da sie ja getrennt voneinander laufen, das eine Trigger eben auf die Fensterkontakte, das andere auf das Heizprogramm. Ich hoffe jetzt hab ich es verstanden, dann wäre ich froh... Nix schlimmeres als eine Funktion zu haben die zwar toll funktioniert, aber man das gar nicht nachvollziehen kann.
-
Ja, das ist eine korrekte Beschreibung von Wert.
Und das ich bei beiden Screen's den Wert vom Objekt in die "Fenster auf" Variable schreibe hat damit was zu tun
Das ist falsch beschrieben. Du schreibst nichts in eine Variable du übergibst einer Funktion einen Wert der innerhalb dieser Funktion den Namen Fenster auf hat.
EDIT: Ups vergessen: du must noch das Objekt bei dem Falls Objekt eintragen, dass kann ich nicht.
-
Ich habe das hier nur mal so überflogen. Aber sind alle Geräte von Homematic bzw. Homematic IP? Dann würde sich doch anbieten eine Heizungsgruppe zu erstellen und bei dem FK der Balkontür extra eine Verzögerung. So habe ich das bei mir gelöst.
Man kann natürlich versuchen alles mit JS bzw. Blockly zu erschlagen, aber wenn das zugrunde liegende System die Möglichkeit schon mit bringt warum dann so kompliziert? -
@UweRLP Ich habe hier nichts von Homematic, das sind Max HT's und Zigbee Fensterkontakte.
So läuft das wunderbar, würde hier nichts mehr ändern.
@ticaki Meinst du man könnte sich mal auf TeamSpeak, Discord oder so treffen, hätte noch mal ein paar Verständnisfragen zu dem riesen Script. Glaube ich besser als per Forum.