Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] JSON Wert in Datenpunkt schreiben

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [gelöst] JSON Wert in Datenpunkt schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • RaspiUser
      RaspiUser last edited by RaspiUser

      ... wieder ein Anfängerfehler (bzw. die Sache mit dem Wald und den Bäumen ...), oder ?

      Ich möchte die Leistungswerte von Hichi-Leseköpfen in Datenpunkte schreiben.

      Das Parsen klappt, keine Fehler(meldungen) im Blockly ...
      Blockly.JPG
      ... aber die DP (Zahl) werden nicht geschrieben.
      DP.JPG
      Danke für die Hilfe ...

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

        @raspiuser
        2 Möglichkeiten:
        1.) Du verwendest den Sonoff-Adapter und hast dort bereits die passenden Datenpunkte.
        2.) Du verwendest MQTT und erzeugst Dir Aliase. Dort kann man über die Konvertierungsfunktion gleich das JSON parsen ... ohne zusätzliches Script.

        Für Variante 2:
        8e23dd10-6d8c-47f4-bb25-3b5a7a2a5808-image.png

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

          @raspiuser sagte in JSON Wert in Datenpunkt schreiben:

          Das Parsen klappt, keine Fehler(meldungen) im Blockly ...

          1. Ist es ziemlich umständlich, über JavaScript einen HTTP-Request auf die eigene API auszulösen, welche dann wieder auf einen Datenpunkt zugreift, den Du doch auch direkt in Blockly lesen könntest. Warum der Umweg?
          2. solltest Du entweder JSONata ODER "Attribut von Objekt" verwenden. Das so zu schachteln ist unnötig
          3. geht es viel einfacher, wenn man direkt einen Alias verwendet um den Wert zu extrahieren, so wie von @Codierknecht bereits beschrieben
          RaspiUser 1 Reply Last reply Reply Quote 1
          • RaspiUser
            RaspiUser @haus-automatisierung last edited by

            Danke ! an euch Beide.
            @Codierknecht @haus-automatisierung
            OK, "Variante 2" bzw. "3." probiere ich ... (... mit "Aliase" kenne ich mich (noch) weniger aus ...)

            @haus-automatisierung said in JSON Wert in Datenpunkt schreiben:

            Warum der Umweg?

            Weil ich es nicht besser kannte / konnte ... 😕

            Trotzdem mal als Lerneffekt:
            Warum funktioniert der erste Ansatz nicht (Auch wenn er umständlich ist) ?
            Und wie lautet die Blockly Anweisung um direkt zu lesen ?
            (Mit 6cc1cba1-6d5b-438d-875f-b6f073299125-grafik.png hat es erst recht nicht funktioniert ...)

            Codierknecht 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @RaspiUser last edited by

              @raspiuser
              Vergiss das mit dem HTTP-Request. Das ist völliger Quatsch.
              Wenn Du es - aus welchem Grund auch immer - unbedingt per Script machen willst, dann (prinzipiell) so:
              ed892cae-3e9f-424c-8bb1-566d974a69d3-image.png
              Du triggerst auf den DP mit dem JSON. In "Wert" steht dann das komplette JSON, das Du dann auseinanderpflücken kannst.
              "Wert" findest Du im Bereich "Trigger" - dort noch als Block "Objekt ID" ... das wird dann entsprechend geändert.

              Aber schau Dir das mit den Aliasen an.
              Die werden wie DP unter 0_userdata.0 auch ganz einfach im Baum - natürlich unter alias.0 - angelegt und dann wie oben gezeigt eingestellt.
              Damit spart man sich möglicherweise 'ne ganze Menge Scripte.
              Und auch sonst sind die sehr hilfreich. Falls sich mal ein Gerät verabschiedet und ersetzt wird, lässt man nur den Alias woanders "hingucken". Alle Scripte und Visualisierungen die sich auf den Alias beziehen funktionieren dann auch mit dem neuen Gerät.

              RaspiUser 1 Reply Last reply Reply Quote 1
              • RaspiUser
                RaspiUser @Codierknecht last edited by

                @codierknecht said in JSON Wert in Datenpunkt schreiben:

                Wenn Du es - aus welchem Grund auch immer - unbedingt per Script machen willst, dann (prinzipiell) so:

                Ich wollte nur den Leistungs-Wert parsen, sonst nix.
                Das ist so wie beim arbeiten mit Word-Dokumenten .... man nimmt die bekannten "einfachen" Funktionen und hofft das es klappt obwohl es einen eleganteren und schnelleren Weg in irgendwelchen Untermenüs gibt.
                Nur zum Verständnis: Dein Blockly Vorschlag bringt als Debug Ausgabe 0a1775bf-14b4-41b3-9759-2a34c29a5a2c-grafik.png ... da hätte ich jetzt den kompletten JSON erwartet, oder ?

                @codierknecht said in JSON Wert in Datenpunkt schreiben:

                unter alias.0 - angelegt und dann wie oben gezeigt eingestellt.

                Hat super funktioniert !!!! Vielen Dank für den Screenshot ! 👍

                Letzte Frage: Wo kann man mehr zu den "Konvertierungsfunktionen " bzw. Syntax "Konverter Lesen / Schreiben" informieren ?

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

                  @raspiuser sagte in [gelöst] JSON Wert in Datenpunkt schreiben:

                  Letzte Frage: Wo kann man mehr zu den "Konvertierungsfunktionen " bzw. Syntax "Konverter Lesen / Schreiben" informieren ?

                  Ich habe dazu hier ein paar Beispiele zusammengetragen: https://iobroker.readthedocs.io/de/latest/basics/aliases.html

                  Und sonst gibts einige Beispiele im Master Kurs

                  RaspiUser 1 Reply Last reply Reply Quote 0
                  • RaspiUser
                    RaspiUser @haus-automatisierung last edited by RaspiUser

                    @haus-automatisierung said in [gelöst] JSON Wert in Datenpunkt schreiben:
                    Danke für den Link.

                    Master Kurs

                    .... dann muss ich da mal wieder reinschauen ...😊

                    1 Reply Last reply Reply Quote 1
                    • Codierknecht
                      Codierknecht Developer Most Active @RaspiUser last edited by

                      @raspiuser sagte in [gelöst] JSON Wert in Datenpunkt schreiben:

                      Nur zum Verständnis: Dein Blockly Vorschlag bringt als Debug Ausgabe ... da hätte ich jetzt den kompletten JSON erwartet, oder ?

                      Dann hast Du entweder auf den falschen DP getriggert oder das Attribut nicht korrekt benannt.

                      Egal - wenn Du mit den Aliasen klarkommst, nimm die. Ist am einfachsten.

                      1 Reply Last reply Reply Quote 0
                      • M
                        martinschm @Codierknecht last edited by

                        @codierknecht said in [gelöst] JSON Wert in Datenpunkt schreiben:

                        @raspiuser
                        2 Möglichkeiten:
                        1.) Du verwendest den Sonoff-Adapter und hast dort bereits die passenden Datenpunkte.
                        2.) Du verwendest MQTT und erzeugst Dir Aliase. Dort kann man über die Konvertierungsfunktion gleich das JSON parsen ... ohne zusätzliches Script.

                        Für Variante 2:
                        8e23dd10-6d8c-47f4-bb25-3b5a7a2a5808-image.png

                        Könntest du mir bitte hier mal kurz helfen.
                        Ich habe ein Alias angelegt, der auf ein MQTT State verweist der ein JSON enthält

                        e52787fb-3d3c-44b3-a0b4-331cce19d057-image.png

                        Das JSON sieht so aus
                        ae92a91e-2ede-4d98-9d47-8c13a16e4f7b-image.png

                        Die Konvertierungsaufruf "JSON.parse(val).aktuelle_wirkleistung" bringt kein Ergebnis. Ich kann leider anhand deines Beispiels nicht ganz genau rekonstruieren wie es aussehen müsste.

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @martinschm last edited by

                          @martinschm sagte: "JSON.parse(val).aktuelle_wirkleistung" bringt kein Ergebnis

                          Ist dort wirklich ein Leerstring als Attribut drin? Dann versuche es mal so

                          JSON.parse(val)[''].aktuelle_wirkleistung
                          
                          M 1 Reply Last reply Reply Quote 1
                          • M
                            martinschm @paul53 last edited by

                            @paul53 said in [gelöst] JSON Wert in Datenpunkt schreiben:

                            @martinschm sagte: "JSON.parse(val).aktuelle_wirkleistung" bringt kein Ergebnis

                            Ist dort wirklich ein Leerstring als Attribut drin? Dann versuche es mal so

                            JSON.parse(val)[''].aktuelle_wirkleistung
                            

                            Ja war es. Ich hab es in der Config des Gerätes geändert, dann ist es sauberer.

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

                            Support us

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

                            1.0k
                            Online

                            31.6k
                            Users

                            79.4k
                            Topics

                            1.3m
                            Posts

                            5
                            12
                            932
                            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