Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Komplexe Konfiguration mit jsonConfig

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    8
    1
    193

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    767

Komplexe Konfiguration mit jsonConfig

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
5 Beiträge 2 Kommentatoren 264 Aufrufe 3 Beobachtet
  • Ä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.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von Ein ehemaliger Benutzer
    #1

    Hallo,

    Eine Frage an ioBroker-Gurus.

    Ich möchte gerne in einem Adapter mit jsonConfig eine Konfigurations-Maske bauen, die es mir erlauben würde verschaltete Objekte zu konfigurieren.

    Am Ende möchte ich eine Liste von Objekten haben, die einen freigewählten Namen haben und eine Liste von "Properties". Jede Property wiederum hat einen Namen (aus einer vordefinierten Liste von möglichen Namen) und eine Liste von "Mappings". Die Mappings-Liste kann leer sein. Ob die Mappings-Liste einer Property leer ist, hängt vom Propertynamen ab. Die Mappingsliste, wenn sie nicht leer ist, hat eine bestimmte Anzahl von Elementen, was auch durch Propertynamen vorgegeben ist.

    Ich glaube man könnte es mit verschachtelten Tabellen implementieren, was auch so weit funktioniert:

    Bildschirmfoto 2022-05-21 um 13.27.35.png

    Was ich nicht weiss ist, wie ich diese ganzen Bedingungen enforcen könnte. Also wie kann ich je nach Propertynamen die Mappingsliste vorbelegen oder sicherstellen, dass kein Element zu der Mappingstabelle hinzugefügt werden kann.

    Idealerweise würde ich in der Konfigurations-UI bereits "falsche" Konfigurationen verhindern wollen und nicht erst die Konfiguration validieren, wenn auf SAVE geklickt wurde.

    Hat jemand eine Idee? Oder bin ich hier total auf dem falschen Weg und könnte es ganz einfach anders implementieren?

    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      Hallo,

      Eine Frage an ioBroker-Gurus.

      Ich möchte gerne in einem Adapter mit jsonConfig eine Konfigurations-Maske bauen, die es mir erlauben würde verschaltete Objekte zu konfigurieren.

      Am Ende möchte ich eine Liste von Objekten haben, die einen freigewählten Namen haben und eine Liste von "Properties". Jede Property wiederum hat einen Namen (aus einer vordefinierten Liste von möglichen Namen) und eine Liste von "Mappings". Die Mappings-Liste kann leer sein. Ob die Mappings-Liste einer Property leer ist, hängt vom Propertynamen ab. Die Mappingsliste, wenn sie nicht leer ist, hat eine bestimmte Anzahl von Elementen, was auch durch Propertynamen vorgegeben ist.

      Ich glaube man könnte es mit verschachtelten Tabellen implementieren, was auch so weit funktioniert:

      Bildschirmfoto 2022-05-21 um 13.27.35.png

      Was ich nicht weiss ist, wie ich diese ganzen Bedingungen enforcen könnte. Also wie kann ich je nach Propertynamen die Mappingsliste vorbelegen oder sicherstellen, dass kein Element zu der Mappingstabelle hinzugefügt werden kann.

      Idealerweise würde ich in der Konfigurations-UI bereits "falsche" Konfigurationen verhindern wollen und nicht erst die Konfiguration validieren, wenn auf SAVE geklickt wurde.

      Hat jemand eine Idee? Oder bin ich hier total auf dem falschen Weg und könnte es ganz einfach anders implementieren?

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      @iwg Schon der Thread-Titel verfehlt schon den Sinn von jsonConfig.

      Komplexe Konfiguration mit jsonConfig

      jsonConfig ist für einfache Konfigurationsoberflächen gedacht. Keine komplexe Logik, ggf. ein paar Dinge die voneinander abhängen. Quasi die 90% der Adapter, die ne Handvoll Werte eintragen müssen.

      Es könnte eventuell mit den xyzSendTo-Feldern gehen, wo dir der Adapter abhängig von den übergebenen Daten die Dropdown-Inhalte zurück gibt. Das müsste dir aber jemand beantworten, der sich mit jsonConfig auch auskennt.

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      ? 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        @iwg Schon der Thread-Titel verfehlt schon den Sinn von jsonConfig.

        Komplexe Konfiguration mit jsonConfig

        jsonConfig ist für einfache Konfigurationsoberflächen gedacht. Keine komplexe Logik, ggf. ein paar Dinge die voneinander abhängen. Quasi die 90% der Adapter, die ne Handvoll Werte eintragen müssen.

        Es könnte eventuell mit den xyzSendTo-Feldern gehen, wo dir der Adapter abhängig von den übergebenen Daten die Dropdown-Inhalte zurück gibt. Das müsste dir aber jemand beantworten, der sich mit jsonConfig auch auskennt.

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
        #3

        @alcalzone
        Danke für Deine Antwort.

        Das habe ich mir bereits gedacht :( Mittlerweile bin ich von der Idee jsonConfig zu verwenden abgerückt.
        Allerdings ist mir noch nicht ganz klar was in einem komplexen Fall der richtige Weg wäre. Angenommen ich würde meine Konfiguration mit Angular, oder was auch immer, als eine Web-App implementieren, wie könnte ich die dann an ioBroker Konfigurations-Mechanismen anbinden?

        AlCalzoneA 1 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @alcalzone
          Danke für Deine Antwort.

          Das habe ich mir bereits gedacht :( Mittlerweile bin ich von der Idee jsonConfig zu verwenden abgerückt.
          Allerdings ist mir noch nicht ganz klar was in einem komplexen Fall der richtige Weg wäre. Angenommen ich würde meine Konfiguration mit Angular, oder was auch immer, als eine Web-App implementieren, wie könnte ich die dann an ioBroker Konfigurations-Mechanismen anbinden?

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von AlCalzone
          #4

          @iwg Die üblichen Wege wären entweder handgeschriebenes HTML/JS mit Styling via MaterializeCSS, oder wie viele der komplexeren Adapterkonfigurationen mittels React und der Material-UI library.

          Bei React wäre der Vorteil, dass es auch eine offizielle Library für die Integration in ioBroker gibt, die dir vieles abnimmt:
          https://github.com/ioBroker/adapter-react-v5

          Wenn du mit dem Creator einen adapter erstellst und dort React auswählst, wird dir im Übrigen auch eine Konfig-UI mit adapter-react erstellt. Die Abhängigkeit solltest du ggf. noch durch @iobroker/adapter-react-v5 ersetzen, da der Creator by default noch die alte Version nutzt.

          Darüber hinaus habe ich einen Wrapper geschrieben, der das ganze mit deutlich weniger Boilerplate-Code hinbekommt:
          https://github.com/AlCalzone/iobroker-react (repo)
          https://alcalzone.github.io/iobroker-react/#/ (Doku)
          https://alcalzone.github.io/iobroker-react/#/components/SettingsApp?id=example (Beispiel einer Settings UI)
          Allerdings arbeitet auch der derzeit noch mit der Vorgängerversion von adapter-react, d.h. du musst ggf. noch etwas Tricksen, was styling angeht.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          ? 1 Antwort Letzte Antwort
          0
          • AlCalzoneA AlCalzone

            @iwg Die üblichen Wege wären entweder handgeschriebenes HTML/JS mit Styling via MaterializeCSS, oder wie viele der komplexeren Adapterkonfigurationen mittels React und der Material-UI library.

            Bei React wäre der Vorteil, dass es auch eine offizielle Library für die Integration in ioBroker gibt, die dir vieles abnimmt:
            https://github.com/ioBroker/adapter-react-v5

            Wenn du mit dem Creator einen adapter erstellst und dort React auswählst, wird dir im Übrigen auch eine Konfig-UI mit adapter-react erstellt. Die Abhängigkeit solltest du ggf. noch durch @iobroker/adapter-react-v5 ersetzen, da der Creator by default noch die alte Version nutzt.

            Darüber hinaus habe ich einen Wrapper geschrieben, der das ganze mit deutlich weniger Boilerplate-Code hinbekommt:
            https://github.com/AlCalzone/iobroker-react (repo)
            https://alcalzone.github.io/iobroker-react/#/ (Doku)
            https://alcalzone.github.io/iobroker-react/#/components/SettingsApp?id=example (Beispiel einer Settings UI)
            Allerdings arbeitet auch der derzeit noch mit der Vorgängerversion von adapter-react, d.h. du musst ggf. noch etwas Tricksen, was styling angeht.

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #5

            @alcalzone
            Vielen Dank!
            Ich schaue mir das an.

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

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

            539

            Online

            32.9k

            Benutzer

            83.0k

            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