NEWS
[gelöst] $-Selektor: Triggern bei enum-Änderungen
-
Hallo allerseits.
In mehreren Beiträgen habe ich gelesen, dass es möglich ist eine Änderung in einer enum-Aufzählung über den $-Selektor auszulesen und einen Script darüber zu triggern.Das ganze soll ungefähr so funktionieren:
$('channel[state.id=*](functions=TEST)').on(function(obj) { console.log("####Dieser test wurde geändert: " + obj.id); });
Scheinbar mache ich noch irgendwas falsch - ich bekomme keine Ausgabe mit diesem Script.
Die JS-Instanz wurde nach Anlegen der Aufzählung und Hinzufügen der Teilnehmer neu gestartet.Weiterhin erhalte ich mit folgendem Script auch keine Ausgabe der Aufzählungs-Teilnehmer:
var Testvar = $('state[id=*](functions=TEST)'); Testvar.each(function(id, i) { log(id); });
Hier beschreibt @paul53 wie das mit den POWER-States des Sonoff-Adapters funktionieren sollte.
Testweise habe ich auch mal zwei POWER-States vom Sonoff-Adapter der Aufzählung "TEST" hinzugefügt -> JS restart -> Script gestartet wie vorgegeben -> keine ÄnderungHier gibt es weitere Beispiele
Sinn und Zweck der Aktion ist, dass ich gerne einen Ladezustands-Script hätte, der einfach alle Teilnehmer bzw. Objekte einer angelegten Gruppe "Akku" überwacht, bei jeder Akku-Wert-Änderung getriggert wird, anschließend kontrolliert ob der Ladezustand noch über 15% ist und falls nicht eine Telegram-Nachricht absetzt.
Der Rest ist kein Problem - es scheitert nur am Trigger durch eine Änderung eines enum-Objektes.
Es wäre halt sehr komfortabel den Script nicht bei jedem neuen Gerät ändern zu müssen.Javascript-Adapter: 4.5.1
-
@FoodFighter sagte:
keine Ausgabe der Aufzählungs-Teilnehmer:
Die ID lautet "enum.functions.TEST" (TEST groß geschrieben) ?
-
@paul53 said in $-Selektor: Triggern bei enum-Änderungen:
Die ID lautet "enum.functions.TEST" (TEST groß geschrieben) ?
Oh...wow...Danke
Der Name war "TEST", die id natürlich "enum.functions.test" ... manchmal ist es dann doch so einfach.Der untere Teil des Scripts funktioniert jetzt.
Wenn ich aber das Licht "WZ_Couch_Licht" einschalte und damit der Datenpunkt "POWER" von false auf true wechselt, sollte doch der obere Script eine Log-Ausgabe mit"####Dieser test wurde geändert: " + obj.id
machen.
Das funktioniert noch nicht.
Dabei wäre genau das der Trigger, den ich bräuchte.
Ich vermute hier noch einen ähnlichen Schusselfehler.[Edit:]
So funktioniert es:$('state[id=*](functions=test)').on(function(obj) { console.log("####3###Dieser test wurde geändert: " + obj.id); });;
Vielen Dank für deine Hilfe!