Hallo,
hab das mal schnell im Online-Editor geschrieben. Das sollte auch gehen und nutzt RegExp. Als Beispiel und Denkanstoß
debug kann man weglassen (natürlich dann auch die Logzeile)
Einzeilige Kommentare mit // beginnen, mehrzeilige Kommentare in /* und */ einschließen
Hinweis: in der if-Abfrage ist das Ausrufezeichen genutzt. Das ist die Kurzschreibweise für die Abfrage auf false.
Grundsätzlich gilt ja: wenn mindestens ein Gerät auf true, dann anwesend. Wenn alle Geräte auf false, dann abwesend.
/* Andrea und Christian Handy auf Anwesenheit prüfen
Regexp auf radar.0.Christian_Tablet.here und radar.0.Andrea_Handy.here */
var debug = true;
// Bei Änderung
on(/^radar\.[0-9]\.*here$/, function (obj) { // Triggert bei Wertänderung
if (debug) log('Anwesenheitserkennung: ' + obj.common.name + ' auf ' + obj.state.val + ' gesetzt ' >;
if (obj.state.val) setState("hm-rega.0.950", true); // wenn ein Trigger true, dann anwesend
else {
if (!getState('radar.0.Andrea_Handy.here').val && !getState('radar.0.Christian_Tablet.here').val) setState("hm-rega.0.950", false); // wenn jetzt beide false dann abwesend
}
});
// bei Skriptstart
if (getState('radar.0.Andrea_Handy.here').val || getState('radar.0.Christian_Tablet.here').val) setState("hm-rega.0.950", true);
else setState("hm-rega.0.950", false);
Ach, mit der Vorschau Funktion im Forum-Editor kann man den Text nochmal prüfen und ggf. Schreibfehler finden 😄
Gruß
Pix