FHEM und LoRaWAN

Begonnen von rz259, 14 Dezember 2024, 13:56:42

Vorheriges Thema - Nächstes Thema

rz259

Zitat von: rudolfkoenig am 20 Dezember 2024, 14:42:12Was steht in der nrClients Reading von MQTT2_SERVER?

Da steht noch leider noch 0 drin - irgendwie werden anscheinend die Events nicht weitergegeben....


Beta-User

Zitat von: rz259 am 22 Dezember 2024, 10:12:21
Zitat von: rudolfkoenig am 20 Dezember 2024, 14:42:12Was steht in der nrClients Reading von MQTT2_SERVER?

Da steht noch leider noch 0 drin - irgendwie werden anscheinend die Events nicht weitergegeben....

Das hat erst mal nichts mit "Events" zu tun. Dein Gateway findet schlicht den Weg zum MQTT-Server nicht.
Sonst wäre es 1 oder mehr.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rz259

Zitat von: Beta-User am 22 Dezember 2024, 10:53:26
Zitat von: rz259 am 22 Dezember 2024, 10:12:21
Zitat von: rudolfkoenig am 20 Dezember 2024, 14:42:12Was steht in der nrClients Reading von MQTT2_SERVER?

Da steht noch leider noch 0 drin - irgendwie werden anscheinend die Events nicht weitergegeben....

Das hat erst mal nichts mit "Events" zu tun. Dein Gateway findet schlicht den Weg zum MQTT-Server nicht.
Sonst wäre es 1 oder mehr.

Ja, das mag sein, aber ich habe das Gefühl, dass das Problem noch tiefer sitzt. Wenn ich von dem Rapsi, auf dem der Chirpstack-Server installiert ist, auf der shell eine mqtt-nachricht publiziere, dann kann ich sie auch mit mosquitto_sub empfangen. Allerdings kriege ich - immer noch auf der gleichen Maschine - keine Topics  von Chirpstack. Da Chirpstack aber auf einem Container auf eben diesem Raspi läuft, hat es für mich den Anschein, dass ich keine Topics erhalte, welche aus dem Container publiziert werden.

Ich starte Chirpstack über die docker-compose.yaml-Datei und dort ist als Port 1883:1883 konfiguriert, d. h. eigentlich müsste der Port 1883 vom Container an den Port 1883 des Hosts weitergeleitet werden - genau das scheint aber nicht zu funktionieren - zumindest ist das mein Eindruck.

FHEM läuft auf einem anderen Raspi, soweit bin ich noch gar nicht. Bevor ich nicht das erste Problem gelöst habe, brauche ich mich mit dem zweiten Problem in FHEM noch gar nicht zu beschäftigen - bzw. vielleicht ist es ja damit auch schon gelöst. Aber ich denke nicht, dass FHEM hier das Problem ist.

Beta-User

Zitat von: rz259 am 23 Dezember 2024, 00:32:47Ja, das mag sein, aber ich habe das Gefühl, dass das Problem noch tiefer sitzt. Wenn ich von dem Rapsi, auf dem der Chirpstack-Server installiert ist, auf der shell eine mqtt-nachricht publiziere, dann kann ich sie auch mit mosquitto_sub empfangen.
Du sprichst davon, dass du mit mosquitto-clients-Tools den FHEM-MQTT-Server ansprichst, oder?

Anmerkung: "autocreate" wird in dem Fall auch nur dann aktiv, wenn du die ClientId manuell vergibst - FHEM verwirft "typische" ClientIds, die mosquitto_pub automatisch erzeugt.
Sowas _könnte_ auch noch ein Problem darstellen, aber dazu müßte erst die nrClients anzeigen, dass die Verbindung an sich steht - vorausgesetzt, dein "Chirpstack"-Ding kennt sowas wie "LWT" und macht nicht ständig neu eine Verbindung auf (was ungewöhnlich wäre)...

Aber nochmal zwei Schritte zurück:
ZitatIn the latest version, MQTT Forwarder functionality has been added to the LPS8V2 gateway by default
Users can configure the MQTT Forwarder on the Forwarder-->MQTT interface, and when the configuration is successful, it will forward the sensor data of the lorawan server chirpstack built in LPS8v2
Quelle: https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/#H3.4.1Forwarder--3EMQTTForwarder

Demnach brauchst du - jedenfalls nach meinem Verständnis - _keinen gesonderten_ Chirpstack-Server (mehr), sondern schlicht eine aktuelle firmware für dein Gateway... Aber vielleicht liege ich ja falsch; vielleicht zeigst du uns deine Versions-Angaben?


Und stelle sicher, dass in der forwarder-Konfiguration ein ClientId angegeben ist; ich gehe davon aus, dass der forwarder zwar "build in" ist, aber trotzdem (per text-file-edit) konfiguriert werden muss wie in  https://www.chirpstack.io/docs/chirpstack-mqtt-forwarder/configuration.html#configuration-example erläutert.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

ZitatIch starte Chirpstack über die docker-compose.yaml-Datei und dort ist als Port 1883:1883 konfiguriert, d. h. eigentlich müsste der Port 1883 vom Container an den Port 1883 des Hosts weitergeleitet werden
Das ist nur fuer eingehende Verbindungen relevant, d.h. wenn der MQTT Server im Chirpstack Container ist.
Fuer die andere Richtung (aus dem Container raus) braucht man keine spezielle Konfiguration.

Diese Konfiguration ist ein Indiz dafuer, dass im Container ein MQTT Sever ist.
Ich wuerde das erst mit mosquitto_sub verifizieren, und wenn es der Fall ist, in FHEM statt MQTT2_SERVER den MQTT2_CLIENT verwenden.

rz259

Zitat von: rudolfkoenig am 23 Dezember 2024, 08:55:46
ZitatIch starte Chirpstack über die docker-compose.yaml-Datei und dort ist als Port 1883:1883 konfiguriert, d. h. eigentlich müsste der Port 1883 vom Container an den Port 1883 des Hosts weitergeleitet werden
Das ist nur fuer eingehende Verbindungen relevant, d.h. wenn der MQTT Server im Chirpstack Container ist.
Fuer die andere Richtung (aus dem Container raus) braucht man keine spezielle Konfiguration.

Diese Konfiguration ist ein Indiz dafuer, dass im Container ein MQTT Sever ist.
Ich wuerde das erst mit mosquitto_sub verifizieren, und wenn es der Fall ist, in FHEM statt MQTT2_SERVER den MQTT2_CLIENT verwenden.

Ja genau - aber irgendwie habe ich das ganze Prinzip mit MQTT im Container noch nicht durchschaut. Ich habe mal eine Shellsession im Container aufgemacht und ich kann (im Container) auch Topics publishen - allerdings kommen die nicht nach aussen.
Parallel dazu habe ich eine Shell-Session auf dem gleichen Computer außerhalb des Terminals geöffnet und da kommen die Nachrichten aus dem Container halt nie an, zumindest nicht, wenn ich localhost für die IP-Adresse verwende.
Ich vermute daher, dass ich da eine andere IP-Adresse als localhost verwenden muss - da muss ich noch mal recherchieren....

Wenn ich gar nicht weiterkomme, dann überlege ich mir, Chirpstack nicht im Container laufen zu lassen, sondern doch auf einem weiteren Raspi, den ich dann mit dem Chirpstack-Image bestücken werde. Das sollte dann auf alle Fälle gehen....

Beta-User

Zitat von: rz259 am 24 Dezember 2024, 12:00:51Ja genau - aber irgendwie habe ich das ganze Prinzip mit MQTT im Container noch nicht durchschaut.
Nochmal der Hinweis - scheint irgendwie untergegangen zu sein: In deinem GW sollte der Chirpstack-Server eigentlich schon eingebaut sein (falls du die aktuellste Firmware hast). Wenn das so wäre, brauchst du nicht nochmal einen, sondern musst einfach dort (direkt auf deinem Gateway) den "forwarder" entsprechend konfigurieren.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rz259

Zitat von: Beta-User am 25 Dezember 2024, 15:48:24
Zitat von: rz259 am 24 Dezember 2024, 12:00:51Ja genau - aber irgendwie habe ich das ganze Prinzip mit MQTT im Container noch nicht durchschaut.
Nochmal der Hinweis - scheint irgendwie untergegangen zu sein: In deinem GW sollte der Chirpstack-Server eigentlich schon eingebaut sein (falls du die aktuellste Firmware hast). Wenn das so wäre, brauchst du nicht nochmal einen, sondern musst einfach dort (direkt auf deinem Gateway) den "forwarder" entsprechend konfigurieren.

@Beta-User
Vielen Dank für den nochmaligen Hinweis ja, das habe ich tatsächlich nicht gelesen. Ok, ich brauche also zum Sersenden Publishen der Topics keinen eigenen Chirpstack-Server - aber wie sieht es mit dem Pairen der Devices aus? Dafür brauche ich ja schon irgendeine Möglichkeit - brauche ich ihn dafür?

Den Forwarder habe ich eigentlich schon konfiguriert, die Broker-Address zeigt auf meinen Raspi, der Port ist per default auf 1883 eingestellt.
Als Topic habe ich mal "LHT52" gewählt, Userid und Passwort ist leer, Format ist auf "json" eingestellt.

Wie funktioniert das dann mit dem Subscriben? Ich hätte nun gedacht, dass - wenn an dem Raspi ein MQTT-Server läuft, ich dann auch die Topics entsprechend subsriben könnten müsste. Ich habe daher an dem Raspi mal mosquitto als Service gestartet und alle Topics mit " -t '#'" subscribed

Aber das funktioniert so auch nicht.... ich muss noch weiter forschen.

Ich vermute mal, dass das alles nicht so kompliziert ist, wenn man es mal verstanden hat;-)



enno

Zitat von: rz259 am 25 Dezember 2024, 19:05:30Ich vermute mal, dass das alles nicht so kompliziert ist, wenn man es mal verstanden hat;-)

Moin Rudi,

nutz doch in FHEM den MQTT2 Client, mit der IP deines LoRaWan Routers:

Zitatdefmod TTS_MQTT MQTT2_CLIENT 192.168.1.239:1883
attr TTS_MQTT autocreate complex

Dann der Rest auf deinem LoRaWAN Router einrichten, dort läuft Chirpstack: IP des Routers und Port 8080

Dort "Device profiles" für dein Gerät einrichten, dann "Applications" mit dem definierten Profil anlegen und dort die Keys etc eingeben. Wichtig ist im Profil, die "Codec functions", sonst kommt nichts. Dann ein bischen warten und eigentlich sollte dann in FHEM automatisch Werte ankommen. Wenn nicht, dann in der Application in Log schauen....

Deine ganzen Aktionen mit Forwarder etc. habe ich bei mir nicht aktiviert. Für FHEM lokal reicht Profil und Application.

Versucht es doch erst mal simple ;)

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Beta-User

Zitat von: rz259 am 25 Dezember 2024, 19:05:30Ich vermute mal, dass das alles nicht so kompliziert ist, wenn man es mal verstanden hat;-)
Vermute ich auch...

Mach es der Reihe nach:
Zitat von: rz259 am 25 Dezember 2024, 19:05:30Ok, ich brauche also zum Sersenden Publishen der Topics keinen eigenen Chirpstack-Server - aber wie sieht es mit dem Pairen der Devices aus?
Nach meinem Verständnis braucht man (aus diversen Gründen, die erst mal nichts mit MQTT zu tun haben) unbedingt einen solchen Server, aber der ist eben bereits auf deinem GW mit eingebaut. Jedenfalls, wenn die firmware aktuell ist. Kannst du das bitte schlicht mal verifizieren?!? (Und dann hier Infos liefern, z.B. die Version vom GW?)

Und das GW hat auch - wie enno schreibt und Rudi bereits vermutet hatte - einen eigenen MQTT-Server-Dienst mit eingebaut, auf den man sich einfach (@enno: warum comlex?!?) verbinden könnte. Ob der jetzt Teil von dem Chirpstrack-Ding ist oder was getrenntes, sei mal dahingestellt.

Für den ersten Schritt würde ich das auch so ähnlich (MQTT2_CLIENT, jedoch mit "simple"-autocreate) empfehlen, aber: Wenn man (irgendwann) mehrere MQTT-IO's hat, muss man sehr aufpassen, dass man für Kommandos an die MQTT-Geräte dann jeweils das richtige IO verwendet. Von daher würde ich dir nahelegen, später doch den "forwarder" (+MQTT2_SERVER) einzurichten, sobald mal klar ist, wie das ganze eigentlich funktioniert... Aber erst dann!
Das hält dir die Struktur in FHEM einfacher.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

enno

@Beta-User: Ich hatte ein Device in meinem Zoo, das habe ich damit besser in den Griff bekommen. Aber wie du auch schreibst, "simple" ist auch eine gute Idee:
Aus https://fhem.de/commandref.html#MQTT2_CLIENT:"Which one is better depends on the attached devices and on the personal taste".

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

rz259

Zitat von: Beta-User am 26 Dezember 2024, 08:26:14
Zitat von: rz259 am 25 Dezember 2024, 19:05:30Ich vermute mal, dass das alles nicht so kompliziert ist, wenn man es mal verstanden hat;-)
Vermute ich auch...

Mach es der Reihe nach:
Zitat von: rz259 am 25 Dezember 2024, 19:05:30Ok, ich brauche also zum Sersenden Publishen der Topics keinen eigenen Chirpstack-Server - aber wie sieht es mit dem Pairen der Devices aus?
Nach meinem Verständnis braucht man (aus diversen Gründen, die erst mal nichts mit MQTT zu tun haben) unbedingt einen solchen Server, aber der ist eben bereits auf deinem GW mit eingebaut. Jedenfalls, wenn die firmware aktuell ist. Kannst du das bitte schlicht mal verifizieren?!? (Und dann hier Infos liefern, z.B. die Version vom GW?)

Tja, das mit der Firmware-Version ist so eine Sache - da gibt's einerseits die Anzeige direkt auf der Homepage des Gateways mit 1.0.1 angezeigt, aber es gibt auch noch eine Anzeige unter System - Overview, da wird als aktuelle FWD-Version 3.0.2 vom 22.11.2024 angezeigt - ich gehe mal davon aus, dass das die installierte Version ist.

Und unter "System - Package Management" gibts mehrere Pakete mit unterschiedlichen Versions-Nummern. Auto-Update ist aktiviert und somit sollte das System eigentlich auf dem aktuellen Stand sein.

   Name                                  Current Version
    dragino-httpd :                       2023-04-07
    dragino-ui :                          2024-12-20
    draginofwd :                          2024-11-22
    draginoups :                          2023-12-07
    dragino-fallback :                    24.05.15
    armbian-bsp-cli-draginohp0z :         23.02.16
    linux-image-current-draginohp0z :     22.05.2

rz259

#27
Zitat von: enno am 25 Dezember 2024, 19:48:36Dann der Rest auf deinem LoRaWAN Router einrichten, dort läuft Chirpstack: IP des Routers und Port 8080

Dort "Device profiles" für dein Gerät einrichten, dann "Applications" mit dem definierten Profil anlegen und dort die Keys etc eingeben. Wichtig ist im Profil, die "Codec functions", sonst kommt nichts. Dann ein bischen warten und eigentlich sollte dann in FHEM automatisch Werte ankommen. Wenn nicht, dann in der Application in Log schauen....

Deine ganzen Aktionen mit Forwarder etc. habe ich bei mir nicht aktiviert. Für FHEM lokal reicht Profil und Application.

Versucht es doch erst mal simple ;)

Und wie genau mache ich das alles? Ich finde hier auf dem Gateway keinen Chirpstack-Server - ich habe ja schon einen Chirpstackserver auf einem anderen Raspi laufen, daher weiß ich so halbwegs, wie das aussehen müsste. Auf dem LPS8v2 finde ich nichts dergleichen, ich habe hier keine Möglichkeit, ein Device-Profile oder eine Application einzurichten.

Ich habe aber einen Verdacht - bei  mir ist immer noch LoraWAN Semtech UDP aktiviert und zwar mit dem TTN-Server als Primary Server und der Secondary Server steht dann auf Custom/Private LoraWAN.

Kann es sein, dass ich da auf Basic Station umschalten muss und als Service Provider Chirp Stack - Basic Station auswählen muss?

Das würde dann einiges erklären....

Aber was müsste ich dann als LNS URI einstellen?

Beta-User

Zitat von: rz259 am 27 Dezember 2024, 14:58:39Kann es sein, dass ich da auf Basic Station umschalten muss und als Service Provider Chirp Stack - Basic Station auswählen muss?
Es kann schon sein, dass du erst mal die Doku zu deiner Hardware zu Rate ziehen solltest... Das "Chirp Stack - Basic Station" klingt jedenfalls aus der Ferne plausibel.

PS: Wenn du für deine (Innenraum-) Sonsoren auf Bluetooth (+OpenMQTTGateway) gesetzt hättest, wäre das Thema zu einem Bruchteil des Preises bereits seit Wochen fertig... 
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

enno

Moin Rudi,

dein Gateway hat zwei Adressen. Bei mir sind das http://192.168.1.239 für das System und http://192.168.1.239:8080 für ChirpStack. Wenn du das mit der Ip deines Gateway machst, solltes du weiter kommen.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian