FHEM - Hausautomations-Systeme > MQTT

[gelöst] MQTT2_Client/MQTT2_DEVICE: LoRaWAN TTN V3 Downlink Telegramme versenden

(1/1)

klaus.schauer:
Meine LoRaWAN TTN V3 Applikation ist per MQTT2_CLIENT mit Fhem gekoppelt. Ein GPS Tracker ist als MQTT2_CLIENT angelegt. Die Uplink Telegramme des GPS Tracker werden einwandfrei im Fhem Device angezeigt. Auch werden die Protokolle von LoRaWAN Downlink Telegrammen angezeigt, die in der TTN Konsole selbst gesetzt werden. Die von Fhem gesendeten MQTT Topics werden aber im TTN-Server nicht verarbeitet. Ich bin mir nicht sicher, ob sie überhaupt (korrekt) von Fhem gesendet werden.

Lt. Handbuch https://www.thethingsindustries.com/docs/integrations/mqtt/ wird ein Topic der Form

--- Code: ---v3/app1@tenant1/devices/dev1/down/push

--- Ende Code ---
erwartet.
Als Content ist ein JSON-Objekt der Form

--- Code: ---{
  "downlinks": [{
    "f_port": 15,
    "frm_payload": "vu8=",
    "priority": "NORMAL"
  }]
}

--- Ende Code ---
erforderlich.
Topic und Content wird im MQTT2_DEVICE erzeugt durch:

--- Code: ---attr GPS_Tracker_1 setList alarmOff:noArg {"MQTT_ttn:v3/<tenant-id>\x40ttn/devices/gps-tracker-1/down/push " . toJSON({"downlinks" => [{"f_port" => 2 , "cmd" => "alarmOff", "priority" => "NORMAL"}]})}

--- Ende Code ---
Im LOG des MQTT2_CLIENT sieht man

--- Code: ---2021.07.24 20:11:27 5: MQTT_ttn: sending PUBLISH 0(146)(1)(0):MQTT_ttn:v3/<tenant-id>@ttn/devices/gps-tracker-1/down/push{"downlinks":[{"cmd":"alarmOff","f_port":2,"frm_payload":"AgE=","priority":"NORMAL"}]}

--- Ende Code ---
Sieht ja erst einmal gut aus, aber es fehlt ein Leerzeichen zwischen dem Topic und dem Content. Ist das nur ein Anzeigefehler im LOG oder ist die Formatierung der gesendeten Daten tatsächlich falsch? Wie kann ich mir die gesendeten Daten ansehen. Im LOG werden auch bei verbose 5 keine weiteren Ausgaben anzezeigt.
 

rudolfkoenig:
Leerzeichen braucht man nicht: da man die komplette Laenge des Telegramms und die Laenge des Topics kennt, kann man die Laenge der Message ausrechnen. Weiterhin kann ein Topic auch Leerzeichen enthalten.
Ich wuerde die Daten mit mosquitto_sub in einem Terminal anzeigen.
Oder mit einem anderen Client, notfalls mit einer weiteren FHEM MQTT2_CLIENT Instanz und "attr m2c rawEvents 1"

klaus.schauer:
Das Topic war falsch. Wenn man es richtig macht, geht es z. B. so:

--- Code: ---attr <device> setList alarmOff:noArg {'v3/<tenant-id@ttn/devices/gps-tracker-1/down/push ' . toJSON({"downlinks" => [{"f_port" => 2 , "frm_payload" => encode_base64(pack("H*", "0201")), "priority" => "NORMAL"}]})}

--- Ende Code ---

rcmcronny:
Hi klaus.schauer,

danke, das habe ich auch noch gesucht und mir mal vorgenommen. Scheinbar hast Du auch den LGT92 von Dragino :)

Ronny

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln