Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Konzept: JSON State Mapper für ioBroker Javascript Engine

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Konzept: JSON State Mapper für ioBroker Javascript Engine

Scheduled Pinned Locked Moved JavaScript
9 Posts 4 Posters 812 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    stev-io
    wrote on last edited by
    #1

    Hallo zusammen!

    Ich bin ein ioBroker-Neuling und arbeite viel mit Geräten, die JSON-Dokumente veröffentlichen. Also habe ich nach Möglichkeiten gesucht, Werte aus JSON-Dokumenten automatisch als separate Datenpunkte zu speichern. Das Ganze so konfigurativ wie möglich, also ohne für jeden neuen Sensor etc. Skripte anpassen zu müssen. Da ich mit mäßig umfangreicher Recherche keine Lösung finden konnte, die meinen Vorlieben und Arbeitsweisen am besten entsprach, und ich parallel dazu ohnehin in die Tiefen und Untiefen von ioBroker eintauchen wollte, habe ich eine eigene Softwarekomponente (ein TypeScript-Modul) entworfen. Im Sinne eines Proof of Concept, um zu sehen, ob sich mein Wunsch realisieren lässt. Wahrscheinlich gibt es da draußen auch bessere Lösungen. Vielleicht ist mein "Flow" auch nicht der der Allgemeinheit, weshalb meine Lösung für andere möglicherweise nicht so gut passt. Aber: Da das Modul schon etwas an Größe gewonnen hat und bei mir schon eine Weile erfolgreich im Einsatz ist, dachte ich, ich könnte den aktuellen Stand der Arbeit teilen. Als Inspiration, wie man es machen kann, nicht machen sollte oder was auch immer ;) Das Modul liegt hier:

    https://github.com/stevenengland/iobJs-JsonStateMapper

    Aktuell ist alles auf Englisch dokumentiert. Mir ist erst auf dem Weg zur Lösung aufgefallen, wie viel umfangreicher die Deutsche Community für ioBroker ist ;) Mal ganz was neues für mich... Wenn sich irgendwer hierfür interessiert und es auf Deutsch braucht, schaue ich einmal, dass ich das nachziehe.

    Zur Lösung: Grob gesagt konfiguriert man, welche Änderungen welcher Datenpunkte, bestehend aus JSON-Dokumenten (Quelldatenpunkte), man abonnieren möchte und wohin (Zieldatenpunkte) Werte aus der Quelle bei jeder Änderung der Quelle geschrieben werden sollen. Bildlich dargestellt:
    ed573a33-f90a-4194-a474-81ace902c206-1698483580024-622c7bed-bc13-4892-97ec-b009f222e217-grafik.png
    Es handelt sich hierbei um eine Tasmota Steckdose, von der ich die Leistung (Power), welche im Datenpunkt SENSOR steckt in einen eigenen Datenpunkt CURRENT_POWER übertragen möchte.

    Wie genau es funktioniert und was benötigt wird, ist in der README im Repo dokumentiert. Da ist viel Hinführung drin, am besten einmal zum Beispiel ganz unten springen. Viel mehr mag ich hier gar nicht schreiben, da ich aus Aktualitätsgründen die Dateils lieber im Repository pflege.

    VG

    T 1 Reply Last reply
    1
    • S stev-io

      Hallo zusammen!

      Ich bin ein ioBroker-Neuling und arbeite viel mit Geräten, die JSON-Dokumente veröffentlichen. Also habe ich nach Möglichkeiten gesucht, Werte aus JSON-Dokumenten automatisch als separate Datenpunkte zu speichern. Das Ganze so konfigurativ wie möglich, also ohne für jeden neuen Sensor etc. Skripte anpassen zu müssen. Da ich mit mäßig umfangreicher Recherche keine Lösung finden konnte, die meinen Vorlieben und Arbeitsweisen am besten entsprach, und ich parallel dazu ohnehin in die Tiefen und Untiefen von ioBroker eintauchen wollte, habe ich eine eigene Softwarekomponente (ein TypeScript-Modul) entworfen. Im Sinne eines Proof of Concept, um zu sehen, ob sich mein Wunsch realisieren lässt. Wahrscheinlich gibt es da draußen auch bessere Lösungen. Vielleicht ist mein "Flow" auch nicht der der Allgemeinheit, weshalb meine Lösung für andere möglicherweise nicht so gut passt. Aber: Da das Modul schon etwas an Größe gewonnen hat und bei mir schon eine Weile erfolgreich im Einsatz ist, dachte ich, ich könnte den aktuellen Stand der Arbeit teilen. Als Inspiration, wie man es machen kann, nicht machen sollte oder was auch immer ;) Das Modul liegt hier:

      https://github.com/stevenengland/iobJs-JsonStateMapper

      Aktuell ist alles auf Englisch dokumentiert. Mir ist erst auf dem Weg zur Lösung aufgefallen, wie viel umfangreicher die Deutsche Community für ioBroker ist ;) Mal ganz was neues für mich... Wenn sich irgendwer hierfür interessiert und es auf Deutsch braucht, schaue ich einmal, dass ich das nachziehe.

      Zur Lösung: Grob gesagt konfiguriert man, welche Änderungen welcher Datenpunkte, bestehend aus JSON-Dokumenten (Quelldatenpunkte), man abonnieren möchte und wohin (Zieldatenpunkte) Werte aus der Quelle bei jeder Änderung der Quelle geschrieben werden sollen. Bildlich dargestellt:
      ed573a33-f90a-4194-a474-81ace902c206-1698483580024-622c7bed-bc13-4892-97ec-b009f222e217-grafik.png
      Es handelt sich hierbei um eine Tasmota Steckdose, von der ich die Leistung (Power), welche im Datenpunkt SENSOR steckt in einen eigenen Datenpunkt CURRENT_POWER übertragen möchte.

      Wie genau es funktioniert und was benötigt wird, ist in der README im Repo dokumentiert. Da ist viel Hinführung drin, am besten einmal zum Beispiel ganz unten springen. Viel mehr mag ich hier gar nicht schreiben, da ich aus Aktualitätsgründen die Dateils lieber im Repository pflege.

      VG

      T Do not disturb
      T Do not disturb
      ticaki
      wrote on last edited by ticaki
      #2

      @stev-io

      Will das jetzt nicht kritisieren, hab was ähnliches für shelly plus geräte am laufen, aber es gibt den Sonoff Adapter der im Grunde das macht, was du erzielen möchtest.

      Wenn du jedoch mit "richtigem" Mqtt arbeiten möchtest, ist der Adapter natürlich nicht zielführend. Das ist auch der Grund für mein shelly skript.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      S 1 Reply Last reply
      0
      • T ticaki

        @stev-io

        Will das jetzt nicht kritisieren, hab was ähnliches für shelly plus geräte am laufen, aber es gibt den Sonoff Adapter der im Grunde das macht, was du erzielen möchtest.

        Wenn du jedoch mit "richtigem" Mqtt arbeiten möchtest, ist der Adapter natürlich nicht zielführend. Das ist auch der Grund für mein shelly skript.

        S Offline
        S Offline
        stev-io
        wrote on last edited by
        #3

        Hi, @ticaki danke für deine Ausführung. Das würde ich auch nicht als Kritik auffassen, sondern als Hinweise. Im Prinzip genau wie du sagst + ein anderer Aspekte:

        • Ich nutze einen eigenen MQTT Broker
        • Ich verarbeite auch non Sonoff kompatible Geräte

        Ansonsten ist natürlich der Sonoff Adapter sicher eine feine Sache, keine Frage.

        T 1 Reply Last reply
        0
        • S stev-io

          Hi, @ticaki danke für deine Ausführung. Das würde ich auch nicht als Kritik auffassen, sondern als Hinweise. Im Prinzip genau wie du sagst + ein anderer Aspekte:

          • Ich nutze einen eigenen MQTT Broker
          • Ich verarbeite auch non Sonoff kompatible Geräte

          Ansonsten ist natürlich der Sonoff Adapter sicher eine feine Sache, keine Frage.

          T Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by
          #4

          @stev-io
          Soweit ich das sehe kannst du damit keine Schaltbefehle senden oder?

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          S 1 Reply Last reply
          0
          • T ticaki

            @stev-io
            Soweit ich das sehe kannst du damit keine Schaltbefehle senden oder?

            S Offline
            S Offline
            stev-io
            wrote on last edited by
            #5

            @ticaki Das stimmt. Die einzige Aufgabe ist das "Mappen" von JSON Quelldatenpunkten auf eigene Zieldatenpunkte.

            1 Reply Last reply
            0
            • B Offline
              B Offline
              Blockmove
              wrote on last edited by
              #6

              @stev-io

              Ich finde deinen Ansatz richtig gut.
              Der Flow Device -> MQTT (JSON) -> ioBroker ist recht häufig.
              Egal ob nun Tasmota / Sonoff, WLED oder ähnliches.
              Klar gibt es für Etliches entsprechende Adapter. Aber nicht alle sind gut gepflegt.
              Da ist eine Art Universal-Empfänger schon nicht verkehrt.

              Vielen Dank für deine Mühe!

              The difference beetween Man and Boys:
              The price of their toys 😀

              S haus-automatisierungH 2 Replies Last reply
              0
              • B Blockmove

                @stev-io

                Ich finde deinen Ansatz richtig gut.
                Der Flow Device -> MQTT (JSON) -> ioBroker ist recht häufig.
                Egal ob nun Tasmota / Sonoff, WLED oder ähnliches.
                Klar gibt es für Etliches entsprechende Adapter. Aber nicht alle sind gut gepflegt.
                Da ist eine Art Universal-Empfänger schon nicht verkehrt.

                Vielen Dank für deine Mühe!

                S Offline
                S Offline
                stev-io
                wrote on last edited by
                #7

                @blockmove Vielen Dank 😊 Deine Zusammenfassung ist echt um Längen besser als all meine vielen erklärenden Worte :-D Ich werde das Wording glaube ich so oder so ähnlich übernehmen ;)

                1 Reply Last reply
                0
                • B Blockmove

                  @stev-io

                  Ich finde deinen Ansatz richtig gut.
                  Der Flow Device -> MQTT (JSON) -> ioBroker ist recht häufig.
                  Egal ob nun Tasmota / Sonoff, WLED oder ähnliches.
                  Klar gibt es für Etliches entsprechende Adapter. Aber nicht alle sind gut gepflegt.
                  Da ist eine Art Universal-Empfänger schon nicht verkehrt.

                  Vielen Dank für deine Mühe!

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  wrote on last edited by
                  #8

                  @blockmove sagte in Konzept: JSON State Mapper für ioBroker Javascript Engine:

                  Aber nicht alle sind gut gepflegt.

                  Konkret? Würde gern aushelfen und die Adapter besser machen

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

                  B 1 Reply Last reply
                  0
                  • haus-automatisierungH haus-automatisierung

                    @blockmove sagte in Konzept: JSON State Mapper für ioBroker Javascript Engine:

                    Aber nicht alle sind gut gepflegt.

                    Konkret? Würde gern aushelfen und die Adapter besser machen

                    B Offline
                    B Offline
                    Blockmove
                    wrote on last edited by
                    #9

                    @haus-automatisierung said in Konzept: JSON State Mapper für ioBroker Javascript Engine:

                    @blockmove sagte in Konzept: JSON State Mapper für ioBroker Javascript Engine:

                    Aber nicht alle sind gut gepflegt.

                    Konkret? Würde gern aushelfen und die Adapter besser machen

                    Ich kann dir aktuell keinen Adapter nennen.
                    Als letztes hat mich aber der WLED-Adapter "geärgert", da da die Anpassung an die neue WLED-Version sehr lange gedauert hat und in der Zwischenzeit das Log mit Warnmeldungen geflutet wurde. Ist aber mittlerweile wohl gefixt. Mir ist klar, dass fast alles rund um ioBroker Community-Projekte sind und deshalb ist das auch absolut keine Kritik! Also bitte keine Diskussion um Adapterentwicklung.
                    Ich persönlich versuche nun, wenn MQTT verwendet wird, auf Adapter zu verzichten und direkt mit MQTT zu arbeiten. Daher finde ich diesen universellen Ansatz @stev-io sehr interessant.
                    Aber das passt eben zu meiner Art mit ioBroker Dinge umzusetzen, Andere können das anders sehen.

                    Für mich persönlich ist ioBroker eine Art universelles IoT-Tool, quasi eine Steigerung der Möglichkeiten von Node RED. Mag vielleicht daran liegen, dass ich aus der industriellen i4.0-Ecke komme und nicht unbedingt der "normale" Smarthome-Bastler bin.

                    The difference beetween Man and Boys:
                    The price of their toys 😀

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    696

                    Online

                    32.5k

                    Users

                    81.7k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe