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