NEWS
Gelöst: On Change
-
@harrym hab die VAR noch mal mit angefügt
Aktuell ist die Temperatur 30 und SW_Temp 27Normalerweise sollte "on({ id: Temperatur, change: 'any' }, function () {" bei Änderung triggern, tut s aber nicht
-
@michihorn du triggerst auf ne variable?
-
@harrym das war der Plan. Sobald sich der Wert der VAR ändert soll das Script laufen.
-
@michihorn schreib die variable in nen datenpunkt und trigger dann auf den datenpunkt
-
@harrym Ich habe ja extra mit den globalen Variablen experimentiert, so das ich nicht noch weitere DP anlegen muß, denn der DP ist ja über RPC2 angelegt. Um Schreibkram beim Programmieren zu minimieren wollte ich die Globalen Variablen nutzen
-
@michihorn sagte:
Um Schreibkram beim Programmieren zu minimieren wollte ich die Globalen Variablen nutzen
Man kann trotzdem nicht auf einen Wert triggern, sondern nur auf eine ID. Ändere es besser in eine Funktion ids_holen();
function ids_holen() { let idAußenTemperatur = "hm-rpc.2.00185BE98B3FCA.1.ACTUAL_TEMPERATURE"; let idTemperatur ="hm-rpc.0.OEQ0128317.1.TEMPERATURE"; //Wintergarten let idLux = "hm-rpc.2.00185BE98B3FCA.1.ILLUMINATION"; //LUX Wetterstation let idLuxInnen = "hm-rpc.2.000D58A9915658.1.CURRENT_ILLUMINATION"; //LUX Wintergarten let idRegen = "hm-rpc.2.00185BE98B3FCA.1.RAINING"; let idWind = "hm-rpc.2.00185BE98B3FCA.1.WIND_SPEED"; let idAnwesenheit = "javascript.0.Anwesenheitssteuerung.Userlist.JemandDa"; return { AußenTemperatur: idAußenTemperatur, Temperatur: idTemperatur, Lux: idLux, LuxInnen: idLuxInnen, Regen: idRegen, Anwesenheit: idAnwesenheit, Wind: idWind, }; }
-
@paul53 Und wie nehme ich im entsprechenden Script Bezug auf die Variablen? Genau wie vorher auch?
-
@michihorn sagte:
Bezug auf die Variablen? Genau wie vorher auch?
Ja, nur mit dem Unterschied, dass keine Werte, sondern IDs enthalten sind.
-
@michihorn sagte:
Bezug auf die Variablen? Genau wie vorher auch?
Ja, nur mit dem Unterschied, dass keine Werte, sondern IDs enthalten sind.
Danke das hilft mir weiter
-
@michihorn
Dein Script mit IDs könnte so aussehen:const ids = ids_holen(); const idSW_Temp = 'javascript.0.Garten.Markisse.SW_Temp'; // Auslösewert Temp on(ids.Temperatur, function (dp) { if (dp.state.val <= getState(idSW_Temp).val) { log("ist kleiner"); setState("javascript.0.Garten.Markisse.Bedingung_2", 0) } else { setState("javascript.0.Garten.Markisse.Bedingung_2", 1) log("ist größer"); }; });