NEWS
Heizung runterregeln bei offenem Fenster
-
Hallo,
ich bin momentan dabei, unser Wohnzimmer etwas smarter zu machen und hab mit der Heizung angefangen.
Verbaut sind Thermostate von Innogy, welche ich mit dem Innogy-Adapter steuern kann.
Am Fenster sind Kontakte verbaut (433Mhz), welche den Status "Offen" oder "Geschlossen" erkennen können und mir den Status per Sonoff RF-Bridge mitteilen.Der Plan ist, dass ich die Heizung auf z.B. 18°C runterregel, wenn eins der Fenster offen ist, aber auch, wenn meine Solar-Anlage mehr wie 2500W produziert, da dass für mich heißt, dass Sonne ansteht und die Bude sich dadurch ordentlich wegen Südausrichtung aufwärmt.
Wenn keine der Bedingungen erfüllt ist, dann soll sie wieder auf den vorherigen Sollwert zurückregeln. Diesen Sollwert speicher ich in der Variable "Temp_Saved".So sieht mein derzeitiges Blockly aus:
Funktioniert leider nur beim ersten Start, da die Variable wieder überschrieben wird, wenn die Temperatur abgesenkt wurde.
Wie kann ich es einrichten, dass die Variable nur 1x gespeichert wird?
Oder sollte ich das Script komplett umstellen?Grüße
Mirko -
@mirko3107 sagte:
Wie kann ich es einrichten, dass die Variable nur 1x gespeichert wird?
Falls Wert von Objekt PointTemperature > 18
. setze Temp_Saved auf Wert von Objekt PointTemperature -
Danke, dass funktioniert.
-
Hallo Mirko, ich versuche genau das zu realisieren. Kannst du mir bitte das Script zur Verfügung stellen?
Gruß Ben
-
Bin auf heatingcontrol umgestiegen, mit meinem Script steuer ich jetzt nur noch einen Datenpunkt, der
mir in heatingcontrol als Fenstersensor fungiert.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="C3{Ry.sqkaoeQoEcG`9N" inline="true" x="-812" y="-812"> <field name="OID">fronius.0.powerflow.P_PV</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="g2c**pTLvJ6Vn8PL022Z"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="r}a*W+_u?5-v5VFf8fno" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="/IEf698AB,MPmz+_8A!."> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="t(8iCVqpk`Vn,b6T6!_$"> <field name="ATTR">val</field> <field name="OID">daswetter.0.NextDays.Location_1.Day_1.Maximale_Temperatur_value</field> </block> </value> <value name="B"> <block type="math_number" id="*+^2oz7Dw%EXry@lJ$bl"> <field name="NUM">10</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="/1vFpP8(N]R$%bWx@(X%" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="MlhWF2v{;cx$(8zs|93+"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="roRYf8b[UNp#}gBwqW-F"> <field name="ATTR">val</field> <field name="OID">fronius.0.powerflow.P_PV</field> </block> </value> <value name="B"> <block type="math_number" id="%zUDF!B)tWx^_B3~gzE}"> <field name="NUM">3000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="H[[{PXtmGX4x0e.spogx"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id=";U3noS3oOeVF[-eQR6+v"> <field name="ATTR">val</field> <field name="OID">innogy-smarthome.0.Wohnzimmer.Raumklima.Temperature</field> </block> </value> <value name="B"> <block type="math_number" id="jy}kemhe7vT}Y=7ugZzu"> <field name="NUM">23</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="/K|Bp(D!:FjvCap#WFvy"> <value name="IF0"> <block type="logic_compare" id="-`[1?*0]]#*-+]7Atf5)"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="/BJ{4Hl~,D6A(i,cQ3Q6"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Solar</field> </block> </value> <value name="B"> <block type="logic_boolean" id="yp88[+dk@?cBZ:obV)Lk"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="h*Ej/pBS($c=HzVH^7G;"> <field name="NAME">timeout</field> <next> <block type="control" id="eghth5PGNmdJ%_v8u[qF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Solar</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]3~%t8dk688!g$iA0rR!"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id=";VUMDir|g8%d?$bOybim"> <value name="IF0"> <block type="logic_operation" id="0W4ZipDC4q.8%t4i5E/w" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="d:Ta%S(hRopZc/U557[d"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vJ@2*D9T8Qpx0|CQCB6c"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Solar</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";MzJm9+}1f`16uqj.a]5"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="8hpMAxBV?tlk)hmlP@}0"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="(OoF%]_d@zmzqMi@=~vf"> <field name="ATTR">val</field> <field name="OID">innogy-smarthome.0.Wohnzimmer.Raumklima.Temperature</field> </block> </value> <value name="B"> <block type="math_number" id="rH17:DOcQE-1I7K.gQmE"> <field name="NUM">24</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="(qp+B_vacL=vTjH1~D5j"> <field name="NAME">timeout</field> <field name="DELAY">600</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="7;.!6U)%gu7]-ts]rBn|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Solar</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=",zu8ami=}Q|o*0cWmWRb"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </xml>
-
@mirko3107
Danke schön, schade das du das alte Script nicht mehr hast. -
@mirko3107 Kleine Anmerkung am Rande: Wenn du im Winter dein Fenster aufmachst, dann heizt du draussen mit Ich würde eine niedrigere Temperatur als 18 Grad ansetzen.
-
@amg_666 wie gesagt, das Script existiert nicht mehr. Jetzt schalt ich die Heizkörper ab, sobald Fenster offen oder
PV-Anlage produziert. -
Hallo
Ich mache das so !
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</variable> </variables> <block type="comment" id="aEdbWTA`QV1W[Cq`x}v~" x="-488" y="-387"> <field name="COMMENT">Zeitplan für die Heizperioden</field> <next> <block type="schedule" id="QI#-4xf+JvioVpS^;7XY"> <field name="SCHEDULE">*/5 * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="R5_/#FHbE-XN0wyLeQCJ"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="863R.b-h!H5ImA58rf]f"> <field name="NUM">21</field> </block> </value> <next> <block type="controls_if" id="=fM_LC.abRUfDR?4[NAL"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="P[P/I($?J;46@8zP{v*G" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=":u+M_1!3BLCJVt(A5s;k"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="7J]1[2`z2,(}4rVE+R$e"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="3AVys.l+V1K0~ui=[9JW"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="W~6vCZ9jl{jC|Or6S4N*"> <field name="oid">alias.0.EG-Flur.Tuer-Garage.accessControl_doorState</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="M1z6Tb#3a4{Y27H(7+rM"> <field name="NUM">23</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="#zm5-M33RX}s`9=8.C;h"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="y(ym+?cOZ{sHm[9|;$}_"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="57{p%/Y(-}[A1i6`sF|a"> <field name="oid">alias.0.EG-Computerraum.Aussen-Tuer.accessControl_doorState</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="RUE`O*d0mqRlacmYFW)l"> <field name="NUM">23</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Ogy7I(*({S|$W$/l#8H)"> <mutation elseif="4"></mutation> <value name="IF0"> <block type="time_compare" id="G3l31,17J$h/*f~5LoWI"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">05:09</field> <field name="END_TIME">12:08</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="z~t:Q:vVHf;xe9,Q7{Y7"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="f;fI07XdhvZrBdT~ydzG"> <field name="NUM">21</field> </block> </value> </block> </statement> <value name="IF1"> <block type="time_compare" id="xoirp=JW[~}-:xhy;WC2"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">12:09</field> <field name="END_TIME">16:08</field> </block> </value> <statement name="DO1"> <block type="variables_set" id=",.?6M3!xpdN1`!f/DSjs"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="RbEhlkuf(N0$,_l!/SrC"> <field name="NUM">21</field> </block> </value> </block> </statement> <value name="IF2"> <block type="time_compare" id="s2c[p)81h08UzGE!p=Td"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">16:09</field> <field name="END_TIME">23:08</field> </block> </value> <statement name="DO2"> <block type="variables_set" id="hJ^,YJ`oNbc]$v/m^9a4"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="Vx9{qJw1}#mfg%7Mubry"> <field name="NUM">21</field> </block> </value> </block> </statement> <value name="IF3"> <block type="time_compare" id="Q9+liue_CW2)mCi%N~,Q"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">23:09</field> <field name="END_TIME">23:59</field> </block> </value> <statement name="DO3"> <block type="variables_set" id="|USseoV`@7uDkwjbBj^@"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="y|h3seX,BUyo+^U+~B5*"> <field name="NUM">15</field> </block> </value> </block> </statement> <value name="IF4"> <block type="time_compare" id="tU*f}N7?K+Uh%!dtbO!g"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">00:01</field> <field name="END_TIME">05:08</field> </block> </value> <statement name="DO4"> <block type="variables_set" id="{s|g0O(#%AQ+=?ZmV|_4"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id="Qrpp6ZZp%^tKaJL*#[=-"> <field name="NUM">15</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="comment" id="[;{z4!i7wbw|DF{d_e,e"> <field name="COMMENT">Bei Fenster oder Tür auf nur noch 8 °C</field> <next> <block type="variables_set" id=":#n6RH%p7jf9o/:GP:Qx"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> <value name="VALUE"> <block type="math_number" id=":@wj**$)K-Eh?e+QU8.."> <field name="NUM">8</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id=":gtA+D2S1A5[8UD(d#zm"> <value name="IF0"> <block type="logic_compare" id="6@dr^EYh-(W#TF4D[py_"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="gE~Nlk?x,_gU/`2f_!X{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Alte_Heiztemperaturen.EG_Flur</field> </block> </value> <value name="B"> <block type="variables_get" id="+1%Hi2rd-9q6$exE?Mvi"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="W$3]XZEmQN2iv5/PU6oH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.EG-Flur.Heizung-gross.setpoint_heating</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="ko-MYxLk{3-GBB_UZbza"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> </block> </value> <next> <block type="control" id="g*:^7;9S^h34j$)6[t9n"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alias.0.EG-Flur.Heizung-klein.setpoint_heating</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="variables_get" id="md2]{|A`:i@`)3]+09V?"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> </block> </value> <next> <block type="update" id="8FX=OKiss6;]j4EO;0a5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datapoint.Alte_Heiztemperaturen.EG_Flur</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="wLxS1KcNprU_LMqM6J4l"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> </block> </value> <next> <block type="debug" id="bZ?fL|d*0RHw6+vw@YkH"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="yu,uo]S[ATf+~})QCC]["> <field name="TEXT">test</field> </shadow> <block type="text_join" id="5bB(u~hnr1+tsT?G{76c"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="YXk78w7+J4fW+h3o9ky_"> <field name="TEXT">Solltemperatur EG-Flur = </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="Xvn_9xHz2z@LGZGa`3k5"> <field name="VAR" id="DaOcC6MmX7#hfwRYX}kv">Heiztemperatur_EG_Flur</field> </block> </value> <value name="ADD2"> <block type="text" id=",]2ob{/]gs)h2yMLFv7A"> <field name="TEXT"> °C</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
Das ist war kein Großes Ding aber möglicherweise hilft es dir.
Grüße aus dem Sauerland.
-
Moin @berges01,
für dich wäre bestimmt auch der heatingcontrol eine Lösung. In dem kannst du u.a. regeln, dass die Heizung bei geöffnetem Fenster runterregeln soll.
Schöne Grüße vom Möhnesee -
-
@durchi76er sagte: so gelöst:
Wozu soll der Vergleich mit "ActualTemperature" gut sein? Besser so:
-
Ja viele Wege führen nach Rom wie das fast immer so ist.
Meine Vorgabe wahr :- Fester oder Tür auf runter auf 8 Grad.
- Dafür ein Zeitversatz ca. 5 min.
- Wenn die Tür und das Fester zu sind wieder auf die Alte Temperatur
- Auch dafür ein Zeitversatz ca. 5 min.
- Unterschiedliche Raumtemperaturen für unterschiedliche Zeiträume.
- Leichte Erweiterbarkeit. (Zusätzliche Fenster,Türen, Heizkörper).
- Nur Ansteuern der Ventile wenn sich etwas verändert hat.
- Einfache Softwahre, damit das jeder versteht ohne zu viel zu wissen.
(Tenor : Was ist wenn mir mal was passiert).
Bei mir läuft das jetzt schon geraume Zeit ohne Probleme.