NEWS
[gelöst] Payload Daten in Objekte schreiben
-
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);
-
Habe ich gemacht.
Wo finde ich das Log? -
@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
-
@gregors sagte: Mir scheint, als ob es nicht getriggert wird
Die Datenpunkt-ID des Triggers stimmt? Der Wert (JSON) des Datenpunktes ändert sich?
-
@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) {
-
@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);
-
@gregors
Gut, und das JSON ist in der Log-Ausgabe zu sehen? Sie muss beim Skriptstart erzeugt werden. -
Nein, gar nichts
-
@gregors sagte: Nein, gar nichts
Nicht einmal, dass das Skript gestartet wurde?
-
-
@gregors
Auch nicht im Tab "Protokolle"? -
So sieht die Struktur aus: