NEWS
Blockly für Wert aus JSON zu extrahieren
-
Hallo.
Ich habe im IoBroker einen Datenpunkt wo die Daten als JSON ankommen. Ich bekomme es aber leider nicht hin, den Wert den ich benötige zu extrahieren, evtl. kann mir hier einer helfen.
Ich brauche ein Blockly, das mir den rot markierten Wert in einen Datenpunkt schreibt.
Schonmal vielen Dank für die Hilfe .){ "body": { "header": { "access_no": 35, "identification": "0x80, 0x74, 0x12, 0x39", "manufacturer": "SEN", "medium": "0x4", "sign": "0x0, 0x0", "status": "0x0", "type": "0x72", "version": "0x19" }, "records": [ { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.ENERGY_WH", "unit": "MeasureUnit.WH", "value": 6720000 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.VOLUME", "unit": "MeasureUnit.M3", "value": 1083.3120000000001 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.VOLUME_FLOW", "unit": "MeasureUnit.M3_H", "value": 0 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.POWER_W", "unit": "MeasureUnit.W", "value": 0 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.FLOW_TEMPERATURE", "unit": "MeasureUnit.C", "value": 34.2 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.RETURN_TEMPERATURE", "unit": "MeasureUnit.C", "value": 22.900000000000002 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.TEMPERATURE_DIFFERENCE", "unit": "MeasureUnit.K", "value": 11.397 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.FABRICATION_NO", "unit": "MeasureUnit.NONE", "value": 80741239 }, { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnitExt.CUSTOMER_LOCATION", "unit": "MeasureUnit.NONE", "value": 80741239 }, { "function": "FunctionType.MORE_RECORDS_FOLLOW", "type": "None", "unit": "None", "value": null } ] }, "head": { "a": "0x0", "c": "0x8", "crc": "0xbd", "length": "0x42", "start": "0x68", "stop": "0x16" } }
MOD-EDIT: Code in code-tags gesetzt!
gesucht wird das valeue in
"records": [ { "function": "FunctionType.INSTANTANEOUS_VALUE", "type": "VIFUnit.ENERGY_WH", "unit": "MeasureUnit.WH", "value": 6720000 },
-
@atifan Versuche mal:
-
@atifan versuch es mal so:
ich habe die Variable JSON_Import benutzt um dein JSON "einzulesen"
EDIT:
Paul war mal wieder schneller -
Thx euch beiden, funktioniert wunderbar. Hab das von @paul53 genommen, weil das für mich etwas verständlicher ist^^.
-
@atifan sagte in Blockly für Wert aus JSON zu extrahieren:
weil das für mich etwas verständlicher ist
Paul extrahiert erst alle records und nimmt dann aus diesem Array das erste Element.
Mein Beispiel macht direkt alles in einem Schub.
Das erste Element des Arrays hat die Zahl 0Ich hatte erst gar nicht erkannt dass records ein Array ist. ;-(
-
@homoran Jo Danke für die gute Erklärung Ich bin froh dass ich kein Programmierer geworden bin, das wär nix für mich
-
@homoran sagte: nimmt dann aus diesem Array das erste Element.
Aus dem Array lassen sich leicht weitere Messwerte erfassen:
-
Ah cool, dann muss ich das Sciptchen noch bisschen erweitern Thx!
-
@atifan sagte in Blockly für Wert aus JSON zu extrahieren:
dann muss ich das Sciptchen noch bisschen erweitern
sieh dir mal die Seite http://jsonviewer.stack.hu/ an.
da kannst du das JSON unter text reinkopieren und dann im Reiter JSON die Struktur ansehen:
Da siehst du dann mit welchem Parameter du welchen Wert/Einheit/Datum usw. nach dem gleichen Schema auslesen kannst
-
@homoran Ah super, vielen Dank!
Ja das ist sehr hilfreich -
@atifan sagte in Blockly für Wert aus JSON zu extrahieren:
Ja das ist sehr hilfreich
wir werden dir noch deine Grundeinstellung von wegen:
@atifan sagte in Blockly für Wert aus JSON zu extrahieren:
das wär nix für mich
gewaltig umkrempeln