Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. jsonConfig für jsonTab

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    jsonConfig für jsonTab

    This topic has been deleted. Only users with topic management privileges can see it.
    • SKB
      SKB Developer Most Active last edited by

      Hallo,
      ich hatte bei der neuen Shuttercontrol Version gesehen, das auch ein jsonTab statt "tab_m.html" möglich ist 😉

      Nun meine Frage: Hier lässt sich ein ein state definieren, der wohl gesteuert wird:

      autoChildren: {
                newLine: true,
                type: 'state',
                label: "Automatic children's area",
                oid: 'control.autoChildren',
                ack: true,
                narrow: true,
                addColon: true,
                highlight: true,
                xs: 12,
                sm: 12,
                md: 6,
                lg: 3,
                xl: 3,
              },
      

      Gibt es eine Erklärung, wie die Schemas dazu sind? Auch wüsste ich gerne, ob eine Optionenliste möglich wäre? Ich würde gerne ein Dropdown erstellen, welches verschiedene Werte setzt.

      Danke im Voraus!

      haus-automatisierung 1 Reply Last reply Reply Quote 1
      • haus-automatisierung
        haus-automatisierung Developer Most Active @SKB last edited by

        @skb Das hier? https://github.com/ioBroker/ioBroker.admin/blob/master/packages/jsonConfig/README.md

        SKB 1 Reply Last reply Reply Quote 1
        • SKB
          SKB Developer Most Active @haus-automatisierung last edited by

          @haus-automatisierung Fast 😉

          Das sind ja die Settings für den Admin Bereich bzw. Adapter-Einstellungen.

          Ich suche dies für den Tab, den man links platzieren kann.

          haus-automatisierung simatec 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @SKB last edited by haus-automatisierung

            @skb sagte in jsonConfig für jsonTab:

            Ich suche dies für den Tab, den man links platzieren kann.

            Wäre mir neu dass das geht. Im Schema der io-package steht auch nicht, dass json da erlaubt wäre:

            https://github.com/ioBroker/ioBroker.js-controller/blob/6ade4045339082a9408e17e0871ad26dc41206ca/schemas/io-package.json#L847-L854

            Oder das Schema ist unvollständig, weil es ja anscheinend hier funktioniert:

            https://github.com/simatec/ioBroker.shuttercontrol/blob/master/admin/jsonTab.json5

            Homoran 1 Reply Last reply Reply Quote 2
            • Homoran
              Homoran Global Moderator Administrators @haus-automatisierung last edited by Homoran

              @haus-automatisierung sagte in jsonConfig für jsonTab:

              weil es ja anscheinend hier funktioniert:

              alter Editeur 😉

              das ist ja

              @skb sagte in jsonConfig für jsonTab:

              bei der neuen Shuttercontrol Version

              da kann dann vielleicht @simatec was zu sagen

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @Homoran last edited by

                @homoran Ja, wegen dem Hinweise habe ich mir das ja angeschaut. Gibt es wohl erst seit Admin 7.6.1: https://github.com/ioBroker/ioBroker.admin/blob/master/CHANGELOG_OLD.md#761-2025-03-08

                Dann ist das Schema noch nicht angepasst worden. Aber das ist doch genau das gleiche wie jsonConfig, oder? Denke nicht dass da andere Elemente genutzt werden.

                SKB 1 Reply Last reply Reply Quote 1
                • SKB
                  SKB Developer Most Active @haus-automatisierung last edited by SKB

                  @haus-automatisierung Also, hier kann ich das mit dem "state" erkennen.
                  https://github.com/ioBroker/ioBroker.admin/blob/master/packages/jsonConfig/README.md#state

                  Allerdings steht bei "control" auch "select". Jedoch erscheint kein Select.
                  So, wie ich das dort verstehe, müsste dies doch dann so eigentlich funktionieren:

                  "_mode": {
                           "newLine": true,
                           "type": "state",
                           "label": "tab_mode",
                           "control": "select",
                           "options": [
                              {
                                 "label": "tab_mode_deactivated",
                                 "value": 0
                              },
                              {
                                 "label": "tab_mode_manual",
                                 "value": 1
                              }
                           ],
                           "oid": "control.mode",
                           "size": 2,
                           "xs": 12,
                           "sm": 12,
                           "md": 12,
                           "lg": 12,
                           "xl": 12
                        }
                  
                  1 Reply Last reply Reply Quote 0
                  • simatec
                    simatec Developer Most Active @SKB last edited by

                    @skb sagte in jsonConfig für jsonTab:

                    @haus-automatisierung Fast 😉

                    Das sind ja die Settings für den Admin Bereich bzw. Adapter-Einstellungen.

                    Ich suche dies für den Tab, den man links platzieren kann.

                    Steht dort auch mit in der Readme.
                    https://github.com/ioBroker/ioBroker.admin/blob/master/packages/jsonConfig/README.md#json-tab-in-admin

                    SKB 1 Reply Last reply Reply Quote 2
                    • SKB
                      SKB Developer Most Active @simatec last edited by

                      @simatec Danke, das habe ich dort auch gefunden. Allerdings macht die Syntax nicht mit (oder ich verstehe sie nicht 😉 )

                      Z.B. ein Slider:

                      "_chargeCurrent": {
                               "newLine": true,
                               "type": "state",
                               "label": "tab_chargeAmpere",
                               "control": "slider",
                               "controlDelay": 500,
                               "oid": "control.chargeCurrent",
                               "narrow": true,
                               "addColon": true,
                               "min": 6,
                               "max": 32,
                               "size": 2,
                               "xs": 12,
                               "sm": 12,
                               "md": 12,
                               "lg": 12,
                               "xl": 12
                            }
                      

                      geht problemlos.

                      Ein Dropdown, was so aussehen soll, zeigt nur eine "Number" Box an:

                      "_mode": {
                               "newLine": true,
                               "type": "state",
                               "label": "tab_mode",
                               "control": "select",
                               "oid": "control.mode",
                               "size": 2,
                               "xs": 12,
                               "sm": 12,
                               "md": 12,
                               "lg": 12,
                               "xl": 12
                            },
                      

                      Ob nun mit oder ohne options - ich bekomme nur eine Number Box.

                      simatec 1 Reply Last reply Reply Quote 0
                      • simatec
                        simatec Developer Most Active @SKB last edited by

                        @skb Zeige mal die komplette json
                        Hast du dir das mal in shuttercontrol angeschaut

                        SKB 1 Reply Last reply Reply Quote 0
                        • SKB
                          SKB Developer Most Active @simatec last edited by SKB

                          @simatec Klar.

                          Also, es sollen insgesamt 3 Felder sein.

                          2025-05-26 10_49_55-.png

                          Das erste Feld sollte ein "select" sein - wird aber eine Number.

                          Das zweite Feld ist eigentlich als Text - ist aber ein Number Feld.

                          Das dritte Feld ist der Slider - der funktioniert.

                          Das json dazu ist wie folgt:

                          {
                             "type": "panel",
                             "i18n": true,
                             "items": {
                                "_logo": {
                                   "type": "staticImage",
                                   "noTranslation": true,
                                   "src": "chargecontrol.png",
                                   "newLine": true,
                                   "xs": 2,
                                   "sm": 2,
                                   "md": 1,
                                   "lg": 0.33,
                                   "xl": 0.33
                                },
                                "chargeControlHeader": {
                                   "type": "staticText",
                                   "text": {
                                      "en": "ChargeControl",
                                      "de": "Ladesteuerung",
                                      "ru": "ChargeControl",
                                      "pt": "Controle de Carga",
                                      "nl": "ChargeControl",
                                      "fr": "Contrôle de charge",
                                      "it": "ChargeControl",
                                      "es": "ChargeControl",
                                      "pl": "ChargeControl",
                                      "uk": "Партнерство",
                                      "zh-cn": "充电控制"
                                   },
                                   "style": {
                                      "fontSize": 24
                                   },
                                   "xs": 10,
                                   "sm": 10,
                                   "md": 11,
                                   "lg": 11,
                                   "xl": 11
                                },
                                "_info": {
                                   "newLine": true,
                                   "type": "staticText",
                                   "text": "tab_intro",
                                   "size": 2,
                                   "xs": 12,
                                   "sm": 12,
                                   "md": 12,
                                   "lg": 12,
                                   "xl": 12
                                },
                                "mode": {
                                   "type": "state",
                                   "label": "tab_mode",
                                   "control": "select",
                                   "options": [
                                      {
                                         "label": "tab_mode_deactivated",
                                         "value": 0
                                      },
                                      {
                                         "label": "tab_mode_manual",
                                         "value": 1
                                      }
                                   ],
                                   "oid": "control.mode",
                                   "xs": 12,
                                   "sm": 12,
                                   "md": 12,
                                   "lg": 12,
                                   "xl": 12
                                },
                                "chargeCurrentDisplay": {
                                   "type": "state",
                                   "label": "tab_chargeAmpere",
                                   "oid": "control.chargeCurrent",
                                   "narrow": true,
                                   "addColon": true,
                                   "readOnly": true,
                                   "blinkOnUpdate": true,
                                   "highlight": true,
                                   "unit": "A",
                                   "xs": 12,
                                   "sm": 12,
                                   "md": 4,
                                   "lg": 3,
                                   "xl": 3
                                },
                                "chargeCurrent": {
                                   "newLine": true,
                                   "type": "state",
                                   "label": "tab_chargeAmpere",
                                   "control": "slider",
                                   "controlDelay": 500,
                                   "oid": "control.chargeCurrent",
                                   "min": 6,
                                   "max": 32,
                                   "size": "normal",
                                   "xs": 12,
                                   "sm": 12,
                                   "md": 12,
                                   "lg": 12,
                                   "xl": 12
                                }
                             }
                          }
                          

                          Admin Instanz dazu ist: 7.6.3

                          simatec 1 Reply Last reply Reply Quote 0
                          • simatec
                            simatec Developer Most Active @SKB last edited by simatec

                            @skb Hast du es mal mit id: 'shuttercontrol.%INSTANCE%.control.autoAll', versucht Beim Button muss es z.B. die ID sein

                            SKB 1 Reply Last reply Reply Quote 0
                            • SKB
                              SKB Developer Most Active @simatec last edited by SKB

                              @simatec Probiert habe ich bereits vieles - leider ohne Erfolg.

                              Gehen wir mal chronologisch vor und nehmen nur einen Datenpunkt, der als Select fungieren soll.

                              Die Syntax dazu ist:

                              "mode": {
                                       "type": "state",
                                       "label": "tab_mode",
                                       "control": "select",
                                       "options": [
                                          {
                                             "label": "tab_mode_deactivated",
                                             "value": 0
                                          },
                                          {
                                             "label": "tab_mode_manual",
                                             "value": 1
                                          }
                                       ],
                                       "oid": "control.mode",
                                       "xs": 12,
                                       "sm": 12,
                                       "md": 12,
                                       "lg": 12,
                                       "xl": 12
                                    },
                              

                              Dargestellt wird eine Number-Box. Hier kann ich zwar die Werte ändern - jedoch greift das Select nicht.
                              2025-05-26 11_01_54-chargecontrol-0 - ioBroker-master – Mozilla Firefox.png

                              simatec 1 Reply Last reply Reply Quote 0
                              • simatec
                                simatec Developer Most Active @SKB last edited by

                                @skb Ich würde type: 'setState',nehmen

                                SKB 1 Reply Last reply Reply Quote 0
                                • SKB
                                  SKB Developer Most Active @simatec last edited by

                                  @simatec state oder setState funktioniert zum Setzen. Aber beide zeigen keine Select-Box an.

                                  simatec 1 Reply Last reply Reply Quote 0
                                  • simatec
                                    simatec Developer Most Active @SKB last edited by

                                    @skb Zeige mal den State. Der State muss vom Typ her zum json Eintrag passen. Ist da kein select definiert, zeigt er die nur den Wert an. Das würde auch passieren, wenn du einen State vom Type String als Slider integrierst

                                    SKB 1 Reply Last reply Reply Quote 0
                                    • SKB
                                      SKB Developer Most Active @simatec last edited by SKB

                                      @simatec Ah, ok. Das macht allerdings Sinn. Der state ist tatsächlich eine Number - aber, wie könnte man ihn als "List" passend machen? Dann liegt wohl da der Fehler.

                                      "type": "number",
                                          "role": "indicator",
                                          "read": true,
                                          "write": true,
                                          "def": 0,
                                          "states": {
                                            "0": "Deactivated",
                                            "1": "Manual",
                                            "2": "Only Surplus",
                                            "3": "Minimal + Surplus",
                                            "4": "Fast"
                                          }
                                      

                                      Allerdings steht ja in der Beschreibung der states, das states nur bei number oder string gilt. Somit müsste ja dann auch ein select bei jsonTab gültig sein.

                                      Was ja auch nicht geht - wie es bei shuttercontrol klappt, eine Zahl ohne Box darzustellen:
                                      2025-05-26 11_57_38-chargecontrol-0 - ioBroker-master – Mozilla Firefox.png

                                      "chargeCurrentDisplay": {
                                               "newLine": true,
                                               "type": "state",
                                               "label": "tab_chargeAmpere",
                                               "oid": "control.chargeCurrent",
                                               "narrow": true,
                                               "addColon": true,
                                               "readOnly": true,
                                               "blinkOnUpdate": true,
                                               "highlight": true,
                                               "unit": "A",
                                               "xs": 12,
                                               "sm": 12,
                                               "md": 6,
                                               "lg": 6,
                                               "xl": 6
                                            },
                                      

                                      Sollte, wie bei shuttercontrol aussehen:
                                      2025-05-26 11_58_23-shuttercontrol-0 - ioBroker-master – Mozilla Firefox.png

                                      Edit: Ok, das geht - allerdings nur, wenn der state auch auf write: false steht. Sollte das dann nicht eher immer so sein, wenn ich dies auf readOnly: true stelle?

                                      mcm1957 1 Reply Last reply Reply Quote 0
                                      • mcm1957
                                        mcm1957 @SKB last edited by mcm1957

                                        @skb said in jsonConfig für jsonTab:

                                        "type": "number",
                                        "role": "indicator", 
                                        "read": true,
                                        "write": true,
                                        :
                                        :                                                                                                                                                                               }                                            
                                        

                                        Bitte korrigiere die ROLE des States:
                                        role indicator erfordert type BOOLEAN, READ-ONLY.
                                        siehe https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md#indicators-boolean-read-only

                                        Hier würde wahrscheinlich value[.xxx] oder info.status passen oder wenns schreibbar sein soll level[.x]

                                        SKB 1 Reply Last reply Reply Quote 0
                                        • SKB
                                          SKB Developer Most Active @mcm1957 last edited by

                                          @mcm1957 Kann ich machen - ändert jedoch nichts an den o.g. "Problemen".

                                          mcm1957 1 Reply Last reply Reply Quote 1
                                          • mcm1957
                                            mcm1957 @SKB last edited by

                                            @skb
                                            Ja ist schon klar - war nur als ein Hinweis gedacht weil ichs gesehen habe.
                                            Sorry für Unterbrechung /Randanmerkung.

                                            An sich sollte aber - weil du in einer der ersten Beiträge gefragt hast - das oben angeführte README auch für tab passen. Wenn was nicht funktioniert wär es ein Issue im admin Adapter Repo. Funktionalität sollte mit admin ausgeliefert werden. Also ggF den aktuellsten Admin gegentesten wenn du nicht eh am latest bin (stable wurde heute aktualissiert).

                                            Die Komponents der jsconConfig sind übrigends da (https://github.com/ioBroker/ioBroker.admin/tree/master/packages/jsonConfig/src/JsonConfigComponent) kodiert. Falls du selbst suchen / schaun willst was da wie implementiert ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            896
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            29
                                            746
                                            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