NEWS
Heizung smart machen
-
Hallo, ich brauch mal bitte etwas Unterstützung mit Blockly. Vermutlich seh ich den Wald vor lauter Blocks nicht mehr. Schaut mal bitte aufm Bild mein Konstrukt an. Leider läuft es nicht wie es soll. Debug zeigt immer Tagbetrieb...
Hier noch der Code dazu. Die Idee was ich machen will erschließt sich ,denk ich soweit.
Kann mir da bitte jemand helfen?
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="(K/qqY[+(osL*rii+b%]">solltemperatur</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="schedule" id="z3|3Z`:}x#1u.*8NZ289" x="-1612" y="-1388"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="GU09`m^EF$kz9vx(]Q#T"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="UKyfa`eBaQ#e`Np0Z6I,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="BDi6%Uz4;p)Kn~MC-$g("> <field name="ATTR">val</field> <field name="OID">homee.0.Homee-0.HomeeMode-1</field> </block> </value> <value name="B"> <block type="math_number" id="R;6`yu_v;_#;,f!Ws^qx"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id=":[!rc6As]6q3c##Roc;H"> <field name="COMMENT">Tagbetrieb anwesend</field> <next> <block type="controls_if" id="5J/RyclJAZE4F?H*fJ^-"> <value name="IF0"> <block type="time_compare_ex" id="4bxeAc}%Dqbx6kbGK!#Z"> <mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="]^K?]C](/OwqYvD8U{s?"> <field name="TEXT">07:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="[ZmrSoM.$BY?KJ^!ua-1"> <field name="TEXT">20:00</field> </shadow> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="b%@w5hg~?Bex;c|D.L={"> <field name="NAME">Intervall</field> <field name="INTERVAL">60</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="D@]v(aCZ4W+nA8RCUmq`"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="?_0(PM@|MPWl$.Rf])uW" inline="false"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="BO!4(O-=ztNObsg*OSw$"> <field name="ATTR">val</field> <field name="OID">viessmannapi.0.heating.sensors.temperature.outside.value</field> </block> </value> <value name="B"> <block type="math_number" id="j`UtFP7%$)c0^Gf)`UyU"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="KH_2v1G,-Oy+(yMMA~be"> <field name="VAR" id="(K/qqY[+(osL*rii+b%]" variabletype="">solltemperatur</field> <value name="VALUE"> <block type="math_number" id="dm-3L5QNgevQj9]m~n%E"> <field name="NUM">22</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]XkZzuuJ[)N6~a(Qdg%L" inline="false"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Q7Wki82=VR!DO!@]yH4W"> <field name="ATTR">val</field> <field name="OID">viessmannapi.0.heating.sensors.temperature.outside.value</field> </block> </value> <value name="B"> <block type="math_number" id="O?ryyr_pzFgo5EjbQpYv"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="f}K?`/9B~=6O-kJgy0p7"> <field name="VAR" id="(K/qqY[+(osL*rii+b%]" variabletype="">solltemperatur</field> <value name="VALUE"> <block type="math_number" id="KUesSOPW]5Uan1I_#N^]"> <field name="NUM">20</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="sendto_custom" id="eDM)BJUm;DE56-X7Sz^*"> <mutation items="feature,action,payload" with_statement="false"></mutation> <field name="INSTANCE">viessmannapi.0</field> <field name="COMMAND">action</field> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="ARG0"> <shadow type="text" id="7sNhWS6ToU[L}`(M?dVy"> <field name="TEXT">heating.circuits.0.operating.programs.normal</field> </shadow> </value> <value name="ARG1"> <shadow type="text" id="uvLk{|o@Lop:+cfTXPr)"> <field name="TEXT">setTemperature</field> </shadow> </value> <value name="ARG2"> <shadow type="text" id="0Y1s4WBl12|?9J{Cu#Ut"> <field name="TEXT">{targetTemperature: solltemperatur}</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="debug" id="Vd^4SKxTN=Y)K4,X@GVB"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="`SKtuY2h*cB7.dnqQVtI"> <field name="TEXT">Tagbetrieb läuft</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="time_compare_ex" id="089E|v@^0$JKv+DvZ0{]"> <mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="$bLFLH@PvSs)#t%t^r3M"> <field name="TEXT">07:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="WBv{-Sh/S;Esf)Yyx3]3"> <field name="TEXT">20:00</field> </shadow> </value> </block> </value> <statement name="DO1"> <block type="comment" id="X#0/pyHF[@+4Q8cJ.g|6"> <field name="COMMENT">Nachtabsenkung</field> <next> <block type="variables_set" id="0F*/.8dDjn(Y%+W`UK$c"> <field name="VAR" id="(K/qqY[+(osL*rii+b%]" variabletype="">solltemperatur</field> <value name="VALUE"> <block type="math_number" id="$uko71Lk_S$c9nuf-i]0"> <field name="NUM">9</field> </block> </value> <next> <block type="sendto_custom" id="b@9?VM*tPWtlv.2VM_pk"> <mutation items="feature,action,payload" with_statement="false"></mutation> <field name="INSTANCE">viessmannapi.0</field> <field name="COMMAND">action</field> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="ARG0"> <shadow type="text" id="pJxGJ9M)LvfpGB%c?ugU"> <field name="TEXT">heating.circuits.0.operating.programs.normal</field> </shadow> </value> <value name="ARG1"> <shadow type="text" id="Gi{g}@oLW~Q0M}7%_%7V"> <field name="TEXT">setTemperature</field> </shadow> </value> <value name="ARG2"> <shadow type="text" id="c,N~!C,/xlX9:tnzPC:p"> <field name="TEXT">{targetTemperature: solltemperatur}</field> </shadow> </value> <next> <block type="debug" id="Lz,G7xNOaQ@2z]{Hc]3F"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="$7nnnl9rtqJQKbAB${dB"> <field name="TEXT">Nachtabsenkung</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="wp7H7~FW25q]Ny]Z7m5c"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="+g#vV^3$rb?EbOswz$yQ"> <field name="ATTR">val</field> <field name="OID">homee.0.Homee-0.HomeeMode-1</field> </block> </value> <value name="B"> <block type="math_number" id="9+7zbb1xT^7;kAwBlSIe"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO2"> <block type="comment" id="edIxF82$*[oGK-y5Lm!["> <field name="COMMENT">Abwesend</field> <next> <block type="variables_set" id="Si!WTE.HJ5.$ml]l0G+2"> <field name="VAR" id="(K/qqY[+(osL*rii+b%]" variabletype="">solltemperatur</field> <value name="VALUE"> <block type="math_number" id="IJ3yuLaUo1vIo9tZ0iD$"> <field name="NUM">10</field> </block> </value> <next> <block type="sendto_custom" id="g9{.h.8(Keg-dtEE:F+:"> <mutation items="feature,action,payload" with_statement="false"></mutation> <field name="INSTANCE">viessmannapi.0</field> <field name="COMMAND">action</field> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="ARG0"> <shadow type="text" id="z;YR:[08:YyiN.UzI7$y"> <field name="TEXT">heating.circuits.0.operating.programs.normal</field> </shadow> </value> <value name="ARG1"> <shadow type="text" id="9]u-I5/FB=W!=)CXgbWo"> <field name="TEXT">setTemperature</field> </shadow> </value> <value name="ARG2"> <shadow type="text" id="_gEi9puCiCgbl8:uR+=R"> <field name="TEXT">{targetTemperature: solltemperatur}</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
Das Intervall im Tagbetrieb läuft bei dir ewig weiter, auch im Nachtmodus. Also wird die Temperatur immer für den Tag eingestellt sein. Du musst im Nachtteil das Intervall stoppen!
-
@Dr-Bakterius Ok, Danke, wie kann ich stoppen? Ich hab mir sowas gedacht, hab aber jetzt ein Knoten im Hirn, und komm nicht drauf wie ich das lösen kann. Ich hab jetzt auch die erste Zeitbedingung Tagbetrieb getauscht mit dem ersten falls. Jetzt läuft es besser, aber das mit dem Stoppen würde ich trotzdem gern verstehen und anwenden.
-
@Hamudulu Also nach deinem obigen Skript würde ich drei Stopps einbauen. Funktioniert so:
Wobei das dann trotzdem nicht funktioniert. Du prüfst jede Minute und startest auch jede Minute das Skript. In deinem ursprünglichen Blockly wird also jede Minute ein neuer Intervall gestartet. Da laufen dann hunderte! Müsstest du im Log sehen wenn da jede Minute steht, dass der Tagbetrieb läuft. Wenn du die Stopps einbaust, wird das Intervall nie schlagend, weil jede Minute gestoppt und wieder gestartet.
Du musst dir also ein komplett anderes Skript schreiben damit das funktioniert. Ich habe so auf die Schnelle auch keine Lösung für dich, sorry...
-
-
Krass , vielen Dank für den Denkanstoß und Vorschlag. Ich werd das ausprobieren.
Ihr seid die besten, vielen Dank nochmal -
@paul53 Vielen Dank, es scheint soweit zu laufen. Auf das Konstrukt wäre ich vermutlich so nie gekommen....Super