NEWS
[gelöst] Payload Daten in Objekte schreiben
-
@gregors sagte in Payload Daten in Objekte schreiben:
%(#ff0000)[%(#ff0000)
sowas hier:
%(#ff0000)[%(#ff0000)darf nicht im Payload enthalten sein und es ist mir ein Rätsel, wie das da rein kommt. Schau dir nochmal deinen Payload Formatter im TTN an. Da muss ein Fehler drin sein.
Am besten den von hier nehmen:
https://github.com/dragino/dragino-end-node-decoder/tree/main/LT22222-L
Ggf. auch eine ältere Version.
@marc-berg das ist wohl fett kursiv in rot
-
@marc-berg das ist wohl fett kursiv in rot
@homoran sagte in Payload Daten in Objekte schreiben:
das ist wohl fett kursiv in rot
Okay.... Das hat aber im TTN Payload mal so gar nichts verloren! :-)
-
@homoran sagte in Payload Daten in Objekte schreiben:
das ist wohl fett kursiv in rot
Okay.... Das hat aber im TTN Payload mal so gar nichts verloren! :-)
Habe jetzt mal den Payload-Formater aus dem Github bearbeitet.
{"end_device_ids":{"device_id":"eui-a840414601871305","application_ids":{"application_id":"gs-mg-dragino-01"},"dev_eui":"A840414601871305","join_eui":"A840410000000101","dev_addr":"260BE9CF"},"correlation_ids":["as:up:01H5Z2SA3QYET8CA17EXT5JBTW","gs:conn:01H5CGRTDQJ3EW5BPQ15D9SVP8","gs:up:host:01H5CGRTDY5KEGKQ0AQZ22XD9M","gs:uplink:01H5Z2S9XAF07SYS81675AYS9E","ns:uplink:01H5Z2S9XA7M8VZFX5JQQYWM6H","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01H5Z2S9XAH04P0Z8XWMYHP6RC","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01H5Z2SA3P57YV40D8MQMJFC70"],"received_at":"2023-07-22T15:16:43.254682567Z","uplink_message":{"session_key_id":"AYlu5XV3aMaeiMVAq8yISw==","f_port":2,"f_cnt":4272,"frm_payload":"NhUAAAAAAAA0/0E=","decoded_payload":{"ACI1_mA":"0.000", "ACI2_mA":"0.000", "AVI1_V":"13.845", "AVI2_V":"0.000", "Acount_times":null, "Count1_times":null, "Count2_times":null, "DI1_status":"L", "DI2_status":"H", "DI3_status":null, "DO1_status":"H", "DO2_status":"H", "DO3_status":null, "First_status":null, "Hardware_mode":"LT22222", "RO1_status":"OFF", "RO2_status":"OFF", "Work_mode":"2ACI+2AVI"},"rx_metadata":[{"gateway_ids":{"gateway_id":"eui-503139534e7d4750","eui":"503139534E7D4750"},"time":"2023-07-22T15:16:35.538289Z","timestamp":1683586436,"rssi":-104,"channel_rssi":-104,"snr":-15.5,"uplink_token":"CiIKIAoUZXVpLTUwMzEzOTUzNGU3ZDQ3NTASCFAxOVNOfUdQEIT75aIGGgsI2+XvpQYQyq/mFyCgl8ns//2NAQ==","channel_index":4,"received_at":"2023-07-22T15:16:43.049911754Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000, "spreading_factor":12, "coding_rate":"4/5"}}, "frequency":"867300000", "timestamp":1683586436, "time":"2023-07-22T15:16:35.538289Z"},"received_at":"2023-07-22T15:16:43.050935418Z","consumed_airtime":"1.482752s","version_ids":{"brand_id":"dragino", "model_id":"lt22222-l", "hardware_version":"_unknown_hw_version_", "firmware_version":"1.5.6", "band_id":"EU_863_870"},"network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}}Konnte jetzt keine Asterix erkennen.
Aber schreiben will er immer noch nicht -
Habe jetzt mal den Payload-Formater aus dem Github bearbeitet.
{"end_device_ids":{"device_id":"eui-a840414601871305","application_ids":{"application_id":"gs-mg-dragino-01"},"dev_eui":"A840414601871305","join_eui":"A840410000000101","dev_addr":"260BE9CF"},"correlation_ids":["as:up:01H5Z2SA3QYET8CA17EXT5JBTW","gs:conn:01H5CGRTDQJ3EW5BPQ15D9SVP8","gs:up:host:01H5CGRTDY5KEGKQ0AQZ22XD9M","gs:uplink:01H5Z2S9XAF07SYS81675AYS9E","ns:uplink:01H5Z2S9XA7M8VZFX5JQQYWM6H","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01H5Z2S9XAH04P0Z8XWMYHP6RC","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01H5Z2SA3P57YV40D8MQMJFC70"],"received_at":"2023-07-22T15:16:43.254682567Z","uplink_message":{"session_key_id":"AYlu5XV3aMaeiMVAq8yISw==","f_port":2,"f_cnt":4272,"frm_payload":"NhUAAAAAAAA0/0E=","decoded_payload":{"ACI1_mA":"0.000", "ACI2_mA":"0.000", "AVI1_V":"13.845", "AVI2_V":"0.000", "Acount_times":null, "Count1_times":null, "Count2_times":null, "DI1_status":"L", "DI2_status":"H", "DI3_status":null, "DO1_status":"H", "DO2_status":"H", "DO3_status":null, "First_status":null, "Hardware_mode":"LT22222", "RO1_status":"OFF", "RO2_status":"OFF", "Work_mode":"2ACI+2AVI"},"rx_metadata":[{"gateway_ids":{"gateway_id":"eui-503139534e7d4750","eui":"503139534E7D4750"},"time":"2023-07-22T15:16:35.538289Z","timestamp":1683586436,"rssi":-104,"channel_rssi":-104,"snr":-15.5,"uplink_token":"CiIKIAoUZXVpLTUwMzEzOTUzNGU3ZDQ3NTASCFAxOVNOfUdQEIT75aIGGgsI2+XvpQYQyq/mFyCgl8ns//2NAQ==","channel_index":4,"received_at":"2023-07-22T15:16:43.049911754Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000, "spreading_factor":12, "coding_rate":"4/5"}}, "frequency":"867300000", "timestamp":1683586436, "time":"2023-07-22T15:16:35.538289Z"},"received_at":"2023-07-22T15:16:43.050935418Z","consumed_airtime":"1.482752s","version_ids":{"brand_id":"dragino", "model_id":"lt22222-l", "hardware_version":"_unknown_hw_version_", "firmware_version":"1.5.6", "band_id":"EU_863_870"},"network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}}Konnte jetzt keine Asterix erkennen.
Aber schreiben will er immer noch nicht@gregors sagte: schreiben will er immer noch nicht
Dann bau mal Log-Ausgaben ein.
on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); -
@gregors sagte: schreiben will er immer noch nicht
Dann bau mal Log-Ausgaben ein.
on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); -
@gregors sagte: Wo finde ich das Log?
Im Fenster unterhalb des Skript-Editors und im Tab "Protokolle".
Das Skript ist aktiviert und hoffentlich nicht unter der Gruppe "global" erstellt? -
@paul53
Das Script läuft und ist nicht unter "Global".
Im Log steht nichts drin. Komplett leer.Mir scheint, als ob es nicht getriggert wird
-
@paul53
Das Script läuft und ist nicht unter "Global".
Im Log steht nichts drin. Komplett leer.Mir scheint, als ob es nicht getriggert wird
@gregors sagte in Payload Daten in Objekte schreiben:
Mir scheint, als ob es nicht getriggert wird
der Datenpunkt heisst auch genau so:
mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up
? -
@gregors sagte in Payload Daten in Objekte schreiben:
Mir scheint, als ob es nicht getriggert wird
der Datenpunkt heisst auch genau so:
mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up
? -
@homoran
Bin auf Objekt-ID gegangen, und er hat mir zur Auswahl das Objekt angeboten.
Der Datenpunkt wird alle 2 Minuten neu eingelsen (Zeitstempel). Der Wert von AVI1_V ändert sich immer maginal. -
@gregors sagte: Der Wert von AVI1_V ändert sich immer maginal.
Das genügt zum Triggern.
Was ergibt außerhalb des Triggers?log(getState('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up').val);Nichts.
Gähnende Leere im Log//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/up*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); log(getState('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up').val); if(payload && payload.AVI1_V != undefined) { -
Nichts.
Gähnende Leere im Log//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/up*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); log(getState('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up').val); if(payload && payload.AVI1_V != undefined) { -
@gregors sagte: Gähnende Leere im Log
Das Log mit getState() außerhalb des Triggers ausführen!!
-
@paul53
Kann ich das getState() unterhalb des Scripts einfügen, oder muss ich ein Neues Script erstellen? -
@gregors sagte: Kann ich das getState() unterhalb des Scripts einfügen
Ja, unterhalb oder oberhalb des Triggers.
//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/up*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); if(payload && payload.AVI1_V != undefined) { setState("0_userdata.0.LoRaWAN.eui-a840414601871305.ACI1_mA", Math.round(payload.ACI1_mA * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.ACI2_mA", Math.round(payload.ACI2_mA * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.AVI1_V", Math.round(payload.AVI1_V * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.AVI2_V", Math.round(payload.AVI2_V * 100) / 100, true); } }); log(getState('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up').val); -
//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/up*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up', function (dp) { log(dp.state.val); let payload = JSON.parse(dp.state.val).uplink_message.decoded_paylod; log(payload); if(payload && payload.AVI1_V != undefined) { setState("0_userdata.0.LoRaWAN.eui-a840414601871305.ACI1_mA", Math.round(payload.ACI1_mA * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.ACI2_mA", Math.round(payload.ACI2_mA * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.AVI1_V", Math.round(payload.AVI1_V * 100) / 100, true); setState("0_userdata.0.LoRaWAN.eui-a840414601871305.AVI2_V", Math.round(payload.AVI2_V * 100) / 100, true); } }); log(getState('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.up').val); -
@gregors
Gut, und das JSON ist in der Log-Ausgabe zu sehen? Sie muss beim Skriptstart erzeugt werden.
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
