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
-
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.
-
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
@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".
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden