NEWS
MQTT parsen mit Blockly
-
Hallo
Sorry, dass ich hier frag, aber ich finde wirklich keinen passenden Beitrag.
Kann man einen String, den man über MQTT bekommt und der ungefähr SO aussieht:
{"end_device_ids":{"device_id":"temp1","application_ids":{"application_id":"dh6mbt-temp"},"dev_eui":"A840XXXXXXXXXXXXX968","dev_addr":"018XXXXXXXXX"},"correlation_ids":["as:up:01F9CTQ3HXXXXXXXXXXXXXXXG9Q","gs:conn:01F9BAZXXXXXXXXXXXXXXXZNEPG","gs:up:host:01F9BAZXXXXXXXXXXXXXXXXXZVD","gs:uplink:01F9CTQ3B57XXXXXXXXXXXXNWBGHYT","ns:uplink:01F9CTQ3B7S2RRMVV758P1WKT4","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01F9CTQ3B7QE6MQKVBVCV53QA3","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01F9CTQ3HPPYEZ7SSKBSPTBP38"],"received_at":"2021-06-29T21:27:33.175992873Z","uplink_message":{"f_port":2,"f_cnt":145,"frm_payload":"zA0KKwIIAQXof/8=","decoded_payload":{"BatV":3.085,"Bat_status":3,"Ext_sensor":"Temperature Sensor","Hum_SHT":52,"TempC_DS":15.12,"TempC_SHT":26.03},"rx_metadata":[{"gateway_ids":{"gateway_id":"XXXIDXXX","eui":"XXXXXXXeuiXXXXXXXX"},"time":"2021-06-29T21:27:32.790371Z","timestamp":2807649189,"rssi":-75,"channel_rssi":-75,"snr":7,"location":{"latitude":48.XXXXXXXXXXXXXXX,"longitude":11.XXXXXXXXXXXXXXXXXXXXX,"altitude":8,"source":"SOURCE_REGISTRY"},"uplink_token":"XXXXXXXXXXXXXXXTOKENXXXXXXXXXXXXXXXXXXXXXX=","channel_index":6}],"settings":{"data_rate":{"lora":{"bandwidth":125000,"spreading_factor":12}},"coding_rate":"4/5","frequency":"867700000","timestamp":2807649189,"time":"2021-06-29T21:27:32.790371Z"},"received_at":"2021-06-29T21:27:32.967497871Z","consumed_airtime":"1.646592s","locations":{"user":{"latitude":48.XXXXXXXXXXXXXXX,"longitude":11.XXXXXXXXXXXXXXX,"altitude":5,"source":"SOURCE_REGISTRY"}}}}
via Blockly in seine kompletten Einzelteile zerlegen? Ich finde nix, hab es aber schon mit allen möglichen Varianten wie "Attribut" von JSON usw. probiert ..... ich werd verrückt mit den langen Strings
Danke
-
- Bitte editier deinen Post - pack den String in Code Tags (</>). So kann das keiner lesen
- Nachdem du das in Code Tags gepackt hast versuch bitte den String systematisch durch einfügen von Zeilenumbrüchen zu formatieren. Als Vorschlag würde ich erst mal bei jeder {, }, [, ] einen Zeilenumbruch einsetzen. Dann noch intelligent einrücken und es ist lesbar was da so steht. Dadurch wird dann auch die Baum-artige Struktur des Objektes klar.
- Den string musst du ansonsten im Blockly erst einmal in ein Objekt umwandeln:
- Danach kannst du mit dem Attribute of object das heraus holen was dich interessiert (hoffentlich).
- Ein komplettes "zerlegen" ist auch deswegen nicht so einfach weil das ganze halt eine Baumstruktur ist.
A.
-
@stefankumpf sagte: ich werd verrückt mit den langen Strings
Schau das JSON im jsonviewer an, dann wird es verständlich.
So können die Messwerte ermittelt werden:
Wert findet man unter "Trigger".