Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Adapter.setObject

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Adapter.setObject

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

      Hallo,

      ich bastel gerade an meinem ersten Adapter und versuche Objekte samt Raum anzulegen:

          adapter.setObject('Input.ABC', 
          {
              type: 'state',
              common: {
                  room: 'Test',
                  name: 'ABC',
                  type: 'boolean',
                  role: 'state'
              },
              native: {}
          });
      

      Das Objekt wird auch angelegt - nur der Raum wird nicht übernommen. Muss ich diesen anders definieren? Hab dazu leider nichts gefunden?

      Danke!

      Georg

      1 Reply Last reply Reply Quote 0
      • J
        JoJ123 last edited by

        Muss der Raum nicht in einer Aufzählung bereits existieren?

        Gesendet von meinem EML-L09 mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Als erstes: am besten setObjectNotExists nutzen anstelle setObject!

          Ansonsten: geht das überhaupt so? Wäre mir neu. Räume sind Enums und es gibt eigene Methoden um das zu managen.

          Gesendet vom Handy …

          1 Reply Last reply Reply Quote 0
          • Goersch
            Goersch last edited by

            > Ansonsten: geht das überhaupt so? Wäre mir neu. Räume sind Enums und es gibt eigene Methoden um das zu managen.

            mh, ausser einem getEnums hab ich nix gefunden - hab nach addEnums, setEnums usw. gesucht… beschrieben ist meistens wie man den Raum manuell anlegt - ich möchte es aber aus einem Adapter heraus machen

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              Es gibt adapter.addChannelToEnum und adapter.addStateToEnum … schau mal in https://github.com/ioBroker/ioBroker.js ... adapter.js

              1 Reply Last reply Reply Quote 0
              • Goersch
                Goersch last edited by

                adapter.addStateToEnum hilft mir schon mal einen Schritt weiter:

                adapter.addStateToEnum('rooms',room,0,0,stateName,0,0);
                

                Ich kann danach in "Objects" dem Objekt den gewünschten Raum zuordnen; aber es passiert leider weiterhin nicht aus dem setObject heraus.

                Leider ist auch im Admin in "Enums" der Bereich "Rooms" leer - was mir zeigt, dass ich noch was falsch mache.

                Hab auch schon addChannelToEnum ausprobiert: Gleiches Ergebnis.

                Ich vermute, dass das mit den nicht übergegenen ParentDevice, ParentChannel zusammenhängt; wobei mir nicht klar ist, was ich hier übergeben soll. Wäre das eine ID?

                1 Reply Last reply Reply Quote 0
                • J
                  JoJ123 last edited by

                  Füge doch Mal selber einen Room zu dem Enum hinzu. Dann solltest du auch etwas auswählen können.

                  Gesendet von meinem EML-L09 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • Goersch
                    Goersch last edited by

                    so ich habs 😄 Nachdem ich bei addChannelToEnum das richtige ParentDevice hinzugefügt habe, funzt es … beim Objekt steht der richtige Raum drin.

                    Im Admin / Enums bei ROOMS bleibt weiterhin alles leer. Ich kann auch nichts hinzufügen - Beim Drücken auf "New Enum" passiert leider nix.Auch ein

                    log(getEnums());
                    

                    bringt leider nur > javascript.0 script.js.common.Script1: [object Object],[object Object]

                    So ganz sauber scheint mein Vorgehen noch nicht zu sein.

                    1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 last edited by

                      Mal Admin reloaded? Admin restarted? Es gibt Dinge wo Admin Daten nur beim Start oder Änderungen per Admin neu lädt

                      Gesendet vom Handy …

                      1 Reply Last reply Reply Quote 0
                      • Goersch
                        Goersch last edited by

                        ja, hab Admin schonmal neu gestartet - hilft leider nicht

                        1 Reply Last reply Reply Quote 0
                        • Goersch
                          Goersch last edited by

                          so ganz klappt es doch noch nicht - wie schon befürchtet.

                          • einigen Objekten wird ein Raum zu - anderen nicht

                          • in Tab "Rooms" ist alles leer

                          -Ausgabe von log(getEnums());
                          > [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

                          Da scheint noch was zu fehlen - muss ich vorher den Enum "Rooms" erweitern?

                          Code sieht zurzeit so aus:

                          function createEnvironmentObject(env,group,room,name,type, unit, desc)
                          {
                              var objName = env + '.' + name;
                              var value = "";
                              if (type.indexOf("boolean")>-1) value = false;
                              if (type.indexOf("number")>-1) value = 0;
                          
                              adapter.setObject(objName, 
                              {
                                  type: 'state',
                                  common: 
                                  {
                                      name: name,
                                      type: type,
                                      role: 'io.'+group,
                                      unit: unit,
                                      desc: desc
                                 },
                                  native: {}
                              });
                          
                              adapter.addStateToEnum('rooms',room,0,0,objName,0,0);    
                              adapter.setState(objName,value);
                          }
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 last edited by

                            Aaaaaalso … Logging von Objekten ist nur mit log immer so wie es bei Dir aussieht. Wenn Du es besser haben willst nimm JSON.stringfy(variable) Dann bekommst Du die echten Daten.

                            Ansonsten zu deinem Code:

                            • type.indexOf("boolean") ... type ==='boolean' und bei number auch

                            • role: 'io.'+group, ... das sind keine definierten Rollen!! --> https://github.com/ioBroker/ioBroker/bl ... E_ROLES.md

                            Zum Thema sonst kann ich leider wenig sagen

                            1 Reply Last reply Reply Quote 0
                            • Goersch
                              Goersch last edited by

                              ok, danke für die Hinweise 🙂

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              1.0k
                              Online

                              31.6k
                              Users

                              79.4k
                              Topics

                              1.3m
                              Posts

                              3
                              13
                              3796
                              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