NEWS
Hilfe bei getEnum
-
Hallo zusammen,
Ich brauche mal eure Hilfe. Mit der Funktion getEnum("rooms") erhält man ja eine Liste aller Räume, die man angelegt hat.
Nun möchte ich aber gerne eine Aufzählung einlesen, die fensterkontakte heisst. Ersetze ich oben "rooms" durch "fensterkontakte" , bekomme ich keine Rückgabe, auch nicht, wenn ich "functions.fensterkontakte" übergebe.
Mache ich hier irgendetwas falsch, oder geht das nur mit "rooms" und "functions", also den Oberkategorien?
Danke und Gruß
Danyo -
Was genau hast du vor?
Du kannst z.B. sowas verwenden:
$('channel(functions=fensterkontakte)[state.id=*.STATE]').each(function (id, i) { var status = getState(id).val; log(id + ': ' + status); });
Das liest dir jeden Wert aus der Aufzählung "fensterkontakte" aus bei dem die State ID auf .STATE endet..
Du kannst auch mit dem getEnum('functions'); arbeiten - und dann durchlaufen lassen bis du deine Fensterkontakte gefunden hast..
z.B. so:getEnums('functions').forEach(function (obj) { if (obj.id === 'enum.functions.fensterkontakte') { log(obj.members); } });
(Bitte Groß-/Kleinschreibung bei der Angabe beachten.. Wenn deine Aufzählung Fensterkontakte heißt, du aber nach fensterkontakte fragst, bekommst du nichts zurück!)
Gruß
-
Hi BuZZy,
danke erstmal für die Antwort.
Ich möchte in meiner Visualisierung für meine Fenstersensoren einen Status anzeigen. Für die Visualisierung nutze ich das Material Theme von Uhla. Dort hat man die Möglichkeit sich States anzeigen zu lassen. Diese basieren aber auf numerischen Werten. Meine (Homematic) Fenstersensoren liefern aber "true" oder "false". Von daher wollte ich mir per Skript einen zusätzlichen Datenpunkt anlegen, welche dann für den korrespondierenden Fensterkontakt für True eine 1 anzeigt und für False eine 0.
Damit ich das nicht für jeden Kontakt machen muss, wollte ich die Aufzählung auslesen, und den Code etwas generischer halten.
Oder gibt es noch ne bessere Lösung. Bin für alle Vorschläge offen
Danke und Gruß
Danyo