Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Welche Datentypen + Rollen gibt es denn jetzt noch?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Welche Datentypen + Rollen gibt es denn jetzt noch?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
15 Beiträge 6 Kommentatoren 1.5k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • haus-automatisierungH haus-automatisierung

    Hi zusammen,

    wenn ich Adapter entwickle, dann benutze ich eigentlich nur States vom Typ number, string, und boolean. Bisher auch ein paar mal file für binary states, aber der Typ ist ja deprecated. mixed ignoriere ich generell, weil ich schon gerne einen Datentyp festlege.

    Wenn man jetzt allerdings auf das + im Admin im Objekt-Tab klickt, dann kann man noch weitere Typen anlegen:

    • json
    • object
    • array
    • multistate

    Dazu ein paar Fragen:

    1. Warum gibt es den common.type = 'json' überhaupt? Um json zu speichern, nutze ich eigentlich common.type = 'string' + common.role = 'json' - wie es auch hier dokumentiert ist. Was ist der Unterschied, wenn ich direkt json als Typ festlege?
    2. object und array verwende ich nie, weil ich wie gesagt immer einen JSON-String speichere. Früher hatte ich das mal genutzt, aber irgendwo wurde ich darauf hingewiesen dass man die Typen nicht mehr verwenden sollte. Was ist da "best practice"?
    3. Was ist multistate? Ich habe doch unabhängig vom Datentyp die Option eine Art Enum mit gültigen Werten auf dem Objekt zu definieren (mit states: {a: 'jo', b: 'no'}).

    Für mich gibt es eigentlich nur die 3 Basis-Datentypen + entsprechende Rollen um diese genauer zu beschreiben. Warum bietet der Admin-Adapter dem Nutzer da noch mehr an? Das wird die meisten Nutzer doch nur verwirren.

    Angenommen ich möchte das Objekt {test: "jo", bla: true}speichern, dann habe ich ja aktuell 3 Möglichkeiten:

    a)

    // common.type = 'json', common.role = 'state'
    setState('xxx', {val: JSON.stringify({test: "jo", bla: true}), ack: true});
    

    b)

    // common.type = 'string', common.role = 'json'
    setState('xxx', {val: JSON.stringify({test: "jo", bla: true}), ack: true});
    

    c)

    // common.type = 'object', common.role = 'state'
    setState('xxx', {val: {test: "jo", bla: true}, ack: true});
    

    Und am Ende landet wahrscheinlich alles auf die gleiche Art in der State-DB :)

    Siehe auch: https://www.iobroker.net/#de/documentation/basics/states.md

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #2

    @haus-automatisierung sagte: object und array verwende ich nie

    Die beiden Typen werden im Javascript-Adapter automatisch beim Schreiben und Lesen gewandelt. Gespeichert werden sie als JSON. Ein Adapter-Entwickler muss selbst dafür sorgen, dass sie als JSON gespeichert werden.

    @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

    irgendwo wurde ich darauf hingewiesen dass man die Typen nicht mehr verwenden sollte.

    Wirklich?

    @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

    Was ist multistate?

    Wird mir im Tab "Objekte" bei der Datenpunkterstellung nicht angeboten (gab es aber mal).

    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

    haus-automatisierungH 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @haus-automatisierung sagte: object und array verwende ich nie

      Die beiden Typen werden im Javascript-Adapter automatisch beim Schreiben und Lesen gewandelt. Gespeichert werden sie als JSON. Ein Adapter-Entwickler muss selbst dafür sorgen, dass sie als JSON gespeichert werden.

      @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

      irgendwo wurde ich darauf hingewiesen dass man die Typen nicht mehr verwenden sollte.

      Wirklich?

      @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

      Was ist multistate?

      Wird mir im Tab "Objekte" bei der Datenpunkterstellung nicht angeboten (gab es aber mal).

      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      schrieb am zuletzt editiert von haus-automatisierung
      #3

      @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

      Ein Adapter-Entwickler muss selbst dafür sorgen, dass sie als JSON gespeichert werden.

      Okay, aber dann gibt es ja absolut gar keinen Unterschied zu common.type = 'json' mehr?! Wahrscheinlich einfach nur "hisorisch gewachsen" - oder wie sagt man so schön?

      @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

      Wirklich?

      Ja, müsste ich mal suchen. Zumindest habe ich damals alle meine Adapter auf String umgestellt.

      @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

      Wird mir im Tab "Objekte" bei der Datenpunkterstellung nicht angeboten (gab es aber mal).

      Beim erstellen nicht, aber beim bearbeiten. Siehe auch https://github.com/ioBroker/ioBroker.admin/issues/1889

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      paul53P 1 Antwort Letzte Antwort
      0
      • haus-automatisierungH haus-automatisierung

        @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

        Ein Adapter-Entwickler muss selbst dafür sorgen, dass sie als JSON gespeichert werden.

        Okay, aber dann gibt es ja absolut gar keinen Unterschied zu common.type = 'json' mehr?! Wahrscheinlich einfach nur "hisorisch gewachsen" - oder wie sagt man so schön?

        @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

        Wirklich?

        Ja, müsste ich mal suchen. Zumindest habe ich damals alle meine Adapter auf String umgestellt.

        @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

        Wird mir im Tab "Objekte" bei der Datenpunkterstellung nicht angeboten (gab es aber mal).

        Beim erstellen nicht, aber beim bearbeiten. Siehe auch https://github.com/ioBroker/ioBroker.admin/issues/1889

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #4

        @haus-automatisierung sagte: alle meine Adapter auf String umgestellt.

        Ja, früher wurden Arrays und Objekte direkt (ohne Wandlung in JSON) gespeichert. Das wurde geändert.

        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

        haus-automatisierungH 1 Antwort Letzte Antwort
        1
        • paul53P paul53

          @haus-automatisierung sagte: alle meine Adapter auf String umgestellt.

          Ja, früher wurden Arrays und Objekte direkt (ohne Wandlung in JSON) gespeichert. Das wurde geändert.

          haus-automatisierungH Offline
          haus-automatisierungH Offline
          haus-automatisierung
          Developer Most Active
          schrieb am zuletzt editiert von
          #5

          Ah, das kann gut sein. Ich weiß nur noch dass ich aktiv werden musste. Also hätte es ein stringify auch getan und ich hätte nicht den Typ umstellen müssen.

          Bleibt bei mir totzdem die Frage, warum es so 3 Wege für das gleiche Ergebnis gibt.

          @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

          Die beiden Typen werden im Javascript-Adapter automatisch beim Schreiben und Lesen gewandelt.

          Okay, dann wäre es für den Endnutzer ja sogar besser, wenn man nicht common.type = 'string' + common.role = 'json' nutzen würde, da man dort ja immer noch ein JSON.parse braucht.

          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
          📚 Meine inoffizielle ioBroker Dokumentation

          paul53P 1 Antwort Letzte Antwort
          0
          • haus-automatisierungH haus-automatisierung

            Ah, das kann gut sein. Ich weiß nur noch dass ich aktiv werden musste. Also hätte es ein stringify auch getan und ich hätte nicht den Typ umstellen müssen.

            Bleibt bei mir totzdem die Frage, warum es so 3 Wege für das gleiche Ergebnis gibt.

            @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

            Die beiden Typen werden im Javascript-Adapter automatisch beim Schreiben und Lesen gewandelt.

            Okay, dann wäre es für den Endnutzer ja sogar besser, wenn man nicht common.type = 'string' + common.role = 'json' nutzen würde, da man dort ja immer noch ein JSON.parse braucht.

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #6

            @haus-automatisierung sagte: Also hätte es ein stringify auch getan und ich hätte nicht den Typ umstellen müssen.

            Ja.

            @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

            common.type = 'json' mehr?! Wahrscheinlich einfach nur "hisorisch gewachsen" - oder wie sagt man so schön?

            "Historisch gewachsen" eher nicht, denn common.type = 'json' gibt es noch nicht so lange. Weshalb es eingeführt wurde, entzieht sich meiner Kenntnis. Vielleich kann @apollon77 aufklären?

            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

            apollon77A 1 Antwort Letzte Antwort
            0
            • carsten04C Online
              carsten04C Online
              carsten04
              Developer
              schrieb am zuletzt editiert von carsten04
              #7

              Wie groß darf denn ein JSON.stringify(mein_wirklich_grosses_object) maximal werden? Gibt es da irgendeine ioBroker-seitige Begrenzung?

              apollon77A 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @haus-automatisierung sagte: Also hätte es ein stringify auch getan und ich hätte nicht den Typ umstellen müssen.

                Ja.

                @haus-automatisierung sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

                common.type = 'json' mehr?! Wahrscheinlich einfach nur "hisorisch gewachsen" - oder wie sagt man so schön?

                "Historisch gewachsen" eher nicht, denn common.type = 'json' gibt es noch nicht so lange. Weshalb es eingeführt wurde, entzieht sich meiner Kenntnis. Vielleich kann @apollon77 aufklären?

                apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #8

                @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

                Vielleich kann @apollon77 aufklären?

                Leider nicht, haben wir gefunden als wir mal die Prüfungen etwas strikter gemacht haben.

                Mit der Idee das die Rollen primär dazu da sind um Visus u.ä. mehr Informationen zum Content zu geben könnte ich durchaus schon Unterschiede zwischen "object", "json" und "array" (um am Ende drei zu nennen die effektiv alles "stringified javascript Strukturen" sind) konstruieren.

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                haus-automatisierungH 1 Antwort Letzte Antwort
                1
                • carsten04C carsten04

                  Wie groß darf denn ein JSON.stringify(mein_wirklich_grosses_object) maximal werden? Gibt es da irgendeine ioBroker-seitige Begrenzung?

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #9

                  @carsten04 Hm ... Ich denke JSON-stringify hat ein Limit bzw JavaScript dabei wie groß/lang ein String werden darf. Dann geht es weiter das Objekte im js-controller oder im Redis im RAM liegen. Und noch weiter das am Ende alle Objekte und States von Backup in ein großes JSON gepackt werden für das wiederum die Limits von oben gelten.

                  Wenn deine Objects+States-DB größer als 2GB (nicht drauf fest nageln aber glaube sowas wars) wird dann ists blöd ... :-) Rest darfst du gern zurückrechnen was das dann heisst für das einzelne "mein_wirklich_grosses_object".

                  Aber Spass beiseite. Wenn es wirklich groß ist empfehle ich es eher als File abzulegen und nicht als JSON object weil am Ende ja die Frage ist wer was damit tut und ob das auch performance und sonstwas Sicht sinn macht.

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  1
                  • apollon77A apollon77

                    @paul53 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

                    Vielleich kann @apollon77 aufklären?

                    Leider nicht, haben wir gefunden als wir mal die Prüfungen etwas strikter gemacht haben.

                    Mit der Idee das die Rollen primär dazu da sind um Visus u.ä. mehr Informationen zum Content zu geben könnte ich durchaus schon Unterschiede zwischen "object", "json" und "array" (um am Ende drei zu nennen die effektiv alles "stringified javascript Strukturen" sind) konstruieren.

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #10

                    @apollon77 Was ist denn Dein Vorgehen für neue Adapter - also was verwendest Du primär? Mindestens json wäre dann ja redundant (kann ja auch ein object oder array sein).

                    Und was ist mit multistate- gibts da noch? Oder kann das aus dem Admin verschwinden? Findet man ja auch nur im Edit-Dialog und nicht beim Anlegen. Heißt Multistate wirklich "mehrere" Werte? Also wie Checkboxen quasi? Oder wie war das mal gedacht?

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • haus-automatisierungH haus-automatisierung

                      @apollon77 Was ist denn Dein Vorgehen für neue Adapter - also was verwendest Du primär? Mindestens json wäre dann ja redundant (kann ja auch ein object oder array sein).

                      Und was ist mit multistate- gibts da noch? Oder kann das aus dem Admin verschwinden? Findet man ja auch nur im Edit-Dialog und nicht beim Anlegen. Heißt Multistate wirklich "mehrere" Werte? Also wie Checkboxen quasi? Oder wie war das mal gedacht?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #11

                      @haus-automatisierung: Heißt Multistate wirklich "mehrere" Werte?

                      Multistate heißt, dass die Werte per common.states übersetzt werden und im Admin selektierbar sind.

                      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

                      haus-automatisierungH 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @haus-automatisierung: Heißt Multistate wirklich "mehrere" Werte?

                        Multistate heißt, dass die Werte per common.states übersetzt werden und im Admin selektierbar sind.

                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #12

                        @paul53 Aber das kann ich doch aktuell mit jedem Datentyp machen - zumindest prüft der admin nicht auf common.type. Daher die Frage ob der Typ überhaupt noch relevant ist.

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @paul53 Aber das kann ich doch aktuell mit jedem Datentyp machen - zumindest prüft der admin nicht auf common.type. Daher die Frage ob der Typ überhaupt noch relevant ist.

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #13

                          @haus-automatisierung sagte: Aber das kann ich doch aktuell mit jedem Datentyp machen

                          Richtig. Deshalb sollte es aus der Typauswahl verschwinden.

                          Anmerkung: Der Ursprung geht zurück auf die "Werteliste" in der HomeMatic CCU.

                          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

                          1 Antwort Letzte Antwort
                          1
                          • apollon77A Offline
                            apollon77A Offline
                            apollon77
                            schrieb am zuletzt editiert von
                            #14
                            • Frage zu "json": hab ich persönlich gerade keine echte Meinung. Wäre vllt ein Thema fürs Dev Meeting
                            • Multistate kenn ich als offiziellen Typ gar nicht wenn ich ehrlich bin? Oder fehlt mir das was?

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            haus-automatisierungH 1 Antwort Letzte Antwort
                            1
                            • apollon77A apollon77
                              • Frage zu "json": hab ich persönlich gerade keine echte Meinung. Wäre vllt ein Thema fürs Dev Meeting
                              • Multistate kenn ich als offiziellen Typ gar nicht wenn ich ehrlich bin? Oder fehlt mir das was?
                              haus-automatisierungH Offline
                              haus-automatisierungH Offline
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #15

                              @apollon77 sagte in Welche Datentypen + Rollen gibt es denn jetzt noch?:

                              Multistate kenn ich als offiziellen Typ gar nicht wenn ich ehrlich bin? Oder fehlt mir das was?

                              Wie ich das jetzt verstanden habe gab es den ganz früher mal und es wurde nur an der einen Stellt im Admin vergessen dieses Überbleibsel zu entfernen. Ich erstelle mal einen PR

                              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                              📚 Meine inoffizielle ioBroker Dokumentation

                              1 Antwort Letzte Antwort
                              2
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              532

                              Online

                              32.7k

                              Benutzer

                              82.3k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe