NEWS
Status von Aufzählung in JS Regelmäßig abfragen
-
Ich stehe auf dem Schlauch, und denke, dass ich es eigentlich grundsätzlich begriffen habe, wie die Abfrage zu erfolgen hat.
Leider ist mein Objekt in Javascript aber immer leer.
Dabei ist es egal, ob ich das "F" von Fensterkontakt gross oder klein schreibe. Das Ergebnis bleibt das gleiche. Bevor ich hier kein Ergebnis habe, brauche ich in meiner weiteren Programmierung gar nicht weiter machen :?
1534_bild002.png
1534_bild003.png -
In der Aufzählung sind nur Datenpunkte (state). Versuche es mal so:
var fensterkontakt = $('state(functions=Fensterkontakt)'); fensterkontakt.each(function (id, i) { log(id); });
-
Danke für deine Unterstützung. Leider gibt mir dein Code aber ebenfalls NICHTS aus :?
Edit: Habs. Danke für deinen Schubser:
var fensterkontakt = $('state(functions="fensterkontakt")'); log(JSON.stringify(fensterkontakt));
Bei mir funktioniert es nur mit Hochkommata :geek:
-
Und hier noch mein halbfertiger Code für die Nachwelt
Mein Schädel brummt - reicht für heute :lol:
createState('Fensterkontakt.Offen.Anzahl', 0); createState('Fensterkontakt.Offen.Text', ''); createState('Fensterkontakt.Gekippt.Anzahl', 0); createState('Fensterkontakt.Gekippt.Text', ''); var fensterkontakt = $('state(functions="fensterkontakt")'); setInterval(function () { var AnzahlOffen = 0; var TextOffen = 'Folgende Fenster sind offen: '; var AnzahlGekippt = 0; var TextGekippt = 'Folgende Fenster sind gekippt: '; fensterkontakt.each(function(id) { // 0 = Geschlossen // 1 = Offen // 2 = Gekippt var val = getState(id).val; var obj = getObject(id); if(val > 0) { if(val == 1) { AnzahlOffen++; TextOffen = TextOffen + obj.common.name + ', '; } else if(val == 2) { AnzahlGekippt++; TextGekippt = TextGekippt + obj.common.name + ', '; } } }); setState("Fensterkontakt.Offen.Anzahl", AnzahlOffen); setState("Fensterkontakt.Offen.Text", TextOffen.substring(0, TextOffen.length - 2)); setState("Fensterkontakt.Gekippt.Anzahl", AnzahlGekippt); setState("Fensterkontakt.Gekippt.Text", TextGekippt.substring(0, TextGekippt.length - 2)); }, 1000);