NEWS
Lüftungssteuerung/ Raumkühlung
-
@erazor86 sagte:
Eine einfache Zeitsteuerung habe ich ans laufen bekommen.
Polling mit 10 s Intervall erscheint erst einmal einfach, aber ist in einer Ereignis-geteuerten Sprache wie Javascript nicht optimal. Vorschlag:
Ich hoffe, dass das Programm durch die Wahl der Variablen-Bezeichner verständlich ist.
-
Danke für deine Mühe.
Bevor ich auf dein blockly eingehe, möchte ich erst nochmal erwähnen, dass ich während der Erstellung des Beitrags parallel noch weiter an meinem blockly gearbeitet habe und der Stand von oben nachher schon relativ gut funktionierte. Allerdings habe ich jetzt noch den Haken bei "löschen falls schon läuft" entfernt, wodurch es noch besser läuft. Was bewirkt dieser Haken eigentlich? Habe immer gedacht, der setzt den Timeout zurück wenn ein neuer angesetzt wurde, aber das tut es scheinbar nicht.... Einziges Problem was ich bisher noch habe ist:
-
Wenn Bad1 die Lüftung anschaltet und der Timeout nach dem ausschalten läuft
-
Während der Timeout von bad 1 läuft, im Bad 2 der Schalter betätigt wird, die Lüftung nach dem ersten Timeout ausschaltet, obwohl in Bad 2 noch der Schalter eingeschaltet ist.
Nun zu deinem Vorschlag:
Interessante Herangehensweise, mit den Funktionen habe ich so noch nie gearbeitet. Der Verzicht auf den 10 sek Intervall wäre mir auch lieber gewesen, doch irgendwie hab ich das nie mit der Grundlüftung zwischen den Zeiten realisiert bekommen.
Den Ablauf deines blocklys verstehe ich allerdings noch nicht ganz, ich habe die Unklarheiten mal in gelb kommentiert:
Ich hab deinen Vorschlag vorhin auch mal getestet und dabei folgendes festgestellt:
-
Lichtschalter 1+2 mit Timeout funktioniert, jedoch habe ich hier das gleiche Timeoutproblem wie mit meinem blockly...
-
Die Grundlüftung zu den Zeiten wird irgendwie nicht gestartet? Diese läuft aber auch nur in Abhängigkeit irgendwelcher Änderungen der Schalter bzw. Temp-Sensoren oder verstehe ich das falsch?
-
Den Block mit dem Zeitplan habe ich erstmal weg gelassen, da ich die Temp- Sensoren noch nicht verbaut habe.
anbei den Code, den ich von dir übernommen habe:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="" id="-T9#d/Yh6U;{M{f]DniR">Lueftung ein</variable> <variable type="" id="ll[%4tP{TqAocSN#Fk*;">Schalter Bad</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="y){h[{-4c8ktWE~`t*:b">Schalter WC</variable> </variables> <block type="on_ext" id="+k%pF,=%Z9c%=#eFJ6@8" x="-1312" y="-512"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O5Lo}GGvN}}2l9U2a3-7"> <field name="oid">shelly.1.SHSW-1#C41D9D#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="$=6eX%d},];ZQ!G)lD)3"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id=")blSy,7emak;*TR`i3(z"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="TH,]4ws(3H%t54vGbLbZ"> <field name="NAME">timeout1</field> <next> <block type="variables_set" id="Z)73}Vl!lxfRY?q*@bkF"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="w]hvTd@yi0[Yf;uZFf=?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="*r=R$XUXKE:vu7cKGz@~"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="M?6hP.DK~w$Q^8hlTgSq"> <field name="NAME">timeout1</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="hPtMauvSm9R?hQ7VkLZe"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="_3K4Hc5`t^`yGaVs=j!*"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Z*hZ8ntz$oE@(XiZ%Zx]"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="}hi9w:?BlVjWdW%F$KhO"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="FEG3gasnAT$IoQA-oji_"> <field name="oid">shelly.0.SHSW-1#C4FB4A#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="V?BS?Z?^[y3J:fiPtx=`"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="]iD9vOGjq%GI]~DIZkJ2"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="variables_set" id=",,T$clm4g!ixjuZPbGi-"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="b9G7IIp7xL,)*?/r~MZq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="1,^J.Yf`Q[.EdVguqyGf"> <mutation name="Lueftung"></mutation> <next> <block type="timeouts_cleartimeout" id=",k*[oKWBUf3OR[~QLeKF"> <field name="NAME">timeout2</field> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="`Y`|{_:)9(x_hI0CMeGi"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="YW_E}A#uFD8]sO:zHyGR"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="9$4z)Ig0x^l6FaD5LMKL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="JN%iP8OTLhoRFXHFN`5/"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id=".Kaw7OsOYlt.vGZmxCX=" x="-712" y="-538"> <field name="NAME">Lueftung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="Zm?U~sok-MOQoA?x+3DO"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="paeRegepo#AWP;9X,AnB" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="c9/4N(^X6xUL~WSRAWbP" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="time_compare" id="*|^pBKuH;^yE;FLX-A~X"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">15:30</field> <field name="END_TIME">01:00</field> </block> </value> <value name="B"> <block type="time_compare" id="9pQI:?/t{DqT;dzd~/?r"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">04:00</field> <field name="END_TIME">08:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="/3Njok1H0A)gm*jcv(zT" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="variables_get" id="GisxnNs$x,+=XR1C2@Xg"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> </block> </value> <value name="B"> <block type="variables_get" id=")cG,Lnu((@ii6-e`P*yt"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="UC1/uT)/,[!nh3lBc9jx"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="6-dTykGCt4riYS;-0WU1"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="E+HXRavQJqb|xdnj5*|I"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="%F#2XVCXscbE)mb$iw8_"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="?X#SDwsiM!EJ==(gof|*"> <value name="IF0"> <block type="logic_compare" id="+W$bowR;Fnn.mr%?m}!."> <field name="OP">NEQ</field> <value name="A"> <block type="field_oid" id="~a_K4A`o9Z0Dw9fA!R/K"> <field name="oid">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="variables_get" id="QQt-F]0H$SX-e-(1H$]k"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="]qYeOi_q*_)kJVsfOI~|"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="*Nv!rX54$Px9aKq7Smv}"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
-
@erazor86 sagte:
Den Block mit dem Zeitplan habe ich erstmal weg gelassen
Dann kann die Grundlüftung nicht funktionieren, denn die ist davon abhängig, dass die Funktion jede Minute (Zeitplan) aufgerufen wird. Ergänze bitte:
Zu den falls-Fragen:
falls Irgendwas prüft, ob Irgendwas wahr oder falsch ist. Wenn Irgendwas wahr ist, wird der mache-Zweig ausgeführt, andernfalls der sonst-Zweig. Irgendwas kann das Resultat eines Vergleichs sein, aber auch jeder andere boolsche Wert.@erazor86 sagte:
jedoch habe ich hier das gleiche Timeoutproblem wie mit meinem blockly...
Das kann nicht sein, denn die Oder-Verknüpfung in der Funktion verhindert das Ausschalten, wenn das erste Timeout abgelaufen ist, aber das zweite Timeout noch nicht.
-
Danke für die Infos....
Ich habe es jetzt wie von dir beschrieben angepasst. Komischweise reagiert die Lüftung nicht bei Änderungen von "Schalter WC"
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="" id="-T9#d/Yh6U;{M{f]DniR">Lueftung ein</variable> <variable type="" id="y){h[{-4c8ktWE~`t*:b">Schalter WC</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="ll[%4tP{TqAocSN#Fk*;">Schalter Bad</variable> </variables> <block type="on_ext" id="+k%pF,=%Z9c%=#eFJ6@8" x="-1312" y="-512"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O5Lo}GGvN}}2l9U2a3-7"> <field name="oid">shelly.1.SHSW-1#C41D9D#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="$=6eX%d},];ZQ!G)lD)3"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id=")blSy,7emak;*TR`i3(z"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="TH,]4ws(3H%t54vGbLbZ"> <field name="NAME">timeout1</field> <next> <block type="variables_set" id="Z)73}Vl!lxfRY?q*@bkF"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="w]hvTd@yi0[Yf;uZFf=?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="*r=R$XUXKE:vu7cKGz@~"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="M?6hP.DK~w$Q^8hlTgSq"> <field name="NAME">timeout1</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="hPtMauvSm9R?hQ7VkLZe"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="_3K4Hc5`t^`yGaVs=j!*"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Z*hZ8ntz$oE@(XiZ%Zx]"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="}hi9w:?BlVjWdW%F$KhO"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="FEG3gasnAT$IoQA-oji_"> <field name="oid">shelly.0.SHSW-1#C4FB4A#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="V?BS?Z?^[y3J:fiPtx=`"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="n`5cB:j^l=#.LB)(jg4g"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id=",k*[oKWBUf3OR[~QLeKF"> <field name="NAME">timeout2</field> <next> <block type="variables_set" id=",,T$clm4g!ixjuZPbGi-"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="b9G7IIp7xL,)*?/r~MZq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="1,^J.Yf`Q[.EdVguqyGf"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="BHaZ1+rl5d=+$@$#(#eu"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="YW_E}A#uFD8]sO:zHyGR"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="9$4z)Ig0x^l6FaD5LMKL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="JN%iP8OTLhoRFXHFN`5/"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id=".Kaw7OsOYlt.vGZmxCX=" x="-712" y="-538"> <field name="NAME">Lueftung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="Zm?U~sok-MOQoA?x+3DO"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="paeRegepo#AWP;9X,AnB" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="c9/4N(^X6xUL~WSRAWbP" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="time_compare" id="*|^pBKuH;^yE;FLX-A~X"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">22:00</field> <field name="END_TIME">01:00</field> </block> </value> <value name="B"> <block type="time_compare" id="9pQI:?/t{DqT;dzd~/?r"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">04:00</field> <field name="END_TIME">08:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="/3Njok1H0A)gm*jcv(zT" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="variables_get" id=")cG,Lnu((@ii6-e`P*yt"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> </block> </value> <value name="B"> <block type="variables_get" id="GisxnNs$x,+=XR1C2@Xg"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="UC1/uT)/,[!nh3lBc9jx"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="6-dTykGCt4riYS;-0WU1"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="E+HXRavQJqb|xdnj5*|I"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="%F#2XVCXscbE)mb$iw8_"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="?X#SDwsiM!EJ==(gof|*"> <value name="IF0"> <block type="logic_compare" id="+W$bowR;Fnn.mr%?m}!."> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="d{SjejI3Jc.jS$xH,!py"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="variables_get" id="QQt-F]0H$SX-e-(1H$]k"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="]qYeOi_q*_)kJVsfOI~|"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="*Nv!rX54$Px9aKq7Smv}"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="schedule" id="M|Vtl:g1vQnXqnI=rhd`" x="-713" y="-187"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="k|xP7WfOAtTvaW8jfX*m"> <mutation name="Lueftung"></mutation> </block> </statement> </block> </xml>
-
@erazor86 sagte:
Komischweise reagiert die Lüftung nicht bei Änderungen von "Schalter WC"
Dann bau mal einen Debug-Block in den Trigger vom "Schalter WC" ein. Es muss eine Ursache haben.
-
Danke! Fehler gefunden... ich hatte mal aus versehen eine zweite shelly Instanz installiert und danach wieder deinstalliert... jedoch tauchen die Objekte noch in der Auflistung auf, sind aber nicht mehr aktiv.... somit war ein Schalter ausgewählt, welchen es quasi gar nicht gibt....
Was hat das eigentlich für einen Sinn, dass man eine Instanz nochmal installieren kann??
Edit:
Habe den Code jetzt nochmal getestet und der zweite Schalter reagiert... Allerdings Schaltet die Lüftung nach 5min aus, auch wenn der Schalter noch an ist... es war ja eigentlich so gedacht, dass es noch eine Nachlaufzeit von 5min gibt, nachdem der Schalter aus ist... Bsp. Ich dusche 20 min und verlasse dann den Raum, die Lüftung zieht noch x min weiter...Scheint zu funktionieren
-
@erazor86 sagte in Lüftungssteuerung/ Raumkühlung:
Was hat das eigentlich für einen Sinn, dass man eine Instanz nochmal installieren kann??
Mehrere Instanzen - Möglichkeiten:
- Unterschiedliche Accounts bei Email, telegram, Alexa usw. usf.
- Unterschiedliche Regionen bei Wetterdiensten
- Vernetzung von mehreren Gebäuden über VPN mit Multihost
- Testen
usw.
-
Ich habe jetzt auch die Temperatursensoren installiert und in Betrieb genommen. Zusätzlich habe ich noch eine weitere Abfrage installiert, die erkennt ob gerade für die Warmwassererzeugung gelüftet wird.
Die zusätzliche Und-Abfrage hatte ich bereits bei der Lüftung ohne Temperatursensoren erfolgreich am laufen.
Ich habe das Skript jetzt mit Temperatursensoren am laufen. Ich habe jedoch zwei Versionen. Eine bei der funktioniert alles und bei der zweiten funktioniert die zeitliche Grundlüftung irgendwie nicht. Ich verstehe aber nicht warum? Der Unterschied liegt lediglich in einer anderen Verschachtelung der Oder-Blöcke.Dieses funktioniert:
Hier funktioniert die Grundlüftung zu den Zeiten nicht:
-
@erazor86 sagte:
Hier funktioniert die Grundlüftung zu den Zeiten nicht:
Das ist nicht nachvollziehbar. Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
Funktioniert:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="=Cu-N/(+[fOov!*{1X@x">Innentemp</variable> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="" id="-T9#d/Yh6U;{M{f]DniR">Lueftung ein</variable> <variable type="" id="OXnt;ZJmTwRv9.;*hM;6">Außentemp</variable> <variable type="" id="y){h[{-4c8ktWE~`t*:b">Schalter WC</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="ll[%4tP{TqAocSN#Fk*;">Schalter Bad</variable> <variable type="" id="KV/H1-c|)w1;egnhdsVk">kuehlen</variable> </variables> <block type="on_ext" id="+k%pF,=%Z9c%=#eFJ6@8" x="-1312" y="-512"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O5Lo}GGvN}}2l9U2a3-7"> <field name="oid">shelly.0.SHSW-1#C41D9D#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="$=6eX%d},];ZQ!G)lD)3"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id=")blSy,7emak;*TR`i3(z"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="TH,]4ws(3H%t54vGbLbZ"> <field name="NAME">timeout1</field> <next> <block type="variables_set" id="Z)73}Vl!lxfRY?q*@bkF"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="w]hvTd@yi0[Yf;uZFf=?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="*r=R$XUXKE:vu7cKGz@~"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="M?6hP.DK~w$Q^8hlTgSq"> <field name="NAME">timeout1</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="hPtMauvSm9R?hQ7VkLZe"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="_3K4Hc5`t^`yGaVs=j!*"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="Z*hZ8ntz$oE@(XiZ%Zx]"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="}hi9w:?BlVjWdW%F$KhO"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="FEG3gasnAT$IoQA-oji_"> <field name="oid">shelly.0.SHSW-1#C4FB4A#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="V?BS?Z?^[y3J:fiPtx=`"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="n`5cB:j^l=#.LB)(jg4g"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id=",k*[oKWBUf3OR[~QLeKF"> <field name="NAME">timeout2</field> <next> <block type="variables_set" id=",,T$clm4g!ixjuZPbGi-"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="b9G7IIp7xL,)*?/r~MZq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="1,^J.Yf`Q[.EdVguqyGf"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="BHaZ1+rl5d=+$@$#(#eu"> <field name="NAME">timeout2</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="YW_E}A#uFD8]sO:zHyGR"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="9$4z)Ig0x^l6FaD5LMKL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="JN%iP8OTLhoRFXHFN`5/"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id=".Kaw7OsOYlt.vGZmxCX=" x="-712" y="-538"> <field name="NAME">Lueftung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="Zm?U~sok-MOQoA?x+3DO"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id=")5*%eQw~X/)iSWqh@}2m" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="a8fGp{mi5QHpFX[)eT[~"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="dGF0@3+S-VB%~6nP[~lm"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#76B4A1#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="8nXe3^3k/b,+1qr!oe95"> <field name="NUM">120</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="rr-%=*`x~RVoK4]UWf1k" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="paeRegepo#AWP;9X,AnB" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="c9/4N(^X6xUL~WSRAWbP" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="time_compare" id="*|^pBKuH;^yE;FLX-A~X"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">21:00</field> <field name="END_TIME">01:00</field> </block> </value> <value name="B"> <block type="time_compare" id="9pQI:?/t{DqT;dzd~/?r"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">05:30</field> <field name="END_TIME">09:30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="/3Njok1H0A)gm*jcv(zT" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="variables_get" id=")cG,Lnu((@ii6-e`P*yt"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> </block> </value> <value name="B"> <block type="variables_get" id="GisxnNs$x,+=XR1C2@Xg"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="||zxB3aSE!8R?9ZSnkE_"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="UC1/uT)/,[!nh3lBc9jx"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="6-dTykGCt4riYS;-0WU1"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="E+HXRavQJqb|xdnj5*|I"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="%F#2XVCXscbE)mb$iw8_"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="?X#SDwsiM!EJ==(gof|*"> <value name="IF0"> <block type="logic_compare" id="+W$bowR;Fnn.mr%?m}!."> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="d{SjejI3Jc.jS$xH,!py"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="variables_get" id="QQt-F]0H$SX-e-(1H$]k"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="]qYeOi_q*_)kJVsfOI~|"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="*Nv!rX54$Px9aKq7Smv}"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="schedule" id="M|Vtl:g1vQnXqnI=rhd`" x="-713" y="-162"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="*_c1Qle_cuS5(VKTDsW)"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> <value name="VALUE"> <block type="get_value" id="a:vTR^xJSQYCZq6k:c}O"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#76BF91#1.ext.temperatureC1</field> </block> </value> <next> <block type="variables_set" id="(q)a-w!exjQ?*;TKo15W"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> <value name="VALUE"> <block type="get_value" id="6DTOcp5A1yeW}UfqbsCg"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#C4E88E#1.ext.temperatureC1</field> </block> </value> <next> <block type="controls_if" id="%rg}7ZPLqR{RS_mMB0d5"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="W6m!,mXM)qqJVk@-=;Sz"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="diKGWi0Lps_aKx*k5}iC"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <block type="math_number" id="~/tv{GjwA($nPrhT~hne"> <field name="NUM">20.7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="PwjV4$:{Cib?Bn^Ch0UE"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="q_pIW16NAj`}!-#%2Lc^"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="=ZJTX9RFTb}n?)z3YSp@"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="7{mXmJE#!|TxHibAnHMU"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="1#~k@Zqs]H(TXjF-CW$d"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <shadow type="math_number" id="idt*l`JL8GUFafr%N/0t"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="8H77mHlQja+jEbdR?cpk"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="_9D1g(JFn4+i$2EIW%V%"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="{lPD{59Q,PCy#ogof8`/"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="OIgfCa/YrB/5T@-nx5Z."> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="v|u#:i{;Hc=ynGdwH}ME"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="#yJb|W@q+7hDfTtzQW;t"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <block type="variables_get" id="YH;#buPT*1__G#,PDxad"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="N[etlxM:^WAt`~$$m*]E"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="Wey5y*lk?|(nu6Z0RW#T"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="29IB;RH{:9]6y12mppJl"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="oE-5mG6=9H5Vy.$,}0jv"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="procedures_callnoreturn" id="k|xP7WfOAtTvaW8jfX*m"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Zeitliche Grundlüftung geht nicht:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="=Cu-N/(+[fOov!*{1X@x">Innentemp</variable> <variable type="" id="-T9#d/Yh6U;{M{f]DniR">Lueftung ein</variable> <variable type="undefined" id="timeout1">timeout1</variable> <variable type="" id="OXnt;ZJmTwRv9.;*hM;6">Außentemp</variable> <variable type="" id="y){h[{-4c8ktWE~`t*:b">Schalter WC</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="" id="ll[%4tP{TqAocSN#Fk*;">Schalter Bad</variable> <variable type="" id="KV/H1-c|)w1;egnhdsVk">kuehlen</variable> </variables> <block type="procedures_defnoreturn" id="hO0I3^cm/F0zYbSre;U{" x="-737" y="-562"> <field name="NAME">Lueftung</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="[,cSzStucFVmU~-hmz7B"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="7*oPP`$KePnoN:5umZD2" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="a8fGp{mi5QHpFX[)eT[~"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="dGF0@3+S-VB%~6nP[~lm"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#76B4A1#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="8nXe3^3k/b,+1qr!oe95"> <field name="NUM">120</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="iW:Mii];zFUkBmw7#b$c" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="-Z~tF6WnSe3.Os@J~DsJ" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="time_compare" id="W#o4d:RW~oHQ]6k,7,kq"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">21:00</field> <field name="END_TIME">01:00</field> </block> </value> <value name="B"> <block type="time_compare" id="O7+r:7,C+Y)%8(c?H!~@"> <mutation end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">05:30</field> <field name="END_TIME">09:30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="20OCn+]V=hr7o4$099?~" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="x,{q21D9-|lwn^}].D5W" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="variables_get" id="oG`I`7rjIAfHB-CmEcud"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> </block> </value> <value name="B"> <block type="variables_get" id="U3g!4h!=i[_:lMvv_uez"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="DN{D?AE6HkxRQ2,aa!bP"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="xGIm@RSn1a8e$SJN+2#0"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="^J)?[fmzBHW;,|8;]QEU"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="@hJ%gX17zS-C6nMX$H,e"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> <value name="VALUE"> <block type="logic_boolean" id="+n.pY6.-c[ilM##G~22/"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="QiE*VlhcBE$jJ8?alSG2"> <value name="IF0"> <block type="logic_compare" id="y@`C~jnV%yL!IB#3D,^l"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="d{SjejI3Jc.jS$xH,!py"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="variables_get" id="!YdTSANG9uz;.+;PLOUf"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Q]=bWm(YJI@p/{l8*h_y"> <mutation delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#12CA6E#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="3T=d0tzfgjr*+|9aneWQ"> <field name="VAR" id="-T9#d/Yh6U;{M{f]DniR" variabletype="">Lueftung ein</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="on_ext" id="+k%pF,=%Z9c%=#eFJ6@8" x="-1312" y="-512"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="O5Lo}GGvN}}2l9U2a3-7"> <field name="oid">shelly.0.SHSW-1#C41D9D#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="$=6eX%d},];ZQ!G)lD)3"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id=")blSy,7emak;*TR`i3(z"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="TH,]4ws(3H%t54vGbLbZ"> <field name="NAME">timeout1</field> <next> <block type="variables_set" id="Z)73}Vl!lxfRY?q*@bkF"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="w]hvTd@yi0[Yf;uZFf=?"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="6rOvy)3[vzt_nHIQiU,2"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="M?6hP.DK~w$Q^8hlTgSq"> <field name="NAME">timeout1</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="hPtMauvSm9R?hQ7VkLZe"> <field name="VAR" id="y){h[{-4c8ktWE~`t*:b" variabletype="">Schalter WC</field> <value name="VALUE"> <block type="logic_boolean" id="_3K4Hc5`t^`yGaVs=j!*"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="JQ`vd0(~y3q#e.jQYKE+"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="}hi9w:?BlVjWdW%F$KhO"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="FEG3gasnAT$IoQA-oji_"> <field name="oid">shelly.0.SHSW-1#C4FB4A#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="V?BS?Z?^[y3J:fiPtx=`"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="n`5cB:j^l=#.LB)(jg4g"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id=",k*[oKWBUf3OR[~QLeKF"> <field name="NAME">timeout2</field> <next> <block type="variables_set" id=",,T$clm4g!ixjuZPbGi-"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="b9G7IIp7xL,)*?/r~MZq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="vqV+3XG_moe_^fURi5^z"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id="BHaZ1+rl5d=+$@$#(#eu"> <field name="NAME">timeout2</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="YW_E}A#uFD8]sO:zHyGR"> <field name="VAR" id="ll[%4tP{TqAocSN#Fk*;" variabletype="">Schalter Bad</field> <value name="VALUE"> <block type="logic_boolean" id="9$4z)Ig0x^l6FaD5LMKL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="1CH[1Z6o#pH8k6;T?tO:"> <mutation name="Lueftung"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> <block type="schedule" id="M|Vtl:g1vQnXqnI=rhd`" x="-738" y="-163"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="*_c1Qle_cuS5(VKTDsW)"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> <value name="VALUE"> <block type="get_value" id="a:vTR^xJSQYCZq6k:c}O"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#76BF91#1.ext.temperatureC1</field> </block> </value> <next> <block type="variables_set" id="(q)a-w!exjQ?*;TKo15W"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> <value name="VALUE"> <block type="get_value" id="6DTOcp5A1yeW}UfqbsCg"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#C4E88E#1.ext.temperatureC1</field> </block> </value> <next> <block type="controls_if" id="%rg}7ZPLqR{RS_mMB0d5"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="W6m!,mXM)qqJVk@-=;Sz"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="diKGWi0Lps_aKx*k5}iC"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <block type="math_number" id="~/tv{GjwA($nPrhT~hne"> <field name="NUM">20.7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="PwjV4$:{Cib?Bn^Ch0UE"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="q_pIW16NAj`}!-#%2Lc^"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="=ZJTX9RFTb}n?)z3YSp@"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="7{mXmJE#!|TxHibAnHMU"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="1#~k@Zqs]H(TXjF-CW$d"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <shadow type="math_number" id="idt*l`JL8GUFafr%N/0t"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="8H77mHlQja+jEbdR?cpk"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="_9D1g(JFn4+i$2EIW%V%"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="{lPD{59Q,PCy#ogof8`/"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="OIgfCa/YrB/5T@-nx5Z."> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="v|u#:i{;Hc=ynGdwH}ME"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="#yJb|W@q+7hDfTtzQW;t"> <field name="VAR" id="=Cu-N/(+[fOov!*{1X@x" variabletype="">Innentemp</field> </block> </value> <value name="B"> <block type="variables_get" id="YH;#buPT*1__G#,PDxad"> <field name="VAR" id="OXnt;ZJmTwRv9.;*hM;6" variabletype="">Außentemp</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="N[etlxM:^WAt`~$$m*]E"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="Wey5y*lk?|(nu6Z0RW#T"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="29IB;RH{:9]6y12mppJl"> <field name="VAR" id="KV/H1-c|)w1;egnhdsVk" variabletype="">kuehlen</field> <value name="VALUE"> <block type="logic_boolean" id="oE-5mG6=9H5Vy.$,}0jv"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="procedures_callnoreturn" id="N+n)-=l+%/!f_-J,/=B%"> <mutation name="Lueftung"></mutation> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@erazor86 sagte:
Zeitliche Grundlüftung geht nicht:
Bei mir funktioniert es: Habe Log-Ausgabe von Variable Lueftung_ein am Ende der Funktion ergänzt und erhielt als Ergebnis false; nach Änderung der Endzeit von 9:30 auf 11:30 war das Ergebnis true.
Die Abfrage ist völlig in Ordnung:if (getState("shelly.0.SHSW-PM#76B4A1#1.Relay0.Power").val < 120 && (compareTime("21:00", "01:00", "between") || compareTime("05:30", "11:30", "between") || Schalter_WC || Schalter_Bad || kuehlen)) {
-
jetzt habe ich es auch nochmal getestet und siehe da es geht?! wer weiß, was ich da zwischenzeitlich wieder falsch simuliert habe
könntest du aber bitte mal den code einfügen, indem du diese Testabfrage eingebaut hast? das habe ich noch nicht so ganz verstanden und könnte mir bei so manchen Analysen helfen... Danke!
-
@erazor86 sagte:
indem du diese Testabfrage eingebaut hast?
Das ist die Zeile 5 des Ergebnisses der Blockly-Übersetzung nach Javascript, zu sehen mit dem Button rechts oben blockly/JS. Oder meinst Du die Log-Ausgabe ?