NEWS
[gelöst] Payload Daten in Objekte schreiben
-
@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:
-
@gregors
Keine Log-Einträge aus der Javascript-Instanz? Dann gibt es damit ein Problem. Andere Skripte funktionieren?