Hallo zusammen,
versuche gerade einen externen Topic von ttn zu abonnieren.(falls das überhaupt so funktioniert)
Da ich auch im Forum nichts passendes gefunden habe bräuchte ich da mal einen Denkanstoss ::)
Dazu habe ich das Modul MQTT2_CLIENT genutzt.
laut Log kommt da auch was an
2019.09.01 20:53:05 5: ttnBroker: received PUBLISH (0).rallenetdragino/devices/test1/up/payload/Value16153
2019.09.01 20:53:05 5: ttnBroker: dispatch autocreate=no\000ttnBroker\000rallenetdragino/devices/test1/up/payload/Value\00016153
2019.09.01 20:53:05 5: ttnBroker: received PUBLISH (0)(rallenetdragino/devices/test1/up/payload{"Value":16153}
2019.09.01 20:53:05 5: ttnBroker: dispatch autocreate=no\000ttnBroker\000rallenetdragino/devices/test1/up/payload\000{"Value":16153}
2019.09.01 20:53:24 5: ttnBroker: sending PINGREQ (192)(0)
2019.09.01 20:53:24 5: ttnBroker: received PINGRESP
Aber wie greife ich nun darauf zu, mit einem angelegten MQTT_DEVICE klappt das irgendwie nicht?
Gruß
Ralf
MQTT2_CLIENT legt keine Geraete automatisch an, das muss man mit "attr ttnBroker autocreate simple" anfordern.
Achtung: daraufhin wird genau _ein_ MQTT2_DEVICE angelegt, das dann automatisch das readingsList Attribut pflegt, um MQTT-Nachrichten in Reading+Event zu wandeln.
Wenn man Nachrichten an dem MQTT Server senden will, dann muss man das im MQTT2_DEVICE per setList Attribut erst beschreiben, danach hat man die entsprechenden set Befehle zur Verfuegung.
Alternativ (zu autocreate) legt man alle MQTT2_DEVICE Instanzen selbst an, samt readingsList und setList.
ZitatAchtung: daraufhin wird genau _ein_ MQTT2_DEVICE angelegt, das dann automatisch das readingsList Attribut pflegt, um MQTT-Nachrichten in Reading+Event zu wandeln.
Funktioniert tadellos (wenn man denn auch das Autocreate zulässt, was bei mir ausgeschaltet war)
Vielen Dank
Ich habe auch ein Problem mit TTN. Ich sehe im Log nur PINGREQ und keepalive. Das Passwort ist korrekt gesetzt, das Device logged regelmäßig auf der TTN Console. Nur über MQQT kommt nichts in FHEM an.
2020.08.04 07:04:24 5 : TTN_Test1: keepalive 30
2020.08.04 07:04:24 5 : TTN_Test1: sending PINGREQ (192)(0)
2020.08.04 07:04:24 5 : TTN_Test1: received PINGRESP
2020.08.04 07:04:54 5 : TTN_Test1: keepalive 30
2020.08.04 07:04:54 5 : TTN_Test1: sending PINGREQ (192)(0)
2020.08.04 07:04:54 5 : TTN_Test1: received PINGRESP
2020.08.04 07:05:24 5 : TTN_Test1: keepalive 30
2020.08.04 07:05:24 5 : TTN_Test1: sending PINGREQ (192)(0)
2020.08.04 07:05:24 5 : TTN_Test1: received PINGRESP
Internals:
BUF
CFGFN
DEF ttn.opennetworkinfrastructure.org:1883
DeviceName ttn.opennetworkinfrastructure.org:1883
FD 13
FUUID 5f27fe7b-f33f-d6b4-7616-c3c2e4234738671f
NAME TTN_Test1
NR 4372908
PARTIAL
STATE opened
TYPE MQTT2_CLIENT
WBCallback
clientId TTNTest1
lastMsgTime 1596546015.26131
nextOpenDelay 5
Helper:
DBLOG:
state:
logdb:
TIME 1596545955.20573
VALUE CONNECTED
READINGS:
2020-08-04 14:59:15 state opened
Attributes:
autocreate simple
room MQTT
subscriptions tommytest01/devices/tommytest01_01/up
username tommytest01
verbose 5
Da gibts wohl keine Nachrichten mit topic tommytest01/devices/tommytest01_01/up
Default subscriptions ist # => ich wuerde subscriptions erst dann setzen, wenn ich zuviele Daten kriege, und nicht dann, wenn nichts kommt.
Okay, habe nochmal gesucht - anscheinend wurde die Adresse geändert auf:
Host: eu.thethings.network
Port: 1883
Die habe ich eingetragen und das subscriptions Atribut gelöscht. Jetzt erhalte ich im Eventmonitor (Log aktiviert)
2020.08.04 18:41:29 5 : HttpUtils url=http://eu.thethings.network:1883/
2020.08.04 18:41:29 4 : IP: eu.thethings.network -> 52.169.76.255
2020.08.04 18:41:29 5 : TTN_Test1: sending CONNECT (16)_(0)(6)MQIsdp(3)(194)(0)(30)(0)(8)TTNTest1(0)(11)tommytest01(0):***********************************
2020.08.04 18:41:29 5 : SW: 105f00064d514973647003c2001e000854544e5465737431000b746f6d6d79746573743031003a74746e2d6163636f756e742d76322e5a3436534158553751594651357a697755794d4e305859614d697876377166465852516746436759526645
2020.08.04 18:41:29 1 : eu.thethings.network:1883 reappeared (TTN_Test1)
2020-08-04 18:41:29 MQTT2_CLIENT TTN_Test1 CONNECTED
2020.08.04 18:41:29 5 : TTN_Test1: received CONNACK (0)(0)
2020.08.04 18:41:29 5 : TTN_Test1: sending SUBSCRIBE (128)(6)(0)(28)(0)(1)#(0)
2020.08.04 18:41:29 5 : TTN_Test1: received SUBACK (0)(28)(0)
2020.08.04 18:41:45 5 : TTN_Test1: received PUBLISH (0)%tommytest01/devices/tommytest01_01/up{"app_id":"tommytest01","dev_id":"tommytest01_01","hardware_serial":"00E08C59CBE21C51","port":1,"counter":1430,"payload_raw":"AWcBPQFoMw==","payload_fields":{"relative_humidity_1":25.5,"temperature_1":31.7},"metadata":{"time":"2020-08-04T16:41:44.717791788Z","frequency":867.7,"modulation":"LORA","data_rate":"SF7BW125","airtime":56576000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-3133303733002300","timestamp":3209114973,"time":"2020-08-04T16:41:43.772246Z","channel":6,"rssi":-114,"snr":-7,"rf_chain":0,"latitude":51.79871,"longitude":12.245873,"altitude":68},{"gtw_id":"eui-3133303733002b00","timestamp":3755494993,"time":"2020-08-04T16:41:44.093204Z","channel":6,"rssi":-59,"snr":9.5,"rf_chain":0,"latitude":51.7948,"longitude":12.257011,"altitude":60}]}}
2020.08.04 18:41:45 5 : TTN_Test1: dispatch autocreate=simple\000TTNTest1\000tommytest01/devices/tommytest01_01/up\000{"app_id":"tommytest01","dev_id":"tommytest01_01","hardware_serial":"00E08C59CBE21C51","port":1,"counter":1430,"payload_raw":"AWcBPQFoMw==","payload_fields":{"relative_humidity_1":25.5,"temperature_1":31.7},"metadata":{"time":"2020-08-04T16:41:44.717791788Z","frequency":867.7,"modulation":"LORA","data_rate":"SF7BW125","airtime":56576000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-3133303733002300","timestamp":3209114973,"time":"2020-08-04T16:41:43.772246Z","channel":6,"rssi":-114,"snr":-7,"rf_chain":0,"latitude":51.79871,"longitude":12.245873,"altitude":68},{"gtw_id":"eui-3133303733002b00","timestamp":3755494993,"time":"2020-08-04T16:41:44.093204Z","channel":6,"rssi":-59,"snr":9.5,"rf_chain":0,"latitude":51.7948,"longitude":12.257011,"altitude":60}]}}
2020-08-04 18:41:45 Global global UNDEFINED MQTT2_TTNTest1 MQTT2_DEVICE TTNTest1
2020.08.04 18:42:05 5 : TTN_Test1: received PUBLISH (0)%tommytest01/devices/tommytest01_01/up{"app_id":"tommytest01","dev_id":"tommytest01_01","hardware_serial":"00E08C59CBE21C51","port":1,"counter":1432,"payload_raw":"AWcBPQFoMw==","payload_fields":{"relative_humidity_1":25.5,"temperature_1":31.7},"metadata":{"time":"2020-08-04T16:42:04.739926175Z","frequency":868.1,"modulation":"LORA","data_rate":"SF7BW125","airtime":56576000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-3133303733002b00","timestamp":3775508688,"time":"2020-08-04T16:42:04.106692Z","channel":0,"rssi":-63,"snr":10.75,"rf_chain":0,"latitude":51.7948,"longitude":12.257011,"altitude":60}]}}
2020.08.04 18:42:05 5 : TTN_Test1: dispatch autocreate=simple\000TTNTest1\000tommytest01/devices/tommytest01_01/up\000{"app_id":"tommytest01","dev_id":"tommytest01_01","hardware_serial":"00E08C59CBE21C51","port":1,"counter":1432,"payload_raw":"AWcBPQFoMw==","payload_fields":{"relative_humidity_1":25.5,"temperature_1":31.7},"metadata":{"time":"2020-08-04T16:42:04.739926175Z","frequency":868.1,"modulation":"LORA","data_rate":"SF7BW125","airtime":56576000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-3133303733002b00","timestamp":3775508688,"time":"2020-08-04T16:42:04.106692Z","channel":0,"rssi":-63,"snr":10.75,"rf_chain":0,"latitude":51.7948,"longitude":12.257011,"altitude":60}]}}
2020-08-04 18:42:05 Global global UNDEFINED MQTT2_TTNTest1 MQTT2_DEVICE TTNTest1
Es kommen also Daten. Allerdings wird kein Device angelegt obwohl autocreate auf simple steht. Zumindest finde ich nichts in "unsorted" und "everything"
In der asgelieferten fhem.cfg wird ein autocreate Device definiert.
Dieses wurde entfernt oder deaktiviert.
Das wars! Ich hatte das Autocreate mal irgendwann deaktiviert, weil mein Nachbar mit seinem Hörmann Garagentor mir ständig neue Devices kreiert hat. Disabled Attribut gelöscht - zack - Device wurde angelegt.
Tausend Dank!
Hallo zusammen,
Ich möchte auch mehrer Sensoren aus dem TTN (inzwischen Version 3) an FHEM anbinden.
Nach der oben stehenden Anleitung ist es mir auch gelungen.
Allerdings werden keine Devices für die Sensoren angelegt sondern das landet alles im MQTT2Device Device.
Das sind mehrer identische Sensoren, wobei jeder Sensor natürlich ab irgendwo im Topic Eindeutig ist.
Hilft es wenn ich im MQTT-Client statt # den identischen Anfang der Topics abonniere?
Mir ist einfach unklar wie MQTT2_Device aus dem Topic ein Gerät ,,errät".
Vielen Dank und Grüße Michael
Hallo Michael,
der Trick wird sein, ein Bridge Device anzulegen. :)
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#bridgeRegexp
Gruß Otto
Schönen guten Abend! Könnte jemand bitte ein Schritt-fuer-Schritt TTS (v3) - FHEM anbieten? FHEM läuft auf mein Raspi. Ich habe ein Paar Sensoren die auf TTS OK laufen (Dragino), aber MQTT is mir einfach zu schwer... Ja, habe viele Leitungen gelesen, aber wie gesagt, einfach zu schwierig fuer ein Newbie wie ich. Geht es irgendwie TTS MQTT API key mit MQTT2 zu verbinden oder brauche ich Mosquitto? Braucht man MQTT-bridge? Aber wie... Am Ende wollte ich alles in meinem Loxone home management treiben, aber zuerst FHEM.. Vielen Dank & Gruesse aus Finnland!
Moi Jussi!
Ich hab zwar noch keine wirklichen Sensoren am Laufen die an TTS Daten schicken, aber mit folgenden Schritten konnte ich mein FHEM über MQTT zu TTS connecten (FHEM meldet zumindest "opened"):
1. in FHEM "define TTS_MQTT MQTT2_CLIENT eu1.cloud.thethings.network:1883"
2. in FHEM "attr TTS_MQTT username [TTS-APP-ID]@ttn"
3. in der Console auf der TTS-Seite "Integrations->MQTT->Generate new API key" und den Key kopieren
4. in FHEM "set TTS_MQTT password [API-Key]"
5. in FHEM "attr TTS_MQTT autocreate simple"
Wie dann die Subscriptions aussehen kann ich noch nicht sagen. Dazu muss ich erst meine Sensoren fertiglöten. Das kann aber noch dauern...
Hallo zusammen,
das
Bridge Device war der entscheidende Punkt. Ich hatte das gleiche Problem und es erfolgreich lösen können. Anbei ein paar Ausführungen; eventuell hilft es dem ein oder anderen.
Augangspunkt: Ein MQTT2_CLIENT, welcher eine Verbindung mit TTN hat (vgl. Beitrag von tomster - 17 Januar 2022, 17:27:09). Zwei LoRa-Module (
module01 und
module02), welche der TTN Applikation (Application ID)
node angehören. Der MQTT2_CLIENT heißt
MQTT_lora_node.
1) Füge das Attribut autocreate = complex ein:
attr MQTT_lora_node autocreate complex2) Sende Daten mit einem LoRa-Modul, bspw. module01
3) Es wird automatisch ein MQTT2_DEVICE angelegt, welches
MQTT2_MQTT_lora_node heißt. (Wenn man nun Daten vom module01 und (zeitlich kurz versetzt) vom module02 schickt, landen beide Daten in dem MQTT2_DEVICE
MQTT2_MQTT_lora_node. Das ist das Problem. Nun im Folgenden zur Lösung/Abhilfe:)
4) Füge nun die BridgeDevice dem
MQTT2_MQTT_lora_node zu durch (
Hinweis; der Ausdruck "v3/lora...." kommt aus dem Device
MQTT2_MQTT_lora_node unter der
readingList):
attr MQTT2_MQTT_lora_node bridgeRegexp v3/lora-node\x40ttn/devices/module([0-90-9]*)[/]?.*:.* "lora_node_module$1"5) Sende erneut Daten, bspw. von module02; es wird nun automatisch ein neues Device angelegt, welches
MQTT2_lora_node_module02 heißt. Anschließend Daten vom anderen Modul (module01) schicken. => Es wird ein neues Device angelegt, welches
MQTT2_lora_node_module01 heißt.
Zitat von: Otto123 am 17 Dezember 2021, 09:54:44
Hallo Michael,
der Trick wird sein, ein Bridge Device anzulegen. :)
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#bridgeRegexp
Gruß Otto
Hallo zusammen,
ist zwar älter, aber mein aktuelles Thema.
Ich habe einen TTN-Client, wie von tomster beschrieben.
Steht auf opened und mit "Show MQTT traffic" sehe ich die Daten.
Es wird aber keine Device angelegt.
??
Hi,
https://wiki.fhem.de/wiki/MQTT2_CLIENT#autocreate_und_bridgeRegexp
Zitat von: rudolfkoenig am 02 September 2019, 08:55:33MQTT2_CLIENT legt keine Geraete automatisch an, das muss man mit "attr ttnBroker autocreate simple" anfordern.
Achtung: daraufhin wird genau _ein_ MQTT2_DEVICE angelegt, das dann automatisch das readingsList Attribut pflegt, um MQTT-Nachrichten in Reading+Event zu wandeln.
Wenn man Nachrichten an dem MQTT Server senden will, dann muss man das im MQTT2_DEVICE per setList Attribut erst beschreiben, danach hat man die entsprechenden set Befehle zur Verfuegung.
Alternativ (zu autocreate) legt man alle MQTT2_DEVICE Instanzen selbst an, samt readingsList und setList.
defmod TTN MQTT2_CLIENT eu1.cloud.thethings.network:1883
attr TTN autocreate simple
attr TTN keepaliveTimeout 300
attr TTN username wespe@ttnZitat von: pallago am 26 April 2022, 22:16:084) Füge nun die BridgeDevice dem MQTT2_MQTT_lora_node zu durch (Hinweis; der Ausdruck "v3/lora...." kommt aus dem Device MQTT2_MQTT_lora_node unter der readingList):
attr MQTT2_MQTT_lora_node bridgeRegexp v3/lora-node\x40ttn/devices/module([0-90-9]*)[/]?.*:.* "lora_node_module$1"
Das Device kommt nicht und MQTT2_Client kennt kein bridgeRegexp als Attribut.
Erst bitte pruefen, ob eine autocreate FHEM Instanz aktiv ist. Das ist bei der "Auslieferung" vorhanden (mit dem Namen autocreate), viele deaktivieren es (warum auch immer).
Damit wird beim Empfang einer Nachricht (egal ob MQTT2_SERVER oder MQTT2_CLIENT) eine MQTT2_DEVICE Instanz angelegt.
Das bridgeRegexp Attribut ist fuer diese MQTT2_DEVICE Instanz zu setzen.
Zitat von: rudolfkoenig am 19 Januar 2026, 14:07:36Erst bitte pruefen, ob eine autocreate FHEM Instanz aktiv ist.
Ich sage mal ja, da ich das u.a. bei zigbee2mqtt habe.