Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] $-Selektor: Triggern bei enum-Änderungen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    893

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] $-Selektor: Triggern bei enum-Änderungen

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 441 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • FoodFighterF Offline
    FoodFighterF Offline
    FoodFighter
    schrieb am zuletzt editiert von FoodFighter
    #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);
    });
    

    Screenshot 2020-04-25 12.14.38.png
    Screenshot 2020-04-25 12.16.50.png

    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 Änderung

    Hier 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

    paul53P 1 Antwort Letzte Antwort
    0
    • FoodFighterF FoodFighter

      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);
      });
      

      Screenshot 2020-04-25 12.14.38.png
      Screenshot 2020-04-25 12.16.50.png

      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 Änderung

      Hier 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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @FoodFighter sagte:

      keine Ausgabe der Aufzählungs-Teilnehmer:

      Die ID lautet "enum.functions.TEST" (TEST groß geschrieben) ?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      FoodFighterF 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @FoodFighter sagte:

        keine Ausgabe der Aufzählungs-Teilnehmer:

        Die ID lautet "enum.functions.TEST" (TEST groß geschrieben) ?

        FoodFighterF Offline
        FoodFighterF Offline
        FoodFighter
        schrieb am zuletzt editiert von FoodFighter
        #3

        @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.

        Screenshot 2020-04-25 14.13.06.png

        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!

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        531

        Online

        32.6k

        Benutzer

        82.1k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe