Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. JSON mit Blockly auslesen

    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

    JSON mit Blockly auslesen

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

      Hallo zusammen

      Ich habe über MQTT ein externes Gerät eingebunden, Zendure Solarflow falls es wem was sagt.
      Der MQTT Client-Adapter liest alle paar Sekunden einen JSON String vom Gerät in eine Variable ein... die mal mehr, mal weniger Attribute enthalten. Jenachdem ob sich diese gerade aktualisiert haben.

      zB. ist im JSON String mal nur...
      {"electricLevel":28}
      im nächsten Moment
      {"outputHomePower":98,"packInputPower":102}

      Der JSON String kann aus folgenden Attributen bestehen, je nachdem ob sich diese gerade aktualisiert haben:

      0b033bbc-8d14-4d1b-82af-081fef8f88eb-image.png

      Ich versuche mit Blockly nun diese auszulesen und in einzelne Datenpunkte zu bringen, um sie leichter verarbeiten zu können und ggf. in weiterer Folge in zB. Lovelace in einem Diagramm anzuzeigen.

      Das auslesen und ausgeben in einen Datenpunkt habe ich mit diesem Blockly Script gemacht:
      75016ac2-aef4-4465-a89e-81783600f626-image.png
      ...das funktioniert soweit auch...
      ...nur sobald mal zB. ein Attribut gerade nicht im JSON String mitübergeben wird, soll einfach der vorherige übergebene Wert im Datenpunkt stehen bleiben.

      Leider wird er aber - wenn er nicht mitübergeben wird (in dem Fall hier der Datenpunkt "electricLevel") - mit {"ack":true} überschrieben.
      29ef1b14-8a09-4844-b481-3943c875b257-image.png
      Wie kann ich das umgehen? Dass also immer nur dann der Wert vom Attribut gespeichert wird, wenn er auch tatsächlich gerade im JSON String enthalten war? Wenn kein Attribut im JSON steht, dann soll der letzte Wert bleiben.

      Danke.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @astuermer last edited by mickym

        @astuermer Ich bin bekannterweise kein Blockly-Fan und im NodeRed habe ich die Analyse und automatische Erstellung von JSON Strings bzw. Objekten ja schon lange automatisiert.

        Du musst halt überprüfen, dass der Datenpunkt bzw. das Objekt nicht null ist.

        ba36ee53-5083-4b4f-abb6-a60b7abb609e-image.png

        aber wie gesagt - weiter dringe ich in diese Materie nicht ein, weil ich das Puzzeln hier einfach zu umständlich finde.

        astuermer 1 Reply Last reply Reply Quote 1
        • astuermer
          astuermer @mickym last edited by

          @mickym Danke, mit "ungleich Null" hats geklappt statt "Nicht Null" 🙂

          Bildschirmfoto 2023-08-31 um 08.56.05.png

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

          Support us

          ioBroker
          Community Adapters
          Donate

          625
          Online

          31.9k
          Users

          80.3k
          Topics

          1.3m
          Posts

          2
          3
          743
          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