NEWS
Variable aktualiesiert sich zuspät
-
Hy Forum,
ich bin gerade dabei meine Heizung zu Automatisieren das sie bei Anwesenheit angeschaltet wird und bei Abwesenheit aus.
createState("javascript.0.Heizung.HeizungsAutomatik", false); createState("javascript.0.Heizung.HeizungsTemp", false); var Bewohner = "javascript.0.Bewohner"; var getBewohner = getState(Bewohner).val; var setHeizungsTemp = "javascript.0.Heizung.HeizungsTemp"; var wert = getState(setHeizungsTemp).val; function HeizungsAutomatik() { if (getBewohner === "Anwesend") { setState(setHeizungsTemp, 7); HeizungsGruppe(wert); } else if (getBewohner === "Abwesend") { setState(setHeizungsTemp, 12); HeizungsGruppe(wert); } } function HeizungsGruppe(wert) { setState("hm-rpc.0.KEQ0431868.4.SET_TEMPERATURE", wert); setState("hm-rpc.0.KEQ0432078.4.SET_TEMPERATURE", wert); setState("hm-rpc.0.KEQ0509706.4.SET_TEMPERATURE", wert); setState("hm-rpc.0.OEQ0664841.4.SET_TEMPERATURE", wert); setState("hm-rpc.0.OEQ0665958.4.SET_TEMPERATURE", wert); } on(Bewohner, function(dp) { getBewohner = dp.state.val; HeizungsAutomatik(); });
nun zu meinem Problem wenn ich den Status ändere von Anwesend auf den Wert Abwesend gehen die Heizungen auf den Wert Anwesend und umgekehrt quasi die variable wert hängt ein Schritt hinten dran.
Kann mir jemand ein tip geben woran es hängt??
Gruß RedOne
-
Mal davon ausgegangen, dass die Variable, von der du schreibst, auf der CCU ist, gibt es da eine Einstellung, wie oft Daten abgeglichen werden. Sieh mal in den Einstellungen von hm-rega bzw hm-rpc nach.
Ich kann grad nicht nachsehen.
Enrico
-
ne die Variabe bzw den Datenpunkt habe ich auf iobroker erstellt HeizungsTemp
soweit funktioniert bisher auch alles nur so wie ich die HeizungsGruppe mit einbinde in mein Script hängt die variable wert einen schritt hinten dran
-
Die Variable wert wird nur einmal bei Skriptstart initialisiert und nicht aktualisiert. Enthält der Datenpunkt mit der ID "javascript.0.Bewohner" tasächlich die Zeichenkette "Anwesend" bzw. "Abwesend" ? Dann könnte die Funktion HeizungsAutomatik() so aussehen:
function HeizungsAutomatik() { if (getBewohner === "Anwesend") wert = 7; else wert = 12; setState(setHeizungsTemp, wert); HeizungsGruppe(wert); }
-
Danke paul53 wenn ich dich nicht hätte
Es funktioniert.
Und wenn ich es richtig verstanden habe muss ich den wert der variable gar nicht auslesen sondern nur setzen?
vorher:
var wert = getState(setHeizungsTemp).val;
nachher:
var wert;