NEWS
[gelöst]: Bei Scrip-Start alle Sensoren abfragen
-
Hallo,
ich verwende zum Einlesen der Fensterkontakte:$('state(functions=fensterkontakt)') .on(function(obj) { }
Die Funktion wird bei jeder Kontakt-Änderung aufgerufen.
Ich suche jetzt eine Möglichkeit, dass beim Script-Start ALLE Kontakte neu
eingelesen werden, weil ja sonst der Status der Kontakte nicht stimmt.Vielen Dank schon mal.
-
@hanss sagte:
Möglichkeit, dass beim Script-Start ALLE Kontakte neu eingelesen werden
$('state(functions=fensterkontakt)').each(function(id, i) { let val = getState(id).val; // val auswerten });
-
@paul53
Hallo paul,
vielen Dank für die Antwort, die mich etwas überfordert.- Was ist der Unterschied zwischen "on" und "each"?
- Welchen Wert wird wann der Variablen i zugewiesen?
Problem: each reagiert nicht mehr auf Kontakt-Änderungen
-
@hanss sagte:
Was ist der Unterschied zwischen "on" und "each"?
on ist ein Trigger, der auf Wertänderungen eines der Datenpunkte des Selektors reagiert.
each ist eine Schleife über alle IDs des Selektors@hanss sagte in Bei Scrip-Start alle Sensoren abfragen:
Welchen Wert wird wann der Variablen i zugewiesen?
Das ist eine Zählvariable, die von 0 bis ID-Anzahl - 1 durchnummeriert.
@hanss sagte in Bei Scrip-Start alle Sensoren abfragen:
each reagiert nicht mehr auf Kontakt-Änderungen
Man benötigt beides.
const idsFenster = $('state(functions=fensterkontakt)'); function abfrage() { idsFenster.each(function(id, i) { let val = getState(id).val; // val auswerten }); } idsFenster.on(abfrage); // triggert bei Wertänderungen abfrage(); // Scriptstart
-
@paul53
Vielen Dank, paul53Ich habe mich vor 40 Jahren mit Z80 Assembler und MS Basic herumgeschlagen.
Da kann man sich gar nicht so richtig vorstellen, welche Möglichkeiten JS bietet.
Jetzt habe ich aber verstanden was Du gemeint hast.
Vielen Dank nochmals für die ausführliche Hilfe.
VG Hans -