createState('Watchdogs.Lichter.WieVieleSindOffen', 0); createState('Watchdogs.Lichter.WelcheSindOffen', " "); var cacheSelectorLICHTER = $('channel(functions=Licht)[state.id=*.STATE]'); function countLichter(obj) { var textLICHTER = []; cacheSelectorLICHTER.each(function (id, i) { var status = getState(id).val; var obj = getObject(id); if (status === true && textLICHTER.indexOf(obj.common.name.substr(0, obj.common.name.indexOf(':'))) === -1) { textLICHTER.push(obj.common.name.substr(0, obj.common.name.indexOf(':'))); } }); setState("Watchdogs.Lichter.WelcheSindOffen", textLICHTER.join(', ')); setState("Watchdogs.Lichter.WieVieleSindOffen", textLICHTER.length); } cacheSelectorLICHTER.on(function(obj) { countLichter(obj); }); schedule("0 */1 * * *", function () { countLichter(); });Inzwischen zählt er doch. Habe nichts geändert (außer js-controller update und damit auch iobroker neugestartet).
Mein Problem sind jetzt aber die Geräte von homematic IP, die haben zwei Kanäle mit STATE, die auch beide reagieren wenn Licht angehen.
Eine Möglichkeit wäre vielleicht wenn ich dem einen nicht mehr zuordne der Function Licht. Aber man es sicherlich auch so programmieren dass doppelte Namen nicht doppelt gezählt werden sollen. `
Probier es mal da mit..
Gruß `
Cool. Läuft!
NEWS
Subcategories