NEWS
*gelöst*Heizung bei Kamin aus-Zeit/Temp wieder einschalten
-
Hi Zs,
ich hänge leider an einer Verknüpfung.
Ich habe einen virtuellen Schalter für unseren Kamin (Ein/Aus) der bei Betätigung die Heizung in den Räumen schaltet.
Dieser soll bei einer Temperatur über 22°C automatisch auf true gesetzt werden. Bei unterschreiten wieder auf false und zusätzlich Nachts um 2 Uhr in jedem fall auf false weil der Kamin ja irgendwann ausgeht
Ich bekomme den Timeout mit den 2 Triggern nicht unter einen Hut
So schaut es aktuell aus weil ich sonst ständig schleifen gebaut habe
und die Blöcke dazu gleich in den Tags. Wär toll wenn mir jemand einen Tipp geben könnte! Danke vorab!
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="M13p/jfT[Mc~IfPOKb/U" x="-887.5234375" y="712.0640625"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="y7fo(*rdOA=npmp(p=R,"> <field name="oid">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="SMJzV*}B|p-PLKjZA!Kh"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="I_B-uzbzIeHdzS2~_]b7"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Ap_D@4O5@A/%ki2?BRSh"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="1B5OPF3MW{M(o.@}{37Y"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="^_l$3tLyxcQJult5}#m}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.1.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="}$%g/f94YBtbK_4BP^97"> <field name="TEXT">OFF</field> </block> </value> <next> <block type="control" id="S^@s_-de}L#A`rWW;,5c"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.7.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="bRj).]LEOkGu2jE*D}N)"> <field name="TEXT">OFF</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="}c:wl#g2/CA|#w:_ke)7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.1.overlayClearZone</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ZZU~~m+pSB4.iudE?nJj"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="@L/YO02Ui8g,1}uP%4uS"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.7.overlayClearZone</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="a3=G;%!h_[nv::D6*Q?y"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block>
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="W:=l?w$V|OrFwwSUJWr3" x="-887.5234375" y="1036.0640625"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="IX@H$yT5l{?(Q:zx6|M3"> <field name="oid">tado.0.214860.Rooms.1.sensorDataPoints.insideTemperature.celsius</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="JHQXaf]n(:O/pKOT`s^2"> <value name="IF0"> <block type="logic_operation" id="1a~5+CnAMVhwj:TCwh~4"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="CEFkN1HW6jh,#G4=q?EI"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="l`IGgY6cv4$*:R$T[L#L"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="-WLq[bsq)f~ZspXef8VX"> <field name="NUM">22</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}zX?NWzDVl{nq?;(iD`j"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="!p!~]5[+mO6P7+T9_N?x"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> </block> </value> <value name="B"> <block type="logic_boolean" id="tB_,kTOzf9arRPBvcxo]"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="KaoI!7L/uiWL=d4eP~_5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="p?Fa`gP/q^4@MR=#axqM"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block>
-
@soerenkaiser99 sagte in Heizung bei Kamin aus-Nach Zeit/Temp wieder einschalten:
tado.0.214860.Rooms.1.sensorDataPoints.insideTemperature.celsius
Das wäre doch schon alles, oder?
-
@armilar sagte in Heizung bei Kamin aus-Nach Zeit/Temp wieder einschalten:
@soerenkaiser99 sagte in Heizung bei Kamin aus-Nach Zeit/Temp wieder einschalten:
tado.0.214860.Rooms.1.sensorDataPoints.insideTemperature.celsius
Das wäre doch schon alles, oder?
Wenn Temperatursensor >= 22°C, dann schalte den Kamin ab (true und false wird wahrscheinlich auch funktionieren).
Ansonsten, d.h. wenn die Temperatur <22°C ist, schalte wieder an.Um 2:00 Uhr schalte wieder ab.
Eigentlich brauchst du auch keine Datenpunkte in 0_userdata. Es reicht wenn du die tado.0.214860.Rooms.1.setting.power und tado.0.214860.Rooms.7.setting.power direkt auf true/false steuerst. Also jeweils ein steuere für beide .power
-
@armilar lieben Dank für deine Mühe aber ich glaub ich hab nen Denkfehler beim interpretieren oder mich falsch ausgedrückt.
Mit dem Schalter Kamin true/false schalte ich nur via smartphone 3 Thermostate in 2 DP von tado ab, der hängt nicht mit dem Kamin zusammen.
wenn Kamin true, tado im WZ & Esszimmer aus, wenn false clear overlay und dann eben bei Temp Kamin ein bzw Tado aus.
Soweit hattest du es ja auch ( nur schöner?! ) Das Thema ist aber, das es grade im Übergang Situationen gibt bzw. gab wo ich die Heizung länger auslassen mag (weil wir abends den Kamin wieder anmachen wollen und der Morgens brannte) oder umgekehrt anschalten mag weil der Ofen fast aus ist aber es bis 2 uhr noch ewig hin ist wir aber weg fahren usw...
Jedenfalls setzt die Logik so wie beschrieben aber bei jeder Temp Änderung den wert true/false wenn die einzelne Bedingung (bei dir oben Temp) erfüllt ist, dann kann ich kann eben nicht manuell eingreifen.
Oder übersehe ich etwas? Daher auch mein Problem mit den 3 Triggern Kamin als DP, Temp und dem Schalter
-
Okay, jetzt habe ich "virtueller Schalter" verstanden... Es ist kein Elektrokamin, sondern ein echter Kamin, Und mit dem virtuellen Schalter willst du nur mitteilen, das da Holz drin brennt.., und deshalb die Heizungen nicht parallel laufen müssen, oder?
Was soll "Clear Zone Overlay" bewirken?
Ich mache morgen mal einen Vorschlag... ist jetzt für mich schon zu spät...
-
stimmt = Echter Kamin und genau das mache ich mit dem Schalter
Clear zone overlay verwendet Tado um zum Zeitplan zurück zu kehren. Ich kann zwar on/off an den DP Power übergeben, das wertet Tado (und der Adapter) aber immer als overlay weil damit ein immer benötigter Zeitplan ausgeschaltet wird, der eigentlich permanent den Raum steuern soll.
Mit Clear Zone overlay wird der Raum (und alle Thermostate darin) wieder auf den Zeitplan für den Raum zurück gesetzt in dem dann Zeitpläne, Nachtabsenkung, Away-Mode etc. berücksichtigt werden.
-
-
@cinimod Vielen Dank!
die Verschachtelung hätte ich nicht hinbekommen. Hab es grad nachgebaut und werde morgen berichten.Den oberen Block der durch meinen DP/Schalter getriggert wird lasse ich aber so, oder? Dort habe ich dann nur ebenfalls die Funktion verwendet.
Macht es Sinn den Kaminschalter ebenfalls im ersten UND block auf true zu setzen?
Ich frage weil ich noch nicht ganz verstehe wie ich meinen manuellen Schalter in das Konstrukt bekomme, so dass dieser an ist wenn der Kamin den Raum über 22C erwärmt hat und ausgeht wenn die Temperatur unter 22C gefallen ist. Ich aber dennoch über den Schalter die Aktion Switch aus = Heizung Ein oder Switch ein= Heizung Aus unabhängig und vorrangig zur Temperatur schalten kann
-
Das du den Manuellen Schalter auch brauchst war mir nicht klar.
Du willst mit dem Schalter den manuell regeln ob die Heizung trotzdem laufen soll? Oder soll der Schalter das Skript ausser kraft setzen?
Denn wenn du das erstere regeln willst, wird ja sobald die Temperatur sich ändert wieder getriggert, dann ist dein Effekt nur so lang bis der Temperatursensor nen neuen Wert raus haut.
Oder man macht eine zeitlich begrenzte sperre wenn du die Heizung manuell einschaltest bevor das Skript wieder über die Temperatur regeln darf.Hast du einen Physischen Schalter mit dem du manuell schalten willst, und nur am Rechner den Datenpunkt umstellen ?
-
Tut mir leid, hatte ich weiter oben schon mal erwähnt und nicht gesehen das es ein wenig versteckt ist.
Es ist nur ein Datenpunkt ohne physischen Schalter den ich mit dem Handy via vis/yahka schalte.
Der Hintergrund ist, das es grade im Übergang Situationen gibt bzw. gab wo ich die Heizung länger auslassen mag (weil wir abends den Kamin wieder anmachen wollen und der Morgens brannte) oder umgekehrt anschalten mag weil der Ofen fast aus ist aber es bis 2 uhr noch ewig hin ist wir aber weg fahren usw.
-
Ok, dann steuere über die Temp. doch lieber den Datenpunkt an, und lass den dann die Funktion anstoßen. Sonst ändert der sich ja im im VIS/Yahka nicht.
Du kannst die Nachtruhe natürlich auch zu einer bestimmten zeit wieder aufheben, nach dem selben Prinzip wie ich es auch aktiviere.
Optional natürlich auch über die Zeit und zusätzlich bei Überschreitung einer bestimmten Temp.
-
@cinimod ich danke dir!
nachgebaut habe ich es, probiere es nachher aus, hab nur grad keine Zeit.
Kannst du mir nur noch kurz die Logik im letzten Abschnitt erklären? Das über und unterschreiten mit dem vorherigen Wert wenn die variable wahr ist die vorher auf falsch gesetzt ist, ist klar, aber wofür die 25°C wenn die variable falsch ist? Ich komm grad ned drauf -
Der Gedanke dahinter war das wenn du den Kamin an machst, und die Temp. über 25° geht das die Sperrzeit dann aufgehoben wird, und die Automatische Temp. Regelung wieder aktiv ist.
Wenn ich es mir recht überlege, ist die ganze sperrvariable eigentlich überflüssig durch die abfrage nach dem vorherigem Wert.
Das sollte eigentlich schon ausreichen, dann sind wir schon fast bei deinem Startskript:
Als Zeitplan nimm besser Cron, der Wizard macht schon mal Probleme.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="M13p/jfT[Mc~IfPOKb/U" x="-1738" y="313"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="y7fo(*rdOA=npmp(p=R,"> <field name="oid">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="SMJzV*}B|p-PLKjZA!Kh"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="Ap_D@4O5@A/%ki2?BRSh"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="control" id="0=|#5@i:;w3Pxj(B4UtR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.1.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="Zn*f!!)y,lxg%xjZ/inv"> <field name="TEXT">OFF</field> </block> </value> <next> <block type="control" id="/MFir$Z5Xo]{T7ZBW;%z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.7.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="iuR:-.-_7U*m^:/zTmi9"> <field name="TEXT">OFF</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="c]NH;kYv%.jvA[@s/mYU"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.1.overlayClearZone</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="b+?b8pNLhzoUmQc:gQ-N"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="A^B@0p=`!J[va|fGMXuZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tado.0.214860.Rooms.7.overlayClearZone</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="zz*QjE_;xLG+=pS|wRv;"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> <block type="on_ext" id="q7v6*wT+{j}g%w0Y};{k" x="-1737" y="662"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="1y/I8qum})g/u^-sV14G"> <field name="oid">tado.0.214860.Rooms.1.sensorDataPoints.insideTemperature.celsius</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="U3R/m.QMU$QAm5q)Xx{:"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="8s5O/+lC%GgS`qW1y2n*" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="r4[2)()/?B@pfe={/ufp"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="z$ZVY_NB8XdiW:es]O0|"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=")mcbpr!sVO7h,~~bdVS["> <field name="NUM">22</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="LJg1rW-bpeOJ@A:UmhL4"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="_`D=^5Xw7?oHHOis8!1Q"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="P7kw],Gyk5}9it/9Hz!4"> <field name="NUM">22</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="~CgG=;(^q#EeLVyH$G9x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ABThO^lV{qzF`t81QIVe"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="wcSqZ)y6*w#~Jw)xKVO~" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="vWpHYM0yV20wI@GdAc01"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id=":Jy7Ira=tHYHiyOLP%G;"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Aj%}K`VGY{/KXETq8l%u"> <field name="NUM">22</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="`rdl2RA-$IhqN(1(w74h"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="cu!y(!}l]r~7ciFiWM0G"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id="=rRy/5D2,ajqP}+P3+8O"> <field name="NUM">22</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id=".2.]cTl{=}i+KmtiC.Q?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="w9c@mxFDan:XKYs@e,XT"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="schedule" id="VH3nw5)J#_bIhzJv+xnG"> <field name="SCHEDULE">0 2 * * *</field> <statement name="STATEMENT"> <block type="control" id="rz68/)Zyl/fA}S_%.Qis"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Wärmepumpe_Heizung.Kamin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]?mIF9*9IlI*JIhVdkn5"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </xml>
-
@cinimod
Du hast recht, ohne geht es prima. hab grade die Temperaturen im Datenpunkt rauf und runter gestellt und jetzt läuft es wie gewollt. Vielen Dank! -
-
@armilar Trotzdem vielen Dank