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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. gelöst - Blockly JSON auslesen und Wert in DP schreiben

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

gelöst - Blockly JSON auslesen und Wert in DP schreiben

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 2 Kommentatoren 175 Aufrufe 2 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.
  • AtifanA Offline
    AtifanA Offline
    Atifan
    schrieb am zuletzt editiert von Atifan
    #1

    Hallo,
    ich habe ein Python-Script das auf nem Server ausgeführt wird und über nen IR-Lesekopf meine Wärmemengezähler ausliest. Es schreibt die Daten dann über Simple_API in Iobroker in einen Datenpunkt. Das Problem ist es schreibt die Daten als JSON-String und ich muss über ein Blockly Script den Wert rausfiltern den ich haben will.
    Ich hatte ein Blockly das die ganze Zeit funktioniert hat, das Problem ist aber dass sich das Python Script geändert hat und jetzt die JSON-Datei etwas anders aufgebaut ist. Deswegen funktioniert das Auslesen jetzt nicht mehr. Kann mir einer sagen was ich ändern muss? Danke schonmal.

    Hier ein Bild von meinem aktuellen Blockly, das passt aber nur auf die alte JSON und muss irgendwie geändert werden :)
    0224aa19-a106-4ab2-82ec-53344f341be7-grafik.png

    Hier ist die JSON-Datei Struktur, wo der rote Wert ausgelesen werden soll.

    {
      "frame_info": {
        "a": "0x0",
        "c": "0x8",
        "start": "0x68",
        "stop": "0x16",
        "crc": "0xde",
        "length": "0x42"
      },
      "header": {
        "status": "0x0",
        "medium": "0x4",
        "access_no": 135,
        "sign": "0x0, 0x0",
        "version": "0x19",
        "identification": "0x80, 0x74, 0x12, 0x52",
        "type": "0x72",
        "manufacturer": "SEN"
      },
      "records": [
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.ENERGY_WH",
          "%(#ff0000)[**value": 159620000,**]
          "unit": "MeasureUnit.WH"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.VOLUME",
          "value": 30628.779000000002,
          "unit": "MeasureUnit.M3"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.VOLUME_FLOW",
          "value": 0,
          "unit": "MeasureUnit.M3_H"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.POWER_W",
          "value": 0,
          "unit": "MeasureUnit.W"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.FLOW_TEMPERATURE",
          "value": 23.400000000000002,
          "unit": "MeasureUnit.C"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.RETURN_TEMPERATURE",
          "value": 23.700000000000003,
          "unit": "MeasureUnit.C"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.TEMPERATURE_DIFFERENCE",
          "value": 0,
          "unit": "MeasureUnit.K"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnit.FABRICATION_NO",
          "value": 80741252,
          "unit": "MeasureUnit.NONE"
        },
        {
          "function": "FunctionType.INSTANTANEOUS_VALUE",
          "type": "VIFUnitExt.CUSTOMER_LOCATION",
          "value": 80741252,
          "unit": "MeasureUnit.NONE"
        },
        {
          "function": "FunctionType.MORE_RECORDS_FOLLOW",
          "type": "None",
          "value": null,
          "unit": "None"
        }
      ]
    }
    
    AtifanA 1 Antwort Letzte Antwort
    0
    • AtifanA Atifan

      Hallo,
      ich habe ein Python-Script das auf nem Server ausgeführt wird und über nen IR-Lesekopf meine Wärmemengezähler ausliest. Es schreibt die Daten dann über Simple_API in Iobroker in einen Datenpunkt. Das Problem ist es schreibt die Daten als JSON-String und ich muss über ein Blockly Script den Wert rausfiltern den ich haben will.
      Ich hatte ein Blockly das die ganze Zeit funktioniert hat, das Problem ist aber dass sich das Python Script geändert hat und jetzt die JSON-Datei etwas anders aufgebaut ist. Deswegen funktioniert das Auslesen jetzt nicht mehr. Kann mir einer sagen was ich ändern muss? Danke schonmal.

      Hier ein Bild von meinem aktuellen Blockly, das passt aber nur auf die alte JSON und muss irgendwie geändert werden :)
      0224aa19-a106-4ab2-82ec-53344f341be7-grafik.png

      Hier ist die JSON-Datei Struktur, wo der rote Wert ausgelesen werden soll.

      {
        "frame_info": {
          "a": "0x0",
          "c": "0x8",
          "start": "0x68",
          "stop": "0x16",
          "crc": "0xde",
          "length": "0x42"
        },
        "header": {
          "status": "0x0",
          "medium": "0x4",
          "access_no": 135,
          "sign": "0x0, 0x0",
          "version": "0x19",
          "identification": "0x80, 0x74, 0x12, 0x52",
          "type": "0x72",
          "manufacturer": "SEN"
        },
        "records": [
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.ENERGY_WH",
            "%(#ff0000)[**value": 159620000,**]
            "unit": "MeasureUnit.WH"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.VOLUME",
            "value": 30628.779000000002,
            "unit": "MeasureUnit.M3"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.VOLUME_FLOW",
            "value": 0,
            "unit": "MeasureUnit.M3_H"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.POWER_W",
            "value": 0,
            "unit": "MeasureUnit.W"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.FLOW_TEMPERATURE",
            "value": 23.400000000000002,
            "unit": "MeasureUnit.C"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.RETURN_TEMPERATURE",
            "value": 23.700000000000003,
            "unit": "MeasureUnit.C"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.TEMPERATURE_DIFFERENCE",
            "value": 0,
            "unit": "MeasureUnit.K"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.FABRICATION_NO",
            "value": 80741252,
            "unit": "MeasureUnit.NONE"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnitExt.CUSTOMER_LOCATION",
            "value": 80741252,
            "unit": "MeasureUnit.NONE"
          },
          {
            "function": "FunctionType.MORE_RECORDS_FOLLOW",
            "type": "None",
            "value": null,
            "unit": "None"
          }
        ]
      }
      
      AtifanA Offline
      AtifanA Offline
      Atifan
      schrieb am zuletzt editiert von
      #2

      Habs gerade rausgefunden, statt "body.records" einfach nur "records", dann funktioniert es :)

      padrinoP 1 Antwort Letzte Antwort
      1
      • AtifanA Atifan

        Habs gerade rausgefunden, statt "body.records" einfach nur "records", dann funktioniert es :)

        padrinoP Online
        padrinoP Online
        padrino
        Most Active
        schrieb am zuletzt editiert von
        #3

        @atifan
        Gut, dass Du Deine Lösung auch noch gepostet hast!
        Jetzt evtl. noch ein [gelöst] in den Titel des ersten Posts, das wäre :sunglasses:

        AtifanA 1 Antwort Letzte Antwort
        0
        • padrinoP padrino

          @atifan
          Gut, dass Du Deine Lösung auch noch gepostet hast!
          Jetzt evtl. noch ein [gelöst] in den Titel des ersten Posts, das wäre :sunglasses:

          AtifanA Offline
          AtifanA Offline
          Atifan
          schrieb am zuletzt editiert von
          #4

          @padrino Jo habs geändert :)

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


          Support us

          ioBroker
          Community Adapters
          Donate

          520

          Online

          32.4k

          Benutzer

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