@tmartin
Hier mal ein Skript was ich längere Zeit genutzt habe, vielleicht hilft es dir ja. Habe da einen Timer eingebaut, weil ich erst wollte, dass die Heizung runter geht, wenn das Fenster 10 min offen ist.
Wenn du die Variablen anpasst und eventuell den Timer, dann sollte es funktionieren.
//Variablen Wohnzimmer
const id_EG_Wohnzimmer = 'javascript.0.Heizung.Fensterauswertung.EG_Wohnzimmer.IsOpen'/*Fenster offen?*/
const id_EG_W_Thermostat_Manu = 'hm-rpc.0.MEQ0236893.2.MANU_MODE'/*Wandthermostat Wohnzimmer MANU MODE*/
const id_EG_W_Thermostat_Auto = 'hm-rpc.0.MEQ0236893.2.AUTO_MODE'/*Wandthermostat Wohnzimmer AUTO MODE*/
var EG_Wohnzimmer = getState(id_EG_Wohnzimmer).val;
//Variablen Küche
const id_EG_Küche = 'javascript.0.Heizung.Fensterauswertung.EG_Küche.IsOpen'/*Fenster offen?*/
const id_EG_K_Thermostat_Manu = 'hm-rpc.0.NEQ1802941.2.MANU_MODE'/*Wandthermostat Küche MANU MODE*/
const id_EG_K_Thermostat_Auto = 'hm-rpc.0.NEQ1802941.2.AUTO_MODE'/*Wandthermostat Küche AUTO MODE*/
var EG_Küche = getState(id_EG_Küche).val;
//Ab hier eigentliches Script
var timer = null;
//Wohnzimmer
function Wmode() {
if (EG_Wohnzimmer) {
timer = setTimeout(function() {
// Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
setState(id_EG_W_Thermostat_Manu, 17);
log('Fenster im Wohnzimmer auf - Heizung ist aus');
},600000); // 10 Minuten
}
else {
if(timer) clearTimeout(timer);
setState(id_EG_W_Thermostat_Auto, true);
log('Fenster im Wohnzimmer zu - Heizung ist an');
}
};
//Küche
function Kmode() {
if (EG_Küche) {
timer = setTimeout(function() {
// Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
setState(id_EG_K_Thermostat_Manu, 17);
log('Fenster in der Küche auf - Heizung ist aus');
},600000); // 10 Minuten
}
else {
if(timer) clearTimeout(timer);
setState(id_EG_K_Thermostat_Auto, true);
log('Fenster in der Küche zu - Heizung ist an');
}
};
Wmode(); // Skripstart Wohnzimmer
on({id: id_EG_Wohnzimmer, change: "ne"}, function(obj) {
EG_Wohnzimmer = obj.state.val;
Wmode();
});
Kmode(); // Skripstart Küche
on({id: id_EG_Küche, change: "ne"}, function(obj) {
EG_Küche = obj.state.val;
Kmode();
});