@simpixo:
Du benutzt in deinem Script 4 Drehgriffsensoren. Ich würde gern mehr nutzen können, wäre das Problemlos möglich? Oder muss im Script was angepasst werden? `
Ja, das geht sicher. Allerdings nicht "von Haus aus".
Du musst einfach entsprechend weitere Datenpunkt-IDs anlegen und diese deklarieren und initialisieren:
// Datenpunkt-IDs
var idNEUlueften = "hm-rpc.0.LEQXXXXXXX.1.STATE"; // Weiterer Sensor
// Variablendeklaration und Initialisierung bei Scriptstart
var stateNEUlueften = getState(idNEUlueften).val;
Anschließend musst du natürlich die Bedingungen der Funktion nach deinen Wünschen anpassen bzw. erweitern. Beispiel:
// Funktion zum Setzen des Status bei Lüften OG
function setStatus() {
var stateDaily = getState(idDaily).val;
if (stateDaily === true) { // Wenn og_daily = true
if (stateBOlueften !== 0 && stateSZlueften !== 0 && stateK1lueften !== 0 && stateK2lueften !== 0 && stateNEUlueften !== 0) { // Wenn alle Fenster offen
setState(idStatus, 1); // Es wird gerade gelüftet!
} else if (stateBOlueften === 0 && stateSZlueften === 0 && stateK1lueften === 0 && stateK2lueften === 0 && stateNEUlueften === 0) { // Wenn alle Fenster geschlossen
setState(idStatus, 3); // Heute bereits gelüftet!
} else if (stateBOlueften !== 0 || stateSZlueften !== 0 || stateK1lueften !== 0 || stateK2lueften !== 0 || stateNEUlueften !== 0) { // Wenn mindestens ein Fenster offen
setState(idStatus, 4); // Fenster gerade offen, kein echtes Lüften!
}
} else if (stateDaily === false) { // Wenn og_daily = false
if (stateBOlueften !== 0 && stateSZlueften !== 0 && stateK1lueften !== 0 && stateK2lueften !== 0 && stateNEUlueften !== 0) { // Wenn alle Fenster offen
setState(idStatus, 1); // Es wird gerade gelüftet!
setState(idDaily, true);
} else if (stateBOlueften !== 0 || stateSZlueften !== 0 || stateK1lueften !== 0 || stateK2lueften !== 0 || stateNEUlueften !== 0) { // Wenn mind. ein Fester offen
setState(idStatus, 4); // Fenster gerade offen, kein echtes Lüften!
} else if (stateOutTemp > stateSZTemp) { // Wenn Außentemperatur größer Innentemperatur
setState(idStatus, 2); // Lüften nicht sinnvoll!
} else { // Für alle anderen Fälle
setState(idStatus, 0); // Heute noch nicht gelüftet!
}
}
}
Und zum Schluss dann am Besten noch auf den zusätzlichen Sensor triggern und die Funktion ausführen lassen:
// Aufruf der Funktionen bei Änderung der Stati
on(idNEUlueften, function(dp) {
setTimeout(function(){
stateNEUlueften = dp.newState.val;
setStatus();
}, 1000);
});
MfG,
André