Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Noch eine Frage] Neue enum.functions automatisch erstellen möglich?

    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

    [Noch eine Frage] Neue enum.functions automatisch erstellen möglich?

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

      Hi an die Profis,

      ich würde gerne in einem Script in dem viele Datenpunkte "via on beobachtet bzw. subscribed werden sollen" diese in einer neuen enum.functions - Aufzählung zusammen fassen um eben dann nur ein Subcribe für alles zu machen. Da ich aber eigentlich keine Lust habe diese enum.function händisch anzulegen wollte ich erfragen ob es eine Möglichkeit bzw. einen Befehl gibt diese Aufzählung und die zugehörigen Unterpunkte via Script anzulegen?

      In dem Stil createState…. oder ähnliches.

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

        Ich schiebs noch einmal hoch vielleicht hat ja jemand eine idee

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

          Sollte funktionieren, enums sind auch nur objekte mit Type 'enum'!

          Sie schauen in etwa so aus:

          {
            "type": "enum",
            "common": {
              "name": "Keller",
              "desc": "",
              "members": [
                "hm-rpc.0.MEQ1851794.3",
                "hm-rpc.0.MEQ1435726.1",
                "hm-rpc.0.MEQ1851794.2",
                "hm-rpc.0.MEQ1851794.1"
              ]
            },
            "native": {
              "Name": "Keller",
              "TypeName": "ENUM",
              "EnumInfo": ""
            },
            "_id": "enum.rooms.Keller",
            ...
          }
          

          mit createForeignObject oder extendForeignObject sollte man das hinkriegen…, foreign deshalb da der Wert nicht im Adadapter sonder im ioBroker bei den Systemvariablen gespeichert werden muss.

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

            Versuche es mal so:

            var ids = [idA, idB, idC];
            
            var obj = {};
            obj.type = 'enum';
            obj.common = {};
            obj.common.name = 'mein Gewerk';
            obj.common.members = ids;
            setObject('enum.functions.meinGewerk', obj);
            
            

            setObject() muss in der JS-Konfiguration freigegeben sein.

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

              @paul53:

              Versuche es mal so: `

              Funktioniert perfekt! Danke

              Kann man diese enum.function dann auch auf Existenz prüfen? Habe gesehen dass wenn ich mehrmals den gleichen Namen verwende die auch immer wieder erstellt werden. Dies würde ich gerne durch etwas wie "if(nicht existent)dann erstellen" prüfen

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

                @peoples:

                Kann man diese enum.function dann auch auf Existenz prüfen? Dies würde ich gerne durch etwas wie "if(nicht existent)dann erstellen" prüfen `

                if(!getObject('enum.functions.meinGewerk')) {
                   erstelle...
                }
                
                1 Reply Last reply Reply Quote 0
                • Peoples
                  Peoples last edited by

                  @paul53:

                  Versuche es mal so: `
                  Ist es auch Möglich die Inhalte des Objekts auf existenz zu prüfen?

                  bspw.

                  enum.function.meinGewerk

                  und ich will abfragen ob:" javascript.0.test.testdurchlauf" vorhanden ist. Möchte das gerne verwenden um beim ersten Scriptdurchlauf die Warnings zu unterdrücken.

                  Habe da was mit:````
                  (object.toSource());

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  746
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  1276
                  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