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. Problem mit getEnums()

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Problem mit getEnums()

Scheduled Pinned Locked Moved Skripten / Logik
javascript
12 Posts 5 Posters 2.9k Views
  • 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.
  • C Offline
    C Offline
    cstauch
    wrote on last edited by Bluefox
    #1

    Hallo,

    ich bin beim Debuggen meiner Variante des Heizungssteuerungsskripts auf ein http://forum.iobroker.net/viewtopic.php?f=21&t=6080&start=180#p93363 gestoßen.

    Ich glaube aber nicht, dass dieses seine Ursache in dem Skript hat, deshalb als neues Thema.

    Folgendes Testskript

    // Auslesen aller Raeume
    rooms = getEnums('rooms');                                                      // Lade alle Raeume
    for (var i in rooms){                                                                                                                       // loop ueber alle Raeume
        log("Raum " + rooms[i].name + " gefunden.","info");
    }
    

    liefert die Ausgabe

    javascript.0	2017-11-05 11:56:05.170	info	script.js.Test: Raum Terrasse gefunden.
    javascript.0	2017-11-05 11:56:05.170	info	script.js.Test: Raum Garage gefunden.
    javascript.0	2017-11-05 11:56:05.169	info	script.js.Test: Raum Badezimmer gefunden.
    javascript.0	2017-11-05 11:56:05.169	info	script.js.Test: Raum Spielzimmer gefunden.
    javascript.0	2017-11-05 11:56:05.168	info	script.js.Test: Raum Wohnraum gefunden.
    javascript.0	2017-11-05 11:56:05.167	info	script.js.Test: getEnums(enumName=rooms) => [{'id':'enum.rooms.Wohnraum','members':['hm-rpc.0.NEQ1026839.1','hm-rpc.0.LEQ0998227.7','hm-rpc.0.LEQ0998227.1','hm-rpc.0.LEQ0219343.1','hm-rpc.0.LEQ0219170.1','hm-rpc.0.LEQ0219599.1','hm-rpc.0.LEQ0219340.1','hm-rpc.0.LEQ0219345.1','hm-rpc.0.LEQ0998227.2','hm-rpc.0.LEQ0584821.4','hm-rpc.0.LEQ0585276.4'],'name':'Wohnraum'},{'id':'enum.rooms.Spielzimmer','members':['hm-rpc.0.OEQ1698860.4','hm-rpc.0.NEQ0011813.1'],'name':'Spielzimmer'},{'id':'enum.rooms.Badezimmer','members':['hm-rpc.0.LEQ0585261.4'],'name':'Badezimmer'},{'id':'enum.rooms.Garage','members':['hm-rpc.0.MEQ0475727.1'],'name':'Garage'},{'id':'enum.rooms.Terrasse','members':['hm-rpc.0.LTK0020095.2','hm-rpc.0.NEQ0951964.1'],'name':'Terrasse'},{'id':'enum.rooms.Kinderzimmer','members':['hm-rpc.0.LEQ0585118.4','hm-rpc.0.NEQ0310997.4','hm-rpc.0.NEQ1026725.1','hm-rpc.0.NEQ1026783.1','hm-rpc.0.LEQ0848127.4'],'name':'Kinderzimmer'}]
    javascript.0	2017-11-05 11:56:04.920	info	Start javascript script.js.Test
    

    Meine Raumliste sieht aber wie im Bild aus:
    3975_screenshot_20171105_120242.png
    d.h. der Raum Zentralflur wird nicht gefunden. Hat jemand eine Idee, woran das liegen könnte?[/i]

    1 Reply Last reply
    0
    • L Offline
      L Offline
      looxer01
      wrote on last edited by
      #2

      Hi,

      ich bin beim Testen der IP Geräte (und nicht nur ich) auf ähnliche Probleme gestossen.

      Versuche mal einen kompletten restart von ioBroker. Wobei ich sogar mehrere brauchte.

      Irgendwas scheint mit der REGA Sync nicht zu passen. So sieht es jedenfalls bei mir aus.

      vG Looxer

      1 Reply Last reply
      0
      • C Offline
        C Offline
        cstauch
        wrote on last edited by
        #3

        Tatsächlich, jetzt wird alles gefunden!

        Danke!!

        1 Reply Last reply
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          wrote on last edited by
          #4

          Könnte es sein das du diesen Raum erstellt hast nachdem der JavaScript adapter gestartet war?

          Ich habe das Gefühl das enums nur einmalig beim Starten des Adapters eingeladen werden wodurch Änderungen fehlen

          –-----------------------

          Send from mobile device

          1 Reply Last reply
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            wrote on last edited by
            #5

            @Dutchman:

            Könnte es sein das du diesen Raum erstellt hast nachdem der JavaScript adapter gestartet war?

            Ich habe das Gefühl das enums nur einmalig beim Starten des Adapters eingeladen werden wodurch Änderungen fehlen `
            Ist auch für Objekte der Fall. Wenn ich in JS ZWave-Geräte überwache und ein neues einbinde, kriegt das Skript nix davon mit bis zum nächsten Neustart.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            1 Reply Last reply
            0
            • Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              wrote on last edited by
              #6

              Ist ziemlich logisch, eine Variable, welche man ja mit seinen enums beschreibt, wird erst dann neu geschrieben wenn man einen Auslöser dafür hat.

              Also zum Beispiel zyklisch mit einem Cronjob.

              Vielleicht kann man ja auch irgendwie auf Änderungen der enums reagieren, das sind schließlich auch nur Objekte.

              Gesendet von Unterwegs

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              1 Reply Last reply
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by
                #7

                Adapter haben

                subscribe[Foreign]Objects("*")
                

                und werden damit über Änderungen und hinzugefügte Objekte und States informiert.

                Wenn ich in einem Skript $(selector) ausführe, extern ein neues Objekt mit States hinzufüge und dann nochmals $(selector) ausführe, ändert sich die Liste der gefundenen States nicht - zumindest war das vor einer Weile noch so.

                Finde ich aus Benutzersicht nicht logisch.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Reply Last reply
                0
                • Jey CeeJ Online
                  Jey CeeJ Online
                  Jey Cee
                  Developer
                  wrote on last edited by
                  #8

                  Ich hab jetzt mal ein bisschen mit den 'enums' gespielt. Es ist wie ich schon geschrieben hab, die enums sind Objekte.

                  Zugreifen kann man auf die enums mit:

                  getObject('enum.rooms.Bad')
                  

                  Aber eine Subscription auf ein enum bringt nichts da es kein value hat. Das heisst die Subscription wird nie ausgelöst.

                  Was mir bei getEnums() aufgefallen ist das ich kein Aufzählung in der 2ten Ebene abrufen kann.

                  Weiss jemand ob das ohne Umwege geht?

                  Persönlicher Support
                  Spenden -> paypal.me/J3YC33

                  1 Reply Last reply
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    wrote on last edited by
                    #9

                    @Jey Cee:

                    getObject('enum.rooms.Bad')
                    

                    Aber eine Subscription auf ein enum bringt nichts da es kein value hat. Das heisst die Subscription wird nie ausgelöst. `

                    Doch das geht! Gestern noch ein Script damit gebaut:

                    
                    // Trigger on value change in origin values and syncronise to reverse values
                    on({enumName: 'rolladen', change: "ne"}, function (obj) {
                    
                        //reverse value from KNX to Yahka logic
                        var newvalue = 100 - obj.state.val;
                    
                        //verify is calculated value is different, if yes update KNX value to reversed object otherwise do nothing
                        if (newvalue !== getState("rolladen_reversed_values." + obj.common.name).val){
                            setState("rolladen_reversed_values." + obj.common.name, newvalue, true);
                            console.debug('value change based on KNX trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue);
                    
                        }
                    
                    });
                    
                    

                    –-----------------------

                    Send from mobile device

                    1 Reply Last reply
                    0
                    • Jey CeeJ Online
                      Jey CeeJ Online
                      Jey Cee
                      Developer
                      wrote on last edited by
                      #10

                      @Dutchman:

                      Doch das geht! Gestern noch ein Script damit gebaut: `

                      Da hast du mich missverstanden. Wenn du ein Member zur enum hinzufügst wird die Subscription nicht ausgelöst.

                      Dein Code hört auf Veränderungen der Member einer enum.

                      By the Way, ich erhalte folgende fehlermeldung wenn ich eine Subscription auf ein enum erstelle:

                      unsubscribe: empty name
                      

                      Persönlicher Support
                      Spenden -> paypal.me/J3YC33

                      1 Reply Last reply
                      0
                      • DutchmanD Offline
                        DutchmanD Offline
                        Dutchman
                        Developer Most Active Administrators
                        wrote on last edited by
                        #11

                        @Jey Cee:

                        By the Way, ich erhalte folgende fehlermeldung wenn ich eine Subscription auf ein enum erstelle:

                        unsubscribe: empty name
                        ```` `  
                        

                        Controller und JavaScript adapter Version ?

                        Wie sieht dein Code aus?

                        –-----------------------

                        Send from mobile device

                        1 Reply Last reply
                        0
                        • Jey CeeJ Online
                          Jey CeeJ Online
                          Jey Cee
                          Developer
                          wrote on last edited by
                          #12

                          Hab das Problem gefunden die enum hatte einfach einen falschen Namen.

                          Persönlicher Support
                          Spenden -> paypal.me/J3YC33

                          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

                          762

                          Online

                          32.5k

                          Users

                          81.7k

                          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