NEWS
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.
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.
-
@D3ltoroxp
Hab discord gerade installiert, kannt mir ja schreiben, was ich tun muß -
Kannst hier mal drauf klicken, das ist nen Einladungs Link zu nem Server.
-
@ticaki Hm leider hat sich die Tage nichts verändert. Nach dem Türe schließen, schaltet die Heizung wieder auf 20° obwohl es eigentlich auf OFF bleiben sollte.
-
@D3ltoroxp
Kannst du ein Bild posten damit ich sehe wie es jetzt aussieht, habs bei mir gelöscht -
@ticaki Bitteschön
-
@D3ltoroxp
Ich sehe keinen Fehler. Kannst du mal 2 Debug output Bausteine rechts in das Falls von Falls Objekt einbauen mit sinnvoller Ausgabe? (Heizung an, Heizung aus)Und noch einen in den Falls Baustein von setzte Temperatur berücksichtige Heizperiode. (Heizung an setzte Temperatur)
danach könntest du das Objekt vom rechten FAlls Objekt auf einen Testdatenpunkt umstellen und da händisch ein paar Temperaturen eingeben und es testen.
-
@ticaki Ich bin dran, melde mich wieder. Grad bissel was um die Ohren..
-
Hm es scheint vllt doch zu funktionieren, ich muss weiter beobachten. Jetzt steht off alle Fenster zu...
-
So, so richtig Rund lief es bei mir nicht. Jetzt habe ich einen anderen Ansatz getestet. Ich wollte noch mal was zu der Logik fragen.
So Fenster auf zu ist klar, läuft über Trigger, das klappt. So sobald Fenster auf = war, wird ja der untere Block (3) getriggert richtig ? Dieser startet die Funktion "nach Setze Temperatur mit : Soll-Temperatur" der reagiert dann je nachdem, ob Fenster auf oder zu ist, mit der entsprechenden Temperatur Steuerung.
So alternativ, wenn der nächste Schaltpunkt vom Heizprogramm dran ist, wird der obere Block getriggert und danach gleich wieder der mittlere richtig also erst 1 dann 2, wenn Fenster zu dann auf Solltemp. Das habe ich so richtig verstanden ?
Ich weiß, das sieht nun etwas anders aus, wie zuvor, ich regel das mit der Heizperiode jetzt anders über ein Blockly das mit die Durchschnittstemp ausrechnet, dann noch mit aussen Temp Sensor und Weatherunderground arbeitet, wenn das alles passt ist die Heizperiode aus.
Dann schalten auch die Kontakte nicht mehr...
Aber zum Problem, das abschalten also auf 4.5 setzten klappt, das einschalten nicht mehr. Im log steht glaube auch was dazu.
javascript.0 2020-05-03 14:03:11.012 warn (682) at Timer.processTimers (timers.js:223:10) javascript.0 2020-05-03 14:03:11.012 warn (682) at listOnTimeout (timers.js:263:5) javascript.0 2020-05-03 14:03:11.012 warn (682) at tryOnTimeout (timers.js:300:5) javascript.0 2020-05-03 14:03:11.012 warn (682) at ontimeout (timers.js:438:13) javascript.0 2020-05-03 14:03:11.011 warn (682) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2015:34) javascript.0 2020-05-03 14:03:11.011 warn (682) at Object.<anonymous> (script.js.Heizung.WZ_EZ_Test_neu:26:7) javascript.0 2020-05-03 14:03:11.011 warn (682) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1354:20) javascript.0 2020-05-03 14:03:11.010 warn (682) You are assigning a undefined to the state "maxcul.0.KEQ1082883.desiredTemperature" which expects a number. Please fix your code to use a number or change the state type to undefined. This warn javascript.0 2020-05-03 14:03:11.010 warn (682) at Timer.processTimers (timers.js:223:10) javascript.0 2020-05-03 14:03:11.010 warn (682) at listOnTimeout (timers.js:263:5) javascript.0 2020-05-03 14:03:11.010 warn (682) at tryOnTimeout (timers.js:300:5) javascript.0 2020-05-03 14:03:11.009 warn (682) at ontimeout (timers.js:438:13) javascript.0 2020-05-03 14:03:11.009 warn (682) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2015:34) javascript.0 2020-05-03 14:03:11.009 warn (682) at Object.<anonymous> (script.js.Heizung.WZ_EZ_Test_neu:25:7) javascript.0 2020-05-03 14:03:11.009 warn (682) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1354:20) javascript.0 2020-05-03 14:03:11.008 warn (682) You are assigning a undefined to the state "maxcul.0.KEQ0918271.desiredTemperature" which expects a number. Please fix your code to use a number or change the state type to undefined. This warn
Irgendwas scheint mit der Soll Temp nicht zu stimmen oder mit dem Wert den er da eintragen will. Verstehe ich das so richtig ?
You are assigning a undefined to the state "maxcul.0.KEQ0918271.desiredTemperature" which expects a number. Please fix your code to use a number or change the state type to undefined. This warn
EDIT::
So sieht es jetzt fertig aus.
So sollte dann im Sommer, also wenn die Heizperiode aus ist, gar nichts mehr passieren, weder das Heizprogramm stellt was am HT ein noch die Fensterkontakte, richtig ?
-
Ok habs, jedes mal wenn ich auf Speichern gehe, stoppt und startet er ja das Script neu, dabei wird das was in der Variable steht gelöscht. So jetzt kommt der Fehler natürlich so lange bis das Zeitprogramm einen neuen Wert dort reingeschrieben hat. Ich habe mir jetzt nen Datenpunkt erstellt in den der Heizprogramm Wert geschrieben wird, daraus lese ich den dann wieder aus, scheint nun zu klappen...
-
Hat sich damit erledigt? Wollte mir es gerade ansehen.