NEWS
Anwesenheitsscript HZ bei offenem Fenster aussetzen
-
Servus z´sammen,
ich steuere mit Hilfe eines Anwesenheitsscript´s meine HZ im Wohnzimmer (Testweise). Da wir unterschiedliche Arbeitszeiten haben und meine Frau auch verschiedene Tage in der Woche frei hat, kann ich das schlecht mit festen Zeiten regeln und über die Anwesenheit ist es ganz praktisch gelöst. Ist einer von uns daheim geht die Heizung an. Soweit funktioniert auch alles.....Jetzt aber meine Frage: Wie kann ich das Script aussetzen lassen wenn mein Fensterkontakt "offen" meldet ?? Wenn ich das Fenster öffnet reagiert meine Heizung zwar sofort darauf aber nach 5 Minuten stellt das Script wieder die normale Temp ein, da ja jemand zuhaus ist.
Verbautes Thermostat: Comet DECT
FritzBox: 7530
Fensterkontakt: Tuya / SmartLifeHier mal das Script das ich verwende:
Vielleicht hat ja einer ne Idee oder das schon umgesetzt.
Gruß Frank
-
Schon mal den Adapter getestet?
https://forum.iobroker.net/topic/22579/test-adapter-heatingcontrol-v1-0-x
-
@sigi234
Ja hab ich mir schon mal angeguckt. Bin ich aber noch nicht wirklich durchgestiegen mit den ganzen Möglichkeiten.Ich werd das aber im Hinterkopf behalten falls ich es nicht hinbekomme mit meinem Weg.
-
@Fizh-Kopp Unter der Voraussetzung, dass idLow der gleiche Wert ist, wie bei einem offenen Fenster, musst du doch nur im if-Statement zusätzlich prüfen, ob das Fenster geschlossen ist.
Oder habe ich deine Frage falsch verstanden? -
So, nachdem ich nun nochmal ein wenig mit dem HeatingControl "rumgespielt" habe muss ich sagen das mir das viel zu umfangreich ist für meine kleine Hütte. Ich hab im ganzen nur 5 Heizkörper die ich Smart gemacht habe.
Da ich an 4 HZ noch die Tuya-Thermostaten habe (werden ausgetauscht gegen DECT) werde ich diese erstmal umrüsten und dann für jeden Raum das Skript einsetzten.
Wie ich dann die Kontaktabfrage mache weiß ich noch nicht aber da finde ich auch noch eine Lösung. Ich bin was das Skripten angeht absoluter Neuling und brauch noch ein wenig Zeit bis ich da 100% durchsteige.
@Chrunchy vorgestellt habe ich mir, das bei Abwesenheit die idLow greift aber bei offenem Fenster der Thermostat komplett aus geht. Momentan hab ich das über Alex gelöst mit einer Routine. Das angewendete Script setzt hier nach 5 Minuten natürlich wieder die comfytemp ein......... kann ich das Script über ein zweites Script stoppen wenn das Fenster aufgeht und wieder starten wenn das Fenster geschlossen wird ??
Gruß Frank
-
@Fizh-Kopp Ich gehe davon aus, dass dein FK im iobroker ist. Dann gibt es einen State open, der auf true steht.
Ausgehend von deinem Script, würde ich dein if-Statement wie folgt umschreiben...
if FK.open.val Thermostat ausschalten
else if deine if-statement gefolgt vom bisherigen else.
Deinen Trigger wirst du aber auch nochmal überdenken müssen...
Stand jetzt, kann das Fenster 4:59 offen sein, bevor der Cron wieder läuft und es erkennt. Auch bleibt dein Thermostat bei 16 stehen, wenn du um 23:00 Uhr das Fenster öffnest.Ich persönlich gehe etwas anders an solche Aufgaben ran. Ich nutze eigene States im iobroker. Mit den Scripten überwache ich diese dann auf Veränderung und reagiere entsprechend darauf.
Beispiel:
Angenommen es gibt einen State ZielTemperatur.
Dann brauchst du ein Script, welche bei einer Änderung des States ZielTemperatur den neuen Wert an das Themostat übermittelt. (Damit ist deine Heizungssteuerung schon mal fast fertig.)
Was jetzt noch fehlt, sind Scripte, welche den Wert von ZielTemperatur ändern, in Abhängigkeit von Ereignissen die Eintreten (Fenster offen, An-/Abwesenheit, Uhrzeit)Beispiel: Bei Änderung von ZielTemperatur, neuen Wert an das Thermostat
const ZielTemp = "javascript.0.ZielTemperatur"; const idTarget = "fritzdect.0.Comet_14078017xxxx.targettemp"/Target Temp/; //Wohnzimmer on({id: ZielTemp,change:'ne'}, function (obj) { setState(idTarget, obj.state.val); });