NEWS
Test Adapter HeatingControl v2.12.x
-
So es scheint jetzt alles zu funktionieren. Hab noch etwas an meinem Blockly gebastelt, falls jemand Interesse daran hat, bwz auch Probleme mit den Eurotronic Thermostaten und deconz in Verbindung mit dem Adapter hat kann es ja mal testen.
@Rene_HM vielleicht kannst Du da ja auch mal drüber schauen ob Du die Funktion so mit in den Adapter rein bekommst?
-
Ich hätte da auch nochmal ein Problemchen,
eigentlich vielmehr einen Verbesserungsvorschlag.Wenn ich eine Temperatur am Thermostat einstelle, dann das Fenster öffne und schliße, wird die Temperatur wieder auf den aktuellen Zeitwert zurückgesetzt. Das ist so wie ich es gelesen habe recht ähnlich zu den anliegen der vorherigen.
Wäre es nicht möglich pro Raum einen Datenpunkt zu erstellen wo die Temperatur gespeichert wird bevor das fenster geöffnet wird und diese dann bei Bedarf abzurufen? Evtl mit einer Aktivierungsmöglichkeit in den Einstellungen, sofern man diese Funktion nutzen möchte.Meine zweite Idee ist folgende (bitte verzeiht falls das hier schonmal thema war, habe nicht alles vollständig gelesen)
viele Thermostate, z.b. die Eurotronic Zwave oder die HomematicIP haben Datenpunkte für Boost, Abschaltung (frostschutz) etc..
wäre es möglich zumindest die Datenpunkte für die Abschaltung mit einzubinden und dann als wert Außerhalb der Heizperiode zu definieren? Bzw als Fenster-offen wert?
Hier müsste nicht nur der Datenpunkt der Heizungsthermostate festgelegt werden sondern auch jeweils ein Wert für die verschiedenen Aktionen.Ich weiß, da ich selber wenig ahnung vom Programmieren hab, dass das hier jetzt wohl recht einfach hingeschrieben ist aber wohl viel Zeit in der Umsetzung braucht. Ggf. klappts ja mit der Version 2.x

vielen Dank schonmal.
Lg -
Ich hätte da auch nochmal ein Problemchen,
eigentlich vielmehr einen Verbesserungsvorschlag.Wenn ich eine Temperatur am Thermostat einstelle, dann das Fenster öffne und schliße, wird die Temperatur wieder auf den aktuellen Zeitwert zurückgesetzt. Das ist so wie ich es gelesen habe recht ähnlich zu den anliegen der vorherigen.
Wäre es nicht möglich pro Raum einen Datenpunkt zu erstellen wo die Temperatur gespeichert wird bevor das fenster geöffnet wird und diese dann bei Bedarf abzurufen? Evtl mit einer Aktivierungsmöglichkeit in den Einstellungen, sofern man diese Funktion nutzen möchte.Meine zweite Idee ist folgende (bitte verzeiht falls das hier schonmal thema war, habe nicht alles vollständig gelesen)
viele Thermostate, z.b. die Eurotronic Zwave oder die HomematicIP haben Datenpunkte für Boost, Abschaltung (frostschutz) etc..
wäre es möglich zumindest die Datenpunkte für die Abschaltung mit einzubinden und dann als wert Außerhalb der Heizperiode zu definieren? Bzw als Fenster-offen wert?
Hier müsste nicht nur der Datenpunkt der Heizungsthermostate festgelegt werden sondern auch jeweils ein Wert für die verschiedenen Aktionen.Ich weiß, da ich selber wenig ahnung vom Programmieren hab, dass das hier jetzt wohl recht einfach hingeschrieben ist aber wohl viel Zeit in der Umsetzung braucht. Ggf. klappts ja mit der Version 2.x

vielen Dank schonmal.
Lg@Harry94 Mit dem Blockly was ich eingestellt habe, sollte das mit dem Fenster öffnen und schliesßen schon mal klappen. Wenn Du z.B. 20 Grad am Thermostat einstellst und im Profil sind 18 hinterlegt, die Fensterabsenkung ist bei 3 Grad, dann werden bei offenen Fenster 17 Grad und nicht 15 Grad eingestellt. Beim Schliessen gehts dann wieder auf die einstellten 20 Grad. Wenn der TimeSlot wechselt oder Du die Temperatur auf die im Profil hinterlegte einstellst, läuft das Profil wie gewohnt weiter.
-
@Harry94 Mit dem Blockly was ich eingestellt habe, sollte das mit dem Fenster öffnen und schliesßen schon mal klappen. Wenn Du z.B. 20 Grad am Thermostat einstellst und im Profil sind 18 hinterlegt, die Fensterabsenkung ist bei 3 Grad, dann werden bei offenen Fenster 17 Grad und nicht 15 Grad eingestellt. Beim Schliessen gehts dann wieder auf die einstellten 20 Grad. Wenn der TimeSlot wechselt oder Du die Temperatur auf die im Profil hinterlegte einstellst, läuft das Profil wie gewohnt weiter.
-
@danny_v1
Aber wieso stellst den Adapter nicht absolute? Dann passiert doch genau das?
Oder seh ich das falsch?@UncleB Ich habe Probleme mit dem Adapter in Verbindung mit meinen Thermostaten, wenn ich am Thermostat den Wert ändere wird oft vom Adapter die Temperatur wieder überschrieben.
Und mit Absoluten Werte wollte ich eigentlich nicht arbeiten, weiß auch nicht so richtig warum aber mit einer relativen Änderung gefällt mir irgendwie besser. Da wird halt nur etwas nachgeregelt, wenn ich ein Fenster auf mache.
-
@Harry94 Mit dem Blockly was ich eingestellt habe, sollte das mit dem Fenster öffnen und schliesßen schon mal klappen. Wenn Du z.B. 20 Grad am Thermostat einstellst und im Profil sind 18 hinterlegt, die Fensterabsenkung ist bei 3 Grad, dann werden bei offenen Fenster 17 Grad und nicht 15 Grad eingestellt. Beim Schliessen gehts dann wieder auf die einstellten 20 Grad. Wenn der TimeSlot wechselt oder Du die Temperatur auf die im Profil hinterlegte einstellst, läuft das Profil wie gewohnt weiter.
@danny_v1
Ich nutze Hauptsächlich die absolute Absenkung. Daher entstand leider auch das Problem.
Weiterhin kann es ja auch damit Probleme geben wenn die relative absenkung unter die ansteuerbare Temperatur des Thermostates geht.Aber danke schonmal für den Tipp.

-
inspiriert vom Heizungsthermostat-Script und weil meine homeputer-Lizenz abgelaufen ist, und ich meine Heizungssteuerung von dort nach iobroker portieren wollte, ist der Adapter HeatingControl entstanden.
Features:
- setzen der Zieltemperatur in verschiedenen Thermostaten
- beliebige Anzahl von täglichen Zeitabschnitten mit unterschiedlichen Zieltemperaturen
- Zeit und Zieltemperatur per Visualisierung konfigurierbar
- automatische Suche nach vorhandenen Thermostaten im System (über Gewerk) und Zuordnung zu Räumen
- Für den Fall, dass der Thermostat nur als Thermometer verwendet wird, behandelt der Adapter auch digitale Outputs zum Schalten der Ventile. Im Moment ist dafür nur eine einfache Ein/Aus-Regelung implementiert (die für meine Zwecke ausreichend ist). Weitere Regelungen sind aber als Idee bereits vorhanden und können implementiert werden. Es gibt nun auch einen linearen on/off mit Hysterese
- es werden bis zu zwei Outputs für Ventile unterstützt
- Outputs werden auch automatisch den Räumen zugeordnet. Dafür müssen diese dem gleichen Gewerk wie Thermostate zugeordnet sein.
- im Admin des Adapters können Räume deaktiviert werden
- Absenkung bei Abwesenheit
- Ventile ein oder aus außerhalb der Heizperiode
- Verbindung zu ical
- Verbindung zu Feiertags-Adapter
- Senden von Nachrichten per email, Signal, Telegram, discord, ...
- Kamin-Modus
- Wartungsmodus
- mehrere Profile
- Tages-Programme für
- Montag - Sonntag
- Montag - Freitag + Samstag - Samstag
- jeden Tag separat
Versionen:
Mal ne Frage:
Was ist der Unterschied absolute Absenkung und relative Absenkung? -
@deta Bei Absoluter Absenkung stellst Du den zu erreichenden Wert direkt ein, z.B. 20°C und bei relativer Absenkung den Wert, um den Du absenken möchtest, z.B. rel. 5 macht bei eingestellten 20°C (20-5) 15°C
-
@guergen Und was bringt das? Relative Absenkung? In Welchen Fall macht es Sinn die relative Absenkung nutzen? Beispiel wäre mal gut.
-
@guergen Und was bringt das? Relative Absenkung? In Welchen Fall macht es Sinn die relative Absenkung nutzen? Beispiel wäre mal gut.
@deta Na ich nutze das, um während eines Besuchs die Heizung um 2K anzuheben, egal wie Temperatureinstellung grade lt. Zeitplan ist. Stellst Du absolut eine Temp ein, ist der Zeitplan egal und die Temp wird eingestellt
Das ist auch jedermanns Sache, wie das gehandelt wird. -
@deta Na ich nutze das, um während eines Besuchs die Heizung um 2K anzuheben, egal wie Temperatureinstellung grade lt. Zeitplan ist. Stellst Du absolut eine Temp ein, ist der Zeitplan egal und die Temp wird eingestellt
Das ist auch jedermanns Sache, wie das gehandelt wird.@guergen mh, ich hab derzeit alles Nach Plan absolut. Von X bis X die Temperatur usw..
Bei Party oder Besuch anheben? Mh die Menschen heizen doch sowieso, dann doch lieber runter
Ich lass das erst mal so.
Noch eine andere Frage:
Kalender einbinden, da hab ich auch bereits gesucht. Wie soll man da eine Verknüpfung hinbekommen, der ical ist bei mir in Betrieb. Versteh die Verknüpfung nicht, das er bei Feiertagen. das Handhabt wie bei den Wochenenden. Was muss genau im Kalender stehen, und welche Punkte müssen verknüpft werden? -
@guergen mh, ich hab derzeit alles Nach Plan absolut. Von X bis X die Temperatur usw..
Bei Party oder Besuch anheben? Mh die Menschen heizen doch sowieso, dann doch lieber runter
Ich lass das erst mal so.
Noch eine andere Frage:
Kalender einbinden, da hab ich auch bereits gesucht. Wie soll man da eine Verknüpfung hinbekommen, der ical ist bei mir in Betrieb. Versteh die Verknüpfung nicht, das er bei Feiertagen. das Handhabt wie bei den Wochenenden. Was muss genau im Kalender stehen, und welche Punkte müssen verknüpft werden? -
Hallo,
so habe den Feiertagsadapter noch installiert.
Wollte nun den Datenpunkt verbinden.
Wenn ich aber jetzt im HeatinControl unter Datenpunkteinstellung,
auf das Feld klicke öffnet sich nichts weiter um den Datenpunkt dort zu verbinden.
Oder muss man den Manuell dort eintragen? Wenn ja wie z.b. muss das Aussehen vom Format? -
Hallo,
so habe den Feiertagsadapter noch installiert.
Wollte nun den Datenpunkt verbinden.
Wenn ich aber jetzt im HeatinControl unter Datenpunkteinstellung,
auf das Feld klicke öffnet sich nichts weiter um den Datenpunkt dort zu verbinden.
Oder muss man den Manuell dort eintragen? Wenn ja wie z.b. muss das Aussehen vom Format? -
Hi,
ich wollte kürzlich den morgendlichen Komfortlevel etwas erhöhen und im Bad morgens um 6 die FBH anwerfen lassen (Stellmotoren werden über Shelly mit use actors geschalten).
Schien am ersten Tag auch zu funktionieren wie geplant, am zweiten war allerdings der Boden kalt. Hab das jetzt einige Tage beobachtet und dabei auch festgestellt, dass das für die anderen Räume auch gilt nur fällts da weniger auf. Jedenfalls schaltet der Adapter die Heizung manchmal 30-40 Minuten zu spät ein.
Die Istwerte kommen von einem Aqara Sensor. -
Hi,
ich wollte kürzlich den morgendlichen Komfortlevel etwas erhöhen und im Bad morgens um 6 die FBH anwerfen lassen (Stellmotoren werden über Shelly mit use actors geschalten).
Schien am ersten Tag auch zu funktionieren wie geplant, am zweiten war allerdings der Boden kalt. Hab das jetzt einige Tage beobachtet und dabei auch festgestellt, dass das für die anderen Räume auch gilt nur fällts da weniger auf. Jedenfalls schaltet der Adapter die Heizung manchmal 30-40 Minuten zu spät ein.
Die Istwerte kommen von einem Aqara Sensor. -
@danny_v1
Ich nutze Hauptsächlich die absolute Absenkung. Daher entstand leider auch das Problem.
Weiterhin kann es ja auch damit Probleme geben wenn die relative absenkung unter die ansteuerbare Temperatur des Thermostates geht.Aber danke schonmal für den Tipp.

@Harry94 said in Test Adapter HeatingControl v1.0.x:
@danny_v1
Ich nutze Hauptsächlich die absolute Absenkung. Daher entstand leider auch das Problem.
Weiterhin kann es ja auch damit Probleme geben wenn die relative absenkung unter die ansteuerbare Temperatur des Thermostates geht.Aber danke schonmal für den Tipp.

Also ich habe mir ein Blockly zusammengebastelt, welches die (geänderte) Temperatur auch bei Absoluter Absenkung wieder herstellt, falls mal ein Fenster geöffnet wird.

hier der Export
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="z?4`M}j#c8H0*9J#{qi*">Setpoint</variable> <variable id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</variable> <variable id="By7|JcN(1$a$r6qRDZ?d">Soll</variable> <variable id="xvi-^uae!`o?D$37YCjz">Temp0</variable> <variable id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</variable> </variables> <block type="comment" id="AOU.6uW2.6/G7.i8vOgp" x="187" y="-88"> <field name="COMMENT">DP Steuerung zum Setzen der Neuen Temperatur</field> <next> <block type="variables_set" id="OugDuWCc(40zbV^)GA|^"> <field name="VAR" id="z?4`M}j#c8H0*9J#{qi*">Setpoint</field> <value name="VALUE"> <block type="field_oid" id="A`Fo!Bi_C*s}k#swb7Z6"> <field name="oid">alias.0.EG.Buero.Gerät_1.SET</field> </block> </value> <next> <block type="comment" id=".@_B7A=!^!AD)7UAURlN"> <field name="COMMENT">DP Fensterstatus für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="7ke6-ZG/|?OdVmr(~$LB"> <field name="VAR" id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</field> <value name="VALUE"> <block type="field_oid" id="f;U+0TI1aSmW7#na;Feb"> <field name="oid">heatingcontrol.0.Rooms.Büro EG.WindowIsOpen</field> </block> </value> <next> <block type="comment" id="FlAgKRc6$al2XwIbm?g2"> <field name="COMMENT">DP Setpoint für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="L.AA`BR9^1H-])y@1ArJ"> <field name="VAR" id="By7|JcN(1$a$r6qRDZ?d">Soll</field> <value name="VALUE"> <block type="field_oid" id="Yp[KP.:v3@i%zJUI?{Cc"> <field name="oid">heatingcontrol.0.Rooms.Büro EG.CurrentTarget</field> </block> </value> <next> <block type="on_ext" id="]3:(QDqCKUD+%,Gv:;xb"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid"> <field name="oid">default</field> </shadow> <block type="variables_get" id=")}cPY0`Y=!^!2=Z,AT5m"> <field name="VAR" id="By7|JcN(1$a$r6qRDZ?d">Soll</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="b}p#Xf1gTxH6@-i+$h1D"> <value name="IF0"> <block type="logic_compare" id="zkp%5GC;KJaMMwwm:in+"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="-D[WyA4khavpT9BbJJ:h"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="X:rWodyjU@Z_b1sCymkc"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="|}H-Ox87B/3Wg~,#$L*_"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> <value name="VALUE"> <block type="on_source" id="}mx+fS6S)0~s].Q7Qy$0"> <field name="ATTR">oldState.val</field> </block> </value> <next> <block type="debug" id="oIYSfv4/B{ZaeQ[1jc`/"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="r,k,:gp8#Os=Nd7:lp{W"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/iUK6:pta;]bgr*_6ndG"> <field name="TEXT">Test DEBUG: Vorherige soll Temp Büro: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="u$a{LDe6jE3pk#~)ykr}"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="G4Zjcwtg!F8:fv#hUn-N"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="sraDCHs}`;M]dt!_IwF-"> <field name="oid">default</field> </shadow> <block type="variables_get" id="F$zGX#!GTR=6$FXZZSR+"> <field name="VAR" id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</field> </block> </value> <statement name="STATEMENT"> <block type="comment" id="=St%S=WRcO1Xv*F19l8e"> <field name="COMMENT">DP Fensterstatus für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="`9W)|h1XgZNBGdEQxy(h"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> <value name="VALUE"> <block type="get_value" id="s!$6T]uN?w$snE=Ekb3v"> <field name="ATTR">val</field> <field name="OID">heatingcontrol.0.Rooms.Büro EG.WindowIsOpen</field> </block> </value> <next> <block type="debug" id="P-uDy3r=LWK@nJU5q]Wr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="]~O];D:dRQmcl0DQH}0m"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="c-_fE~{#8?O{H`lfXeV}"> <field name="TEXT">Test DEBUG: Fenster offen Status </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="{=au1ji4B159`CS{v2|("> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> </block> </value> <next> <block type="controls_if" id="A2wqy`{[4}C[`:y:,|J}"> <value name="IF0"> <block type="logic_compare" id="~24_mqXF:Ga,{bDZ9ac8"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="}@[-E|gq-=ALjlo5NOfN"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Tp3A5dRmZw+@,A0?muBg"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="~aCXMddp#m.S#3:-0Jj("> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="5[3wML!=1a*X3oG57rn3"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="X(c3=}R#hQ;0+r^bR[$b"> <field name="TEXT">Test DEBUG: Neue soll Temp Büro: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="!tY%$$M/;L9i~aNnfD%["> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> </block> </value> <next> <block type="control_ex" id="OkHf#=0[W.Z4{DJ,%18+"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="e@f4a+#nDjW;GX(cD}Og"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="IL1rf1QZ{aKf!O|*_GRW"> <field name="VAR" id="z?4`M}j#c8H0*9J#{qi*">Setpoint</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="c[o58MZ=|}0Z(p%hl!(y"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="@QbQnG?OGvz%wAzA;.{3"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="yMLRF]a%{jqU;@vT_uz#"> <field name="NUM">500</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>ich freue mich über Verbesserungsvorschläge

-
@Harry94 said in Test Adapter HeatingControl v1.0.x:
@danny_v1
Ich nutze Hauptsächlich die absolute Absenkung. Daher entstand leider auch das Problem.
Weiterhin kann es ja auch damit Probleme geben wenn die relative absenkung unter die ansteuerbare Temperatur des Thermostates geht.Aber danke schonmal für den Tipp.

Also ich habe mir ein Blockly zusammengebastelt, welches die (geänderte) Temperatur auch bei Absoluter Absenkung wieder herstellt, falls mal ein Fenster geöffnet wird.

hier der Export
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="z?4`M}j#c8H0*9J#{qi*">Setpoint</variable> <variable id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</variable> <variable id="By7|JcN(1$a$r6qRDZ?d">Soll</variable> <variable id="xvi-^uae!`o?D$37YCjz">Temp0</variable> <variable id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</variable> </variables> <block type="comment" id="AOU.6uW2.6/G7.i8vOgp" x="187" y="-88"> <field name="COMMENT">DP Steuerung zum Setzen der Neuen Temperatur</field> <next> <block type="variables_set" id="OugDuWCc(40zbV^)GA|^"> <field name="VAR" id="z?4`M}j#c8H0*9J#{qi*">Setpoint</field> <value name="VALUE"> <block type="field_oid" id="A`Fo!Bi_C*s}k#swb7Z6"> <field name="oid">alias.0.EG.Buero.Gerät_1.SET</field> </block> </value> <next> <block type="comment" id=".@_B7A=!^!AD)7UAURlN"> <field name="COMMENT">DP Fensterstatus für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="7ke6-ZG/|?OdVmr(~$LB"> <field name="VAR" id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</field> <value name="VALUE"> <block type="field_oid" id="f;U+0TI1aSmW7#na;Feb"> <field name="oid">heatingcontrol.0.Rooms.Büro EG.WindowIsOpen</field> </block> </value> <next> <block type="comment" id="FlAgKRc6$al2XwIbm?g2"> <field name="COMMENT">DP Setpoint für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="L.AA`BR9^1H-])y@1ArJ"> <field name="VAR" id="By7|JcN(1$a$r6qRDZ?d">Soll</field> <value name="VALUE"> <block type="field_oid" id="Yp[KP.:v3@i%zJUI?{Cc"> <field name="oid">heatingcontrol.0.Rooms.Büro EG.CurrentTarget</field> </block> </value> <next> <block type="on_ext" id="]3:(QDqCKUD+%,Gv:;xb"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid"> <field name="oid">default</field> </shadow> <block type="variables_get" id=")}cPY0`Y=!^!2=Z,AT5m"> <field name="VAR" id="By7|JcN(1$a$r6qRDZ?d">Soll</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="b}p#Xf1gTxH6@-i+$h1D"> <value name="IF0"> <block type="logic_compare" id="zkp%5GC;KJaMMwwm:in+"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="-D[WyA4khavpT9BbJJ:h"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="X:rWodyjU@Z_b1sCymkc"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="|}H-Ox87B/3Wg~,#$L*_"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> <value name="VALUE"> <block type="on_source" id="}mx+fS6S)0~s].Q7Qy$0"> <field name="ATTR">oldState.val</field> </block> </value> <next> <block type="debug" id="oIYSfv4/B{ZaeQ[1jc`/"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="r,k,:gp8#Os=Nd7:lp{W"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/iUK6:pta;]bgr*_6ndG"> <field name="TEXT">Test DEBUG: Vorherige soll Temp Büro: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="u$a{LDe6jE3pk#~)ykr}"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="G4Zjcwtg!F8:fv#hUn-N"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="sraDCHs}`;M]dt!_IwF-"> <field name="oid">default</field> </shadow> <block type="variables_get" id="F$zGX#!GTR=6$FXZZSR+"> <field name="VAR" id="[~GBLcTxD[Z[UiF).8V)">Fenster-Status</field> </block> </value> <statement name="STATEMENT"> <block type="comment" id="=St%S=WRcO1Xv*F19l8e"> <field name="COMMENT">DP Fensterstatus für den Raum aus HeatingControl Adapter</field> <next> <block type="variables_set" id="`9W)|h1XgZNBGdEQxy(h"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> <value name="VALUE"> <block type="get_value" id="s!$6T]uN?w$snE=Ekb3v"> <field name="ATTR">val</field> <field name="OID">heatingcontrol.0.Rooms.Büro EG.WindowIsOpen</field> </block> </value> <next> <block type="debug" id="P-uDy3r=LWK@nJU5q]Wr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="]~O];D:dRQmcl0DQH}0m"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="c-_fE~{#8?O{H`lfXeV}"> <field name="TEXT">Test DEBUG: Fenster offen Status </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="{=au1ji4B159`CS{v2|("> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> </block> </value> <next> <block type="controls_if" id="A2wqy`{[4}C[`:y:,|J}"> <value name="IF0"> <block type="logic_compare" id="~24_mqXF:Ga,{bDZ9ac8"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="}@[-E|gq-=ALjlo5NOfN"> <field name="VAR" id="r*Y7x4kF|0o,6D{o{xha">Fenster-offen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Tp3A5dRmZw+@,A0?muBg"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="~aCXMddp#m.S#3:-0Jj("> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="5[3wML!=1a*X3oG57rn3"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="X(c3=}R#hQ;0+r^bR[$b"> <field name="TEXT">Test DEBUG: Neue soll Temp Büro: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="!tY%$$M/;L9i~aNnfD%["> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> </block> </value> <next> <block type="control_ex" id="OkHf#=0[W.Z4{DJ,%18+"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="e@f4a+#nDjW;GX(cD}Og"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="IL1rf1QZ{aKf!O|*_GRW"> <field name="VAR" id="z?4`M}j#c8H0*9J#{qi*">Setpoint</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="c[o58MZ=|}0Z(p%hl!(y"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="@QbQnG?OGvz%wAzA;.{3"> <field name="VAR" id="xvi-^uae!`o?D$37YCjz">Temp0</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="yMLRF]a%{jqU;@vT_uz#"> <field name="NUM">500</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>ich freue mich über Verbesserungsvorschläge

Als kleine Info an alle die sich mit den geöffneten Fenstern rumärgern:
Ich nutze FritzDECT Thermostate die ja bekanntlich eine bis zu 30 Minuten Verzögerung bei der Befehlsübermittlung haben.
Da somit eine Absenkung nicht realisierbar ist lasse ich per Script meine Frau diskret darauf hinweisen das sie doch die Fenster wieder schließen soll.
Alexa macht einfach eine Ansage: "Mir ist kalt. Mach das Fenster wieder zu!"
