NEWS
[gelöst] Payload Daten in Objekte schreiben
-
log(payload);zeigt offenbar undefined, da "decoded_payload" falsch geschrieben ist (Zeile 5).
Habe ich korrigiert. Der Teufel steckt im Detail
19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {"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:01H5Z8SJDEQ23SXYZE51TC07BD","gs:conn:01H5TF5M58SGAQZTB5B766P6EM","gs:up:host:01H5TF5M5DGPVSKX7RKJ1HPXFF","gs:uplink:01H5Z8SJ70D6PACPHB0R2GHN04","ns:uplink:01H5Z8SJ712X5TEW0CWDE4CXQM","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01H5Z8SJ715Z75WJ51BS6ZWF31","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01H5Z8SJDDM0YCG82TXN5P6Q2T"],"received_at":"2023-07-22T17:01:43.213639158Z","uplink_message":{"session_key_id":"AYlu5XV3aMaeiMVAq8yISw==","f_port":2,"f_cnt":4377,"frm_payload":"NiwAAAAAAAA0/0E=","decoded_payload":{"ACI1_mA":"0.000", "ACI2_mA":"0.000", "AVI1_V":"13.868", "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-7076ff0056080b0f","eui":"7076FF0056080B0F"},"time":"2023-07-22T17:01:42.871Z","timestamp":1199555188,"rssi":-118,"channel_rssi":-118,"snr":-13.8,"uplink_token":"CiIKIAoUZXVpLTcwNzZmZjAwNTYwODBiMGYSCHB2/wBWCAsPEPSE/7sEGgsI95bwpQYQ0Mb0AyCgqr7Y9K0mKgwI9pbwpQYQwM+pnwM=","channel_index":4,"gps_time":"2023-07-22T17:01:42.871Z","received_at":"2023-07-22T17:01:42.714662309Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000, "spreading_factor":12, "coding_rate":"4/5"}}, "frequency":"867900000", "timestamp":1199555188, "time":"2023-07-22T17:01:42.871Z"},"received_at":"2023-07-22T17:01:43.009292984Z","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"}}} 19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {'ACI1_mA':'0.000','ACI2_mA':'0.000','AVI1_V':'13.868','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'} -
Habe ich korrigiert. Der Teufel steckt im Detail
19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {"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:01H5Z8SJDEQ23SXYZE51TC07BD","gs:conn:01H5TF5M58SGAQZTB5B766P6EM","gs:up:host:01H5TF5M5DGPVSKX7RKJ1HPXFF","gs:uplink:01H5Z8SJ70D6PACPHB0R2GHN04","ns:uplink:01H5Z8SJ712X5TEW0CWDE4CXQM","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01H5Z8SJ715Z75WJ51BS6ZWF31","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01H5Z8SJDDM0YCG82TXN5P6Q2T"],"received_at":"2023-07-22T17:01:43.213639158Z","uplink_message":{"session_key_id":"AYlu5XV3aMaeiMVAq8yISw==","f_port":2,"f_cnt":4377,"frm_payload":"NiwAAAAAAAA0/0E=","decoded_payload":{"ACI1_mA":"0.000", "ACI2_mA":"0.000", "AVI1_V":"13.868", "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-7076ff0056080b0f","eui":"7076FF0056080B0F"},"time":"2023-07-22T17:01:42.871Z","timestamp":1199555188,"rssi":-118,"channel_rssi":-118,"snr":-13.8,"uplink_token":"CiIKIAoUZXVpLTcwNzZmZjAwNTYwODBiMGYSCHB2/wBWCAsPEPSE/7sEGgsI95bwpQYQ0Mb0AyCgqr7Y9K0mKgwI9pbwpQYQwM+pnwM=","channel_index":4,"gps_time":"2023-07-22T17:01:42.871Z","received_at":"2023-07-22T17:01:42.714662309Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000, "spreading_factor":12, "coding_rate":"4/5"}}, "frequency":"867900000", "timestamp":1199555188, "time":"2023-07-22T17:01:42.871Z"},"received_at":"2023-07-22T17:01:43.009292984Z","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"}}} 19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {'ACI1_mA':'0.000','ACI2_mA':'0.000','AVI1_V':'13.868','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'} -
Habe ich korrigiert. Der Teufel steckt im Detail
19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {"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:01H5Z8SJDEQ23SXYZE51TC07BD","gs:conn:01H5TF5M58SGAQZTB5B766P6EM","gs:up:host:01H5TF5M5DGPVSKX7RKJ1HPXFF","gs:uplink:01H5Z8SJ70D6PACPHB0R2GHN04","ns:uplink:01H5Z8SJ712X5TEW0CWDE4CXQM","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01H5Z8SJ715Z75WJ51BS6ZWF31","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01H5Z8SJDDM0YCG82TXN5P6Q2T"],"received_at":"2023-07-22T17:01:43.213639158Z","uplink_message":{"session_key_id":"AYlu5XV3aMaeiMVAq8yISw==","f_port":2,"f_cnt":4377,"frm_payload":"NiwAAAAAAAA0/0E=","decoded_payload":{"ACI1_mA":"0.000", "ACI2_mA":"0.000", "AVI1_V":"13.868", "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-7076ff0056080b0f","eui":"7076FF0056080B0F"},"time":"2023-07-22T17:01:42.871Z","timestamp":1199555188,"rssi":-118,"channel_rssi":-118,"snr":-13.8,"uplink_token":"CiIKIAoUZXVpLTcwNzZmZjAwNTYwODBiMGYSCHB2/wBWCAsPEPSE/7sEGgsI95bwpQYQ0Mb0AyCgqr7Y9K0mKgwI9pbwpQYQwM+pnwM=","channel_index":4,"gps_time":"2023-07-22T17:01:42.871Z","received_at":"2023-07-22T17:01:42.714662309Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000, "spreading_factor":12, "coding_rate":"4/5"}}, "frequency":"867900000", "timestamp":1199555188, "time":"2023-07-22T17:01:42.871Z"},"received_at":"2023-07-22T17:01:43.009292984Z","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"}}} 19:01:43.238 info javascript.0 (652027) script.js.LoRAWAN_DEV_1: {'ACI1_mA':'0.000','ACI2_mA':'0.000','AVI1_V':'13.868','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'} -
Danke für Eure Geduld und die Hilfe.
Jetzt funktioniert es.

-
Nachdem ich jetzt die Daten in ioBroker habe, ist mir die Nacht eine
zusätzliche Anwendung durch den Kopf gegangen.
Dazu muss ich allerdings RO1 schalten.
Über das Gateway habe ich bereits Erfolg gehabt, und die Rückmeldung im ioBroker aufgenommen.
Messaging / Downlink --> 03 00 11 Relais öffnen
--> 03 01 11 Relais schliessenWie kann ich das RO1 aus ioBroker schalten?
-
Nachdem ich jetzt die Daten in ioBroker habe, ist mir die Nacht eine
zusätzliche Anwendung durch den Kopf gegangen.
Dazu muss ich allerdings RO1 schalten.
Über das Gateway habe ich bereits Erfolg gehabt, und die Rückmeldung im ioBroker aufgenommen.
Messaging / Downlink --> 03 00 11 Relais öffnen
--> 03 01 11 Relais schliessenWie kann ich das RO1 aus ioBroker schalten?
@gregors sagte in [gelöst] Payload Daten in Objekte schreiben:
Nachdem ich jetzt die Daten in ioBroker habe, ist mir die Nacht eine
zusätzliche Anwendung durch den Kopf gegangen.
Dazu muss ich allerdings RO1 schalten.
Über das Gateway habe ich bereits Erfolg gehabt, und die Rückmeldung im ioBroker aufgenommen.
Messaging / Downlink --> 03 00 11 Relais öffnen
--> 03 01 11 Relais schliessenWie kann ich das RO1 aus ioBroker schalten?
Ich habe das über Node Red umgesetzt, aber den entscheidenden Teil kannst du vielleicht adaptieren.
So sieht ein einfacher Beispiel-Flow aus:
Der Payload (hier "0501100200") wird in einem Function-Node verarbeitet (Base64 Kodierung + Erzeugung des Downlinks) und dann per MQTT an TTN gesendet.
Der Code im Function-Node sieht so aus (in 'msg.hex' steckt "0501100200"):
var s=msg.hex; var b=Buffer.from(s, 'hex'); //Buffer erzeugen s=b.toString("base64"); //to base64 msg.payload= { "downlinks": [{ "f_port": 2, "frm_payload": s, "priority": "NORMAL" }] } return msg;Dieser so aufbereitete Payload wird dann per MQTT an folgendes Topic gesendet:
v3/<APPLICATION-ID>@ttn/devices/<DEVICE_ID>/down/replace -
@gregors sagte in [gelöst] Payload Daten in Objekte schreiben:
Nachdem ich jetzt die Daten in ioBroker habe, ist mir die Nacht eine
zusätzliche Anwendung durch den Kopf gegangen.
Dazu muss ich allerdings RO1 schalten.
Über das Gateway habe ich bereits Erfolg gehabt, und die Rückmeldung im ioBroker aufgenommen.
Messaging / Downlink --> 03 00 11 Relais öffnen
--> 03 01 11 Relais schliessenWie kann ich das RO1 aus ioBroker schalten?
Ich habe das über Node Red umgesetzt, aber den entscheidenden Teil kannst du vielleicht adaptieren.
So sieht ein einfacher Beispiel-Flow aus:
Der Payload (hier "0501100200") wird in einem Function-Node verarbeitet (Base64 Kodierung + Erzeugung des Downlinks) und dann per MQTT an TTN gesendet.
Der Code im Function-Node sieht so aus (in 'msg.hex' steckt "0501100200"):
var s=msg.hex; var b=Buffer.from(s, 'hex'); //Buffer erzeugen s=b.toString("base64"); //to base64 msg.payload= { "downlinks": [{ "f_port": 2, "frm_payload": s, "priority": "NORMAL" }] } return msg;Dieser so aufbereitete Payload wird dann per MQTT an folgendes Topic gesendet:
v3/<APPLICATION-ID>@ttn/devices/<DEVICE_ID>/down/replace@marc-berg
Danke für den Denkanstoss.
Habe aber bisher noch keinen Erfolg gehabt.
Bekomme das Payload nicht gesendet.Bleibe dran
-
@marc-berg
Danke für den Denkanstoss.
Habe aber bisher noch keinen Erfolg gehabt.
Bekomme das Payload nicht gesendet.Bleibe dran
@gregors sagte in [gelöst] Payload Daten in Objekte schreiben:
Bekomme das Payload nicht gesendet.
Bleibe dranDas müsste ja dann bei dir zum Einschalten so aussehen:
{ "downlinks": [{ "f_port": 2, "frm_payload": "AwER", "priority": "NORMAL" }] }und zum Ausschalten so:
{ "downlinks": [{ "f_port": 2, "frm_payload": "AwAR", "priority": "NORMAL" }] }Auf welche Weise sendest du den Downlink?
-
@gregors sagte in [gelöst] Payload Daten in Objekte schreiben:
Bekomme das Payload nicht gesendet.
Bleibe dranDas müsste ja dann bei dir zum Einschalten so aussehen:
{ "downlinks": [{ "f_port": 2, "frm_payload": "AwER", "priority": "NORMAL" }] }und zum Ausschalten so:
{ "downlinks": [{ "f_port": 2, "frm_payload": "AwAR", "priority": "NORMAL" }] }Auf welche Weise sendest du den Downlink?
@marc-berg said in [gelöst] Payload Daten in Objekte schreiben:
Auf welche Weise sendest du den Downlink?
Was meinst du damit?
Ich habe mehrer Versionen probiert, aber es hakt immer am "Doppelpunkt" hinter downlinks.
Ich galube, da fehlt was entscheidendes.//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down.sent'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/down/sent*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down', function (dp) { "downlinks": [{ "f_port": 2, "frm_payload": "130011=", "priority": "NORMAL" }] }18:26:04.002 error javascript.0 (681137) script.js.LoRAWAN_DEV_1_senden compile failed: at script.js.LoRAWAN_DEV_1_senden:4 -
@marc-berg said in [gelöst] Payload Daten in Objekte schreiben:
Auf welche Weise sendest du den Downlink?
Was meinst du damit?
Ich habe mehrer Versionen probiert, aber es hakt immer am "Doppelpunkt" hinter downlinks.
Ich galube, da fehlt was entscheidendes.//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down.sent'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/down/sent*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down', function (dp) { "downlinks": [{ "f_port": 2, "frm_payload": "130011=", "priority": "NORMAL" }] }18:26:04.002 error javascript.0 (681137) script.js.LoRAWAN_DEV_1_senden compile failed: at script.js.LoRAWAN_DEV_1_senden:4 -
@marc-berg said in [gelöst] Payload Daten in Objekte schreiben:
Auf welche Weise sendest du den Downlink?
Was meinst du damit?
Ich habe mehrer Versionen probiert, aber es hakt immer am "Doppelpunkt" hinter downlinks.
Ich galube, da fehlt was entscheidendes.//'mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down.sent'/*v3/gs-mg-dragino-01@ttn/devices/eui-a840414601871305/down/sent*/ on('mqtt.2.v3.gs-mg-dragino-01@ttn.devices.eui-a840414601871305.down', function (dp) { "downlinks": [{ "f_port": 2, "frm_payload": "130011=", "priority": "NORMAL" }] }18:26:04.002 error javascript.0 (681137) script.js.LoRAWAN_DEV_1_senden compile failed: at script.js.LoRAWAN_DEV_1_senden:4@gregors sagte in [gelöst] Payload Daten in Objekte schreiben:
Auf welche Weise sendest du den Downlink?
Was meinst du damit?
Nun ja, man kann ja die Daten per MQTT oder per API senden. Wie ich jetzt gesehen habe, versuchst du es per MQTT. Das heißt, du hast eine MQTT Instanz erstellt und dich damit an TTN angemeldet? Funktioniert denn die Anmeldung?
Zum Scripting kann ich nicht viel sagen, dazu hat sich ja @paul53 schon geäußert.
Aber das hier:
"frm_payload": "130011=",ist auf jeden Fall falsch Base64 kodiert. Ein guter Konverter ist z.B. der hier https://base64.guru/converter/encode/hex
Wenn Du deinen Hexadezimal-Payload "03 01 11" durch den Konverter schickst, kommt "AwER" raus.
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
