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
-
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) ?
-
@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 :man-facepalming:
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.idmachen.
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!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden