NEWS
[gelöst] Änderung durch Script oder manuell am Gerät
-
Hallo Zusammen,
ich beiße mir derzeit an einem Problem die Zähne aus und hoffe auf Eure Hilfe.
Ich stelle die Soll-Temperatur für die Heizung über ein Script, in Abhängigkeit der Luftfeuchte, ein.
Darüber hinaus möchte ich am Wandthermometer (Homematic IP) die Soll-Temperatur auch bei Bedarf manuell verändern.
Damit diese manuelle Änderung nicht wieder durch das Script überschrieben wird, ist es m.E. erforderlich den Ursprung der Soll-Temperatur-Änderung zu identifizieren.
Die Anforderung:
Die Raumtemperatur soll auf die SOLL-Temperatur in Abhängigkeit der Luftfeuchte eingestellt werden.
Dieser Automatismus, soll durch die manuelle Änderung der Soll-Temperatur am Wandthermostat ausgesetzt werden (Wandthermostat ist mit dem Heizungsthermostat gekoppelt).
Der Automatismus soll erst dann wieder aktiviert werden, wenn ein Abwesenheit (Bewegungsmelder) im Raum erkannt wird.
Die im folgenden dargestellt Vorgehensweise funktioniert leider nicht sauber:
a) Ein Script stellt Soll-Temperatur (SET_POINT_TEMPERATURE) im Heizungs- und Wandthermostat ein,
wenn das Flag "auto" den Wert "open" oder "undefined" beinhaltet.
a1) Das Flag "auto" wird dann auf "script" gesetzt.
a2) Mit Setzen des Datenpunktes "SET_POINT_TEMPERATURE" wird der Triggerpunkt "on(….SET_POINT_TEMPERATUR)" angesprungen.
b) Über den Triggerpunkt "on(....SET_POINT_TEMPERATUR)" des Wandthermostats wird das Flag "auto"
b1) auf "undefined" gesetzt, wenn das Flag zuvor auf "script" stand, bzw.
b2) auf "manuell" gesetzt, wenn das Flag zuvor auf "manuell", "open" oder "undefined" stand.
c) Das Flag wird auf "open" gesetzt, wenn der Bewegungsmelder eine "Abwesenheit" festgestellt hat.
Wird eine die Soll-Temperatur am Wandthermostat eingestellt, wird die oben beschriebene Position b) aktiviert und das Elend beginnt.
Habt ihr eine Idee?
Gruß
Thomas
-
Die Raumtemperatur soll auf die SOLL-Temperatur in Abhängigkeit der Luftfeuchte eingestellt werden.
Dieser Automatismus, soll durch die manuelle Änderung der Soll-Temperatur am Wandthermostat ausgesetzt werden (Wandthermostat ist mit dem Heizungsthermostat gekoppelt).
Der Automatismus soll erst dann wieder aktiviert werden, wenn ein Abwesenheit (Bewegungsmelder) im Raum erkannt wird. `
Vielleicht so ?const idSW = '...'; // ID Sollwert WT const idBM = '...'; // ID Bewegungsmelder const idFeuchte = '...'; // ID Feuchte var autoSW; // aus Feuchte berechneter Sollwert var manu = false; // Indikator "Manu" var feuchte = getState(idFeuchte).val; function SW() { ... // Berechnung des Sollwertes und Speicherung in autoSW if(!manu) setState(idSW, autoSW); } SW(); // Skriptstart on(idFeuchte, function(dp) { feuchte = dp.state.val; SW(); }); on(idSW, function(dp) { if(dp.state.val < autoSW - 0.6 || dp.state.val > autoSW + 0.6) manu = true; }); on(idBM, function(dp) { if(!dp.state.val) manu = false; // Abwesenheit });
-
Hallo Paul53,
vielen Dank.
Deine Idee, die berechnete Temperatur mit der manuell eingestellten Temperatur zu vergleichen, war der Durchbruch.
Manchmal kann es so einfach sein.
Das Verfahren funktioniert jetzt ausreichend genau.
Nur in dem Fall, dass die manuell eingestellte Temperatur der berechneten Temperatur entspricht, wird der manuelle Modus nicht gesetzt.
Das ist aber für meinen Fall nicht weiter tragisch.
Gruß
Thomas
-
Das Verfahren funktioniert jetzt ausreichend genau. `
Dann markiere bitte das Thema als [gelöst] (im ersten Beitrag).