Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Aufzählungen mittels Blockly editieren

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    Aufzählungen mittels Blockly editieren

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

      Mein Wunsch ist, eine Aufzählung (enum) in ioBroker mit Blockly zu erstellen und die Einträge darin löschen und ergänzen zu können.

      Ist so etwas möglich?

      paul53 liv-in-sky 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @legro last edited by paul53

        @legro sagte: Aufzählung (enum) in ioBroker mit Blockly zu erstellen und die Einträge darin löschen und ergänzen zu können.

        Mit Blockly eher nicht, da ohnehin nur mit speziellen Javascript-Funktionen realisierbar.

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

          @paul53 said in Aufzählungen mittels Blockly editieren:

          ..
          Mit Blockly eher nicht, da ohnehin nur mit speziellen Javascript-Funktionen realisierbar.

          Es darf gerne auch Java Code sein.😃 Den kann ich ja zur Not selbst in Blockly einbinden.

          Leider habe ich nichts dazu gefunden, wie man auf Aufzählungen zugreifen kann und wie diese Daten strukturiert (Objekt, Array, ..?) sind.

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

            @legro sagte: wie diese Daten strukturiert (Objekt, Array, ..?) sind.

            Beispiel:

            {
              "_id": "enum.rooms.living_room",
              "common": {
                "icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4MC4wNDYgNDgwLjA0NiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwLjA0NiA0ODAuMDQ2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGc+PGc+PHBhdGggZD0iTTMyOC4wMzQsMzIwLjA0NmgtMjR2LTg4YzAtNC40MTgtMy41ODItOC04LThoLTI1NmMtNC40MTgsMC04LDMuNTgyLTgsOHY4OGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDh2MTI4YzAsNC40MTgsMy41ODIsOCw4LDhoMjR2MTZoMTZ2LTE2aDI0MHYxNmgxNnYtMTZoMjRjNC40MTgsMCw4LTMuNTgyLDgtOHYtMTI4QzMzNi4wMzQsMzIzLjYyOCwzMzIuNDUyLDMyMC4wNDYsMzI4LjAzNCwzMjAuMDQ2eiBNODAuMDM0LDQ0OC4wNDZoLTY0di0xMTJoNjRWNDQ4LjA0NnogTTI0MC4wMzQsNDQ4LjA0NmgtMTQ0di02NGgxNDRWNDQ4LjA0NnogTTI0MC4wMzQsMzI4LjA0NnY0MGgtMTQ0di00MGMwLTQuNDE4LTMuNTgyLTgtOC04aC00MHYtODBoMjQwdjgwaC00MEMyNDMuNjE1LDMyMC4wNDYsMjQwLjAzNCwzMjMuNjI4LDI0MC4wMzQsMzI4LjA0NnogTTMyMC4wMzQsNDQ4LjA0NmgtNjR2LTExMmg2NFY0NDguMDQ2eiIvPjwvZz48L2c+PGc+PGc+PHBhdGggZD0iTTQ3OS45NTQsMTUxLjE2NmwtMTYtMTQ0Yy0wLjQ0Ny00LjA0MS0zLjg1NC03LjEwNC03LjkyLTcuMTJoLTExMmMtNC4wOTYtMC4wMjUtNy41NDksMy4wNDktOCw3LjEybC0xNiwxNDRjLTAuMjc2LDIuMjU4LDAuNDIyLDQuNTI4LDEuOTIsNi4yNGMxLjU1LDEuNzE4LDMuNzY3LDIuNjgsNi4wOCwyLjY0aDY0djI3MmgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDh2MzJjMCw0LjQxOCwzLjU4Miw4LDgsOGg4MGM0LjQxOCwwLDgtMy41ODIsOC04di0zMmMwLTQuNDE4LTMuNTgyLTgtOC04aC0zMnYtMjcyaDY0YzIuMjg1LDAuMDE3LDQuNDY5LTAuOTQzLDYtMi42NEM0NzkuNTMyLDE1NS42OTQsNDgwLjIzLDE1My40MjUsNDc5Ljk1NCwxNTEuMTY2eiBNNDMyLjAzNCw0NDguMDQ2djE2aC02NHYtMTZINDMyLjAzNHogTTMzNi45OTQsMTQ0LjA0NmwxNC4yNC0xMjhoOTcuNmwxNC4yNCwxMjhIMzM2Ljk5NHoiLz48L2c+PC9nPjxnPjxnPjxwYXRoIGQ9Ik0yNzIuMDM0LDQ4LjA0NmgtNTIuNzJsLTQ1LjYtNDUuNjhjLTMuMTExLTMuMTM3LTguMTc3LTMuMTU4LTExLjMxNC0wLjA0NmMtMC4wMTYsMC4wMTUtMC4wMzEsMC4wMzEtMC4wNDYsMC4wNDZsLTQ1LjYsNDUuNjhoLTUyLjcyYy00LjQxOCwwLTgsMy41ODItOCw4djEyOGMwLDQuNDE4LDMuNTgyLDgsOCw4aDIwOGM0LjQxOCwwLDgtMy41ODIsOC04di0xMjhDMjgwLjAzNCw1MS42MjgsMjc2LjQ1Miw0OC4wNDYsMjcyLjAzNCw0OC4wNDZ6IE0xNjguMDM0LDE5LjMyNmwyOC43MiwyOC43MmgtNTcuNDRMMTY4LjAzNCwxOS4zMjZ6IE0yNjQuMDM0LDE3Ni4wNDZoLTE5MnYtMTEyaDE5MlYxNzYuMDQ2eiIvPjwvZz48L2c+PGc+PGc+PHBhdGggZD0iTTg4LjAzNCw4MC4wNDZ2ODBoMTYwdi04MEg4OC4wMzR6IE0yMzIuMDM0LDE0NC4wNDZoLTEyOHYtNDhoMTI4VjE0NC4wNDZ6Ii8+PC9nPjwvZz48L3N2Zz4=",
                "name": {
                  "en": "Living room",
                  "de": "Wohnzimmer",
                  "ru": "Гостиная",
                  "pt": "Sala de estar",
                  "nl": "Woonkamer",
                  "fr": "Salon",
                  "it": "Soggiorno",
                  "es": "Sala",
                  "pl": "Salon",
                  "zh-cn": "客厅"
                },
                "members": [
                  "alias.0.Wohnen.Licht.Deckenlampe",
                  "javascript.1.test.Senderliste"
                ]
              },
              "type": "enum",
              "from": "system.adapter.admin.0",
              "user": "system.user.admin",
              "ts": 1564485845483,
              "acl": {
                "object": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            

            Die zugeordneten Objekte befinden sich in einem Array unter common.members.

            @legro sagte in Aufzählungen mittels Blockly editieren:

            wie man auf Aufzählungen zugreifen kann

            getObject(id), setObject(id, obj), extendObject(id, {common: {members: array}})

            L 1 Reply Last reply Reply Quote 1
            • L
              legro @paul53 last edited by

              @paul53

              Vielen Dank für deine Hinweise.

              Leider ist für mich JavaScript noch alles Andere als etwas Vertrautes. Ich habe zwar in vielen Sprachen Projekte entwickelt, aber nie in JAVA, sodass ich mich wohl oder über erst einmal in diese Sprache einarbeiten muss. Hier https://javascript.info/getting-started habe ich eine gute Einführung gefunden.

              Ich habe mir die Datenstruktur ARRAY mit deren Methoden angelesen. Jetzt ist mein - typisch Anfänger - erstes Problem: Wie kann ich in einer Variablen eine Referenz auf eine solche Aufzählung in ioBroker speichern?

              Kurzum: Wie kann ich hierzu getObjekt(id), setObject(id,obj), .. verwenden?

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @legro last edited by

                @legro

                könntest du mal genauer erklären, was du vor hast ? enums sind ja eigentlich nicht dafür gedacht, dauernd gewechselt zu werden

                letztlich bedeutet das: es wird etwas getriggert und darauf hin entscheidest du, was zum enum gehört oder auch nicht

                das kansst du auch mit 2 oder mehreren verschiedenen enums machen

                was ist den dein eigentliches ziel dahinter ?

                L 1 Reply Last reply Reply Quote 0
                • L
                  legro @liv-in-sky last edited by

                  @liv-in-sky said in Aufzählungen mittels Blockly editieren:

                  @legro

                  könntest du mal genauer erklären, was du vor hast ?

                  Ich möchte meine Rollladenaktoren gruppieren, um sie anschließend gruppenweise steuern zu können. Hierzu möchte ich die Zuweisung eines Aktors zu einer Gruppe ändern können.

                  Homoran liv-in-sky 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @legro last edited by

                    @legro sagte in Aufzählungen mittels Blockly editieren:

                    Hierzu möchte ich die Zuweisung eines Aktors zu einer Gruppe ändern können.

                    verstehe ich immer noch nicht, warum die Zugehörigkeit geändert werden muss, aber wenn es so sein soll, kannst du ja die entsprechenden Rollläden auch mehreren enums zuweisen und dann je nach Notwendigkeit mit der einen oder anderen Enum arbeiten

                    L 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @legro last edited by liv-in-sky

                      @legro

                      stimme @Homoran zu

                      aber mal ein beispiel (als javascript):

                      Image 4.png

                      letztlich musst du das array bearbeiten und das script muss wissen, wie das aussehen soll

                      Image 3.png

                      <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="QdjLy2IH+?oeWFt^$!lN" x="787" y="412">
                       <mutation statements="false">
                         <arg name="dasObj" varid="9@JvwwDztWy6Y{O+ga{z"></arg>
                         <arg name="dasArray" varid="yyBQDrh1]ngG,Ae~w]p8"></arg>
                       </mutation>
                       <field name="NAME">setzeMembers</field>
                       <field name="SCRIPT">DQoNCmxldCBteU9iaj1nZXRPYmplY3QoZGFzT2JqKQ0KbG9nKG15T2JqLmNvbW1vbi5tZW1iZXJzLnRvU3RyaW5nKCkpDQpteU9iai5jb21tb24ubWVtYmVycz1kYXNBcnJheTsgICAvL25ldWUgZGVmIGbDvHIgZGllIG1lbWJlcnMgLSBkZXIgZHJpdHRlIGRwIGlzdCBuaWNodCBtZWhyIGRhYmVpDQovL215T2JqLm5hdGl2ZS5zZXR0aW5ncyA9IDE7DQpzZXRPYmplY3QoZGFzT2JqLG15T2JqKQ0KbG9nKG15T2JqLmNvbW1vbi5tZW1iZXJzLnRvU3RyaW5nKCkp</field>
                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                      

                      seltsamerweise bekomme ich (nur) im blockly eine warnung (als pures javascript nicht) - evtl weiß @paul53 warum da die meldung kommt

                      
                      javascript.0
                      2021-09-26 13:36:54.145	warn	This object will not be created in future versions. Please report this to the developer.
                      
                      javascript.0
                      2021-09-26 13:36:54.145	warn	Object enum.functions.Steckdose is invalid: obj.type has to exist
                      
                      Homoran paul53 2 Replies Last reply Reply Quote 1
                      • Homoran
                        Homoran Global Moderator Administrators @liv-in-sky last edited by

                        @liv-in-sky sagte in Aufzählungen mittels Blockly editieren:

                        im blockly eine warnung (als pures javascript nicht)

                        @liv-in-sky sagte in Aufzählungen mittels Blockly editieren:

                        obj.type has to exist

                        Wenn ich es richtig in erinnerung habe kann man mit Blockly keine (???) Objects (korrekt???) erstellen

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @Homoran last edited by

                          @homoran das object wird erstellt und richtig abgespeichert - es funktioniert soweit - das setObject mit dem neuen array wird ja in der javascript function gemacht - daher die verwunderung

                          Homoran 1 Reply Last reply Reply Quote 1
                          • Homoran
                            Homoran Global Moderator Administrators @liv-in-sky last edited by

                            @liv-in-sky sagte in Aufzählungen mittels Blockly editieren:

                            das object wird erstellt und richtig abgespeichert

                            aber laut log fehlt dort der type

                            liv-in-sky 1 Reply Last reply Reply Quote 1
                            • liv-in-sky
                              liv-in-sky @Homoran last edited by

                              @homoran
                              und da hast du recht - der type fehlt bei mir tatsächlich - ich denke der fehler ist bei mir, dass dieses enum durch einen import von irgendwelchen test-dp kam und schon falsch waren - ich habe einfach irgendein enum zum test genommen, was ich nicht nutze 😞

                              daher solle das ganze bei @legro zu keinen fehlern kommen !

                              paul53 1 Reply Last reply Reply Quote 1
                              • paul53
                                paul53 @liv-in-sky last edited by

                                @liv-in-sky
                                Was hat es mit

                                myObj.native.settings = 1;
                                

                                auf sich?

                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @paul53 last edited by

                                  @paul53 hatte ich mich auch gefragt - ist so in der beschreibung https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#setobject

                                  kann man wohl löschen, wenn du das nicht kennst

                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @liv-in-sky last edited by

                                    @liv-in-sky
                                    Alternative Funktion setMembers(idEnum, members):

                                    extendObject(idEnum, {common: {members: members}});
                                    
                                    liv-in-sky 1 Reply Last reply Reply Quote 1
                                    • liv-in-sky
                                      liv-in-sky @paul53 last edited by liv-in-sky

                                      @paul53

                                      ist das besser und bevorzuziehen ?

                                      das script macht das, was es soll mit beiden befehlen

                                      weißt du, warum das in der beschreibung ist: "myObj.native.settings = 1;" ich hatte das nur reingetan, als ich die warnung erhielt - die hatte aber eine andere ursache gahabt

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @liv-in-sky last edited by

                                        @liv-in-sky sagte: warum das in der beschreibung ist: "myObj.native.settings = 1;"

                                        Das ist nur ein zufälliges Beispiel.

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @paul53 last edited by

                                          @paul53 danke - habe es oben rausgenommen

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            legro @Homoran last edited by

                                            @homoran said in Aufzählungen mittels Blockly editieren:
                                            .., aber wenn es so sein soll, ..

                                            Ich hätte es nunmal gerne möglichst variabel.🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            585
                                            Online

                                            32.2k
                                            Users

                                            80.8k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            30
                                            934
                                            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