Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. (gelöst) Trigger auf Gewerk funktioniert nicht

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

(gelöst) Trigger auf Gewerk funktioniert nicht

Scheduled Pinned Locked Moved JavaScript
javascript
9 Posts 3 Posters 549 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fireboyff
    wrote on last edited by fireboyff
    #1

    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
    0
    • F 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 Do not disturb
      T Do not disturb
      ticaki
      wrote on last edited by ticaki
      #2

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

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      F 1 Reply Last reply
      0
      • T 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 Offline
        F Offline
        fireboyff
        wrote on last edited by
        #3

        @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
        0
        • F fireboyff

          @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 Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by ticaki
          #4

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

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          F 1 Reply Last reply
          0
          • T 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 Offline
            F Offline
            fireboyff
            wrote on last edited by
            #5

            @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");
            });
            
            paul53P 1 Reply Last reply
            0
            • F fireboyff

              @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");
              });
              
              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

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

              $('*(functions=licht_status)').on(function (obj) {
              

              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

              F 1 Reply Last reply
              0
              • paul53P paul53

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

                $('*(functions=licht_status)').on(function (obj) {
                
                F Offline
                F Offline
                fireboyff
                wrote on last edited by
                #7

                @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

                paul53P 1 Reply Last reply
                0
                • F fireboyff

                  @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

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #8

                  @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) {
                  

                  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

                  F 1 Reply Last reply
                  0
                  • paul53P 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 Offline
                    F Offline
                    fireboyff
                    wrote on last edited by
                    #9

                    @paul53

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

                    Problem somit gelöst.

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    888

                    Online

                    32.4k

                    Users

                    81.5k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe