Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Konzept: JSON State Mapper für ioBroker Javascript Engine

    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

    Konzept: JSON State Mapper für ioBroker Javascript Engine

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stev-io last edited by

      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 Reply Quote 1
      • T
        ticaki Developer @stev-io last edited by 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 1 Reply Last reply Reply Quote 0
        • S
          stev-io @ticaki last edited by

          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 Reply Quote 0
          • T
            ticaki Developer @stev-io last edited by

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

            S 1 Reply Last reply Reply Quote 0
            • S
              stev-io @ticaki last edited by

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

              1 Reply Last reply Reply Quote 0
              • B
                Blockmove last edited by

                @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 haus-automatisierung 2 Replies Last reply Reply Quote 0
                • S
                  stev-io @Blockmove last edited by

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

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

                    @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 1 Reply Last reply Reply Quote 0
                    • B
                      Blockmove @haus-automatisierung last edited by

                      @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.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      805
                      Online

                      31.7k
                      Users

                      79.9k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      433
                      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