Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. JSON mit Blockly auslesen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

JSON mit Blockly auslesen

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
3 Beiträge 2 Kommentatoren 983 Aufrufe 1 Watching
  • Ä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.
  • astuermerA Offline
    astuermerA Offline
    astuermer
    schrieb am zuletzt editiert von astuermer
    #1

    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.

    mickymM 1 Antwort Letzte Antwort
    0
    • astuermerA 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.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

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

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      astuermerA 1 Antwort Letzte Antwort
      1
      • mickymM 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.

        astuermerA Offline
        astuermerA Offline
        astuermer
        schrieb am zuletzt editiert von
        #3

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

        Bildschirmfoto 2023-08-31 um 08.56.05.png

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        473

        Online

        32.7k

        Benutzer

        82.4k

        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