Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] $-Selektor: Triggern bei enum-Änderungen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • FoodFighter
      FoodFighter last edited by 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

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @FoodFighter last edited by

        @FoodFighter sagte:

        keine Ausgabe der Aufzählungs-Teilnehmer:

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

        FoodFighter 1 Reply Last reply Reply Quote 0
        • FoodFighter
          FoodFighter @paul53 last edited by FoodFighter

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

          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 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          785
          Online

          31.9k
          Users

          80.1k
          Topics

          1.3m
          Posts

          2
          3
          343
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo