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) Trigger auf Gewerk funktioniert nicht

    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) Trigger auf Gewerk funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fireboyff last edited by fireboyff

      Hallo

      Ich habe nun Stunden damit Verbracht mein Problem zu lösen, leider schaffe ich es nicht.
      Ich hab mir ein "Gewerk" unter enum.functions angelegt namens "licht_status". Diesem habe ich einige Switch Stats hinzugefügt.
      Jetzt möchte ich gerne in einen Script mit einen Trigger auf dieses Gewerk reagieren falls sich der State ändert. Ich habe alles mögliche probiert entweder es kommen Fehler oder gar nichts.

      Mein Letzter Versuch war nach einen Forumsbeitrag aus 2016, leider passiert hier nichts, kein Fehler kein Log eintrag nichts.

      $('channel(functions=licht_status)').on(function (obj) {
          setState("0_userdata.0.Testraum.javaTestausgabe", "geht", true);
          log("Ist gelaufen");
      });
      

      Ich habe auch folgendes Probiert, da hierzu in der Offiziellen Doku was Stand, hier bekomme ich jedoch einen Fehler im Log

      on({enumName: "Licht_Status", change: "ne"}, function (obj) {
          setState("0_userdata.0.Testraum.javaTestausgabe", "geht", true);
      });
      

      Fehler: Caught by controller[9: enumNames is of type object but should be an array: {}]

      Kann mir bitte irgendjemand sagen was ich Falsch mache, ich verzweifle leider daran.

      Danke für eure Hilfe.

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @fireboyff last edited by ticaki

        @fireboyff sagte in Trigger auf Gewerk funktioniert nicht:

        $('channel[functions=licht_status]').on(function (obj) {
            setState("0_userdata.0.Testraum.javaTestausgabe", "geht", true);
            log("Ist gelaufen");
        });
        

        Versuche das mal, bin aktuell nicht am coden, aber in meinen Skripten verwende ich [] und nicht (). Desweiteren suchst du nach channel oder nach state?

        F 1 Reply Last reply Reply Quote 0
        • F
          fireboyff @ticaki last edited by

          @ticaki @ticaki

          muss ich nacher probieren,

          Was ich gerne hätte ist das mein Script getriggert wird wenn sich einer der Stats ändert der bei Functions "licht_status" hinterlegt hat.
          7eeeb2b3-f7da-4585-bed3-71eb54596a03-image.png
          Hier zb. Ein ShellyPlugS, wenn dieser den State von false auf True ändert möchte ich getriggert werden da Funktion "licht_status" gesetzt hat.

          Ich habs geschaft auf einen State bzw mehrere zu reagieren mit

          var Rolllaeden = ["hm-rpc.0.WWWW.1.WORKING"/*Terrassentür links.WORKING*/,
                              "hm-rpc.0.XXXX.1.WORKING"/*Terrassentür rechts.WORKING*/, 
                              "hm-rpc.0.YYYY.1.WORKING"/*Festverglasung links.WORKING*/, 
                              "hm-rpc.0.ZZZZ.1.WORKING"/*Festverglasung rechts.WORKING*/];
                              
          on(Rolllaeden, function(dp) {
          

          Jedoch möchte ich nicht jede State ID einzeln per Hand angeben. Ich dachte mir mit Funktion wäre das die Lösung, dann müsste ich bei einer änderung nur den Wert Setzen bei Funktion und der State ist Automatisch dabei in der Überwachung oder wurde entfernt.

          Evt. konnte ich jetzt mein ziel/wunsch besser darstellen.

          T 1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer @fireboyff last edited by ticaki

            @fireboyff
            In dem Fall suchst du nach

            $('state[functions=licht_status]').on(function (obj) {
            

            Ich hab das aber noch nicht ganz verinnerlicht. Ist eine Kopie aus meinen Skripten. 🙂

            F 1 Reply Last reply Reply Quote 0
            • F
              fireboyff @ticaki last edited by

              @ticaki said in Trigger auf Gewerk funktioniert nicht:

              $('state[functions=licht_status]').on(function (obj) {

              danke für deine Info. habs gleich getestet. Ein Skript wo nur das drinnen steht, das Skript sogar neu angelegt, keine reaktion 😞

              $('state[functions=licht_status]').on(function (obj) {
                  setState("0_userdata.0.Testraum.javaTestausgabe", "geht", true);
                  log("Ist gelaufen");
              });
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @fireboyff last edited by

                @fireboyff
                Wenn "licht_status" die korrekte enum-ID ist, versuche mal:

                $('*(functions=licht_status)').on(function (obj) {
                
                F 1 Reply Last reply Reply Quote 0
                • F
                  fireboyff @paul53 last edited by

                  @paul53

                  Danke Paul!!! Das wars jetzt funktioniert es.
                  nur das ich auch verstehe was ich da jetzt mache 🙂

                  mit Stern nehme ich alles, und dann sag i erm nur die mit meiner function?
                  Wenn ich den stern ersetzen würde auf was würde er sich da beziehen?

                  Danke lg Fire

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

                    @fireboyff sagte: Wenn ich den stern ersetzen würde auf was würde er sich da beziehen?

                    Der Stern steht für "alle Datenpunkt-IDs". Man kann es eingrenzen, z.B.

                    $('hm-rpc.*.1.WORKING(functions=licht_status)').on(function (obj) {
                    
                    F 1 Reply Last reply Reply Quote 0
                    • F
                      fireboyff @paul53 last edited by

                      @paul53

                      danke für deine Infos.
                      Auch danke an @ticaki für deine Bemühungen.

                      Problem somit gelöst.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      850
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      javascript
                      3
                      9
                      305
                      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