Hallo zusammen,
ich möchte gerne zukünftig LoraWAN-Sensoren in meinen Hausautomatisierung einbauen. Da die Sensoren auch im Haus sind, würde ich aber ungern TTN nutzen, sondern möchte ein privates LoraWAN-Netzwerk aufbauen - es interessiert ja wahrscheinlich auch niemanden, wie warm es in meinem Haus ist. Die Verbindung zu FHEM soll dann über MQTT laufen.
Ich habe mir inzwischen ein LoraWAN-Gateway besorgt (das LPS8V2 von Dragino) sowie zwei LHT52-Sensoren (ebenfalls von Dragino).
Jetzt geht es darum, das Netzwerk aufzubauen und ich scheitere schon an den Basics. Ich habe das Gateway in Betrieb genommen - das Gateway hat die Möglichkeit von zwei verschiedenen LoraWAN-Netzwerken. Das erste ist per Default auf TTN eingestellt (das habe ich auch mal so gelassen), das zweite habe ich auf Custom/Private eingestellt (Adresse 127.0.0.1), wobei ich mir da schon unsicher bin. Es gibt auch die Option "Builtin server" - vielleicht müsste ich ja auch das nehmen?
Was muss ich da genau einstellen? Und wie kann ich die Sensoren in Betrieb nehmen? Wie kann ich das Ganze mit FHEM verbinden? Im Gateway habe ich MQTT aktiviert und als Adresse meinen Raspberry angegeben, auf dem FHEM läuft. Daten kommen jedoch noch keine an, ist ja auch klar, weil die Sensoren noch nicht mit dem Netzwerk verbunden sind.
Die Frage ist, was muss ich alles in welcher Reihenfolge machen, damit
a) meine Sensoren mit dem Gateway verbunden werden und
b) die Daten an FHEM gesendet werden
Ich habe leider nirgendwo eine Anleitung für diesen Fall gefunden und wäre für jede Hilfe dankbar. Die meisten Antleitungen beziehen sich auf TTN, was ich ja nicht brauche und eigentlich auch nicht will - zumindest nicht für alle Sensoren. Ich würde das Procedure für spätere Interessenten genau dokumentieren, damit es dann für diese leichter wird.
Sollte es doch irgendwelche Tutorials oder Anleitungen geben, die ich übersehen habe, dann dürft ihr mich natürlich auch gerne darauf verweisen.
Vielen Dank schon mal fürs Lesen und eure Ratschläge,
Rudi
Ich habe das Geraet nicht, ich rate anhand Doku:
- erst in FHEM einen MQTT2_SERVER definieren mit: define m2s MQTT2_SERVER 1883 global
- pruefen, ob in FHEM eine autocreate Instanz definiert ist. Per Auslieferung ist das vorhanden, ansonsten eine definieren mit: define autocreate autocreate
- in den LPS8V2 Einstellungen, unter MQTT Forwarder bei Broker Address die Adresse des FHEM Servers angeben (am besten als IP-Adresse), als Port 1883, Benutzer, Passwort und Zertifikate leer lassen. Topic ist erstmal egal, Format json ist richtig, und zum Schluss Save&Apply
- danach sollte in FHEM eine MQTT2_DEVICE Instanz angelegt werden, zunaechst eine fuer alle Sensoren.
- damit man diese Sensoren einzelnen FHEM Geraeten zuordnen kann (was das Protokollieren, die Anzeige, usw vereinfacht), sollte man bei der gerade angelegten MQTT2_DEVICE Instanz ein bridgeregexp Attribut setzen. Wie das ausschaut, haengt von den empfangenen Nachrichten ab. Bei diesem letzten Schritt koennen wir erst was Konkretes sagen, wenn wir sehen, was genau empfangen wurde => In der Detailansicht der angelegten MQTT2_DEVICE Instanz unten den "Copy for forum.fhem.de" Knopf druecken, und das Ergebnis hier per Einfuegen uns zeigen.
Das meiste haben wir aber schon angesprochen in diesem Thema: https://forum.fhem.de/index.php?topic=139642
Hallo Rudi (rz259),
das muss im Gateway etwa so aussehen:LoRaWAN Configuration - General Settings
Email dragino-123456@dragino.com
Gateway EUI 1234567890123456
Primary LoRaWAN Server
Service Provider The Things Network v3 Server Address eu1.cloud.thethings.network
Uplink Port 1700 Downlink Port 1700
Secondary LoRaWAN Server
Service Provider Custom/Private LoRaWan Server Address <IP.Add.Vom.Raspi>
Uplink Port 1700 Downlink Port 1700
Der Rest ab hier bleibt alles leer.
Current Mode:LoRaWAN Semtech UDP
Dann musst Du ja natürlich noch auf deinem Raspi den 'Custom/Private LoRaWan' Server aufsetzen, der under der <IP.Add.Vom.Raspi> erreichbar ist. Das ist dann evtl ein Chirpstack Server. Auf dem Chirpstack Server verbindest Du dann das Gateway, und dort lernst Du dann erstmal alle deine Sensoren verschlüsselt an, die sich dann nach der Anmeldung mit dem Gateway verbinden. Im Webfrontend von Chirpstack siehst Du dann auch, ob die Daten der Sensoren vom Gateway empfangen werden. In den Device Profiles deiner Sensoren richtet man auch den Payload codec ein, der die empfangenen RAW data Bytes in z.b. Temp und Humidity umsetzt.
Im Chirpstack Server, der jetzt alle events deiner Sensoren empfängt, wird dann unter "Applications" die Integration mit MQTT eingerichtet. Diese Integration sendet dann alle Events an FHEM. Mit google findest Du alle Information zum aufsetzten eines Chirpstack Servers. So habe ich das gemacht.
So wie Rudi (rudolfkoenig) kannst du es auch machen, aber Du benoetigst trotzdem immer einen Server, um die Sensoren anzulernen.
Falls dass Gateway dann wie bei Rudi (rudolfkoenig) beschrieben die Sensor Daten per MQTT direkt an FHEM sendet, musst Du den Payload decoder der Raw Bytes dann in FHEM realisieren. Das ist mein Verständnis.
@rudolfkoenig
Ich habe den Server mit 0
defmod MQTT2SRV MQTT2_SERVER 1883 global
definiert. Ist das gleichwertig zu deinem Vorschlag oder besteht da ein Unterschied?
Die MQTT2-Instanz ist auf jeden Fall schon vorhanden, die Frage ist, ob sie richtig ist.
Das mit der IP-Adresse für den MQTT ist ein guter Hinweis, aktuell steht da der Name des Servers drin.
Und bzgl. dem Chirpstack-Server - brauche ich sowas, wenn ich FHEM einsetze oder nicht?
Zitat von: rz259 am 14 Dezember 2024, 17:36:41Und bzgl. dem Chirpstack-Server - brauche ich sowas, wenn ich FHEM einsetze oder nicht?
Ja, Du musst ja deine Sensoren mit der Device Adress, Device EUI (DevEUI, findest Du auf dem Karton des Sensors), Join EUI, Application session key, etc an einem Server anlernen. Das kann Chirpstack (lokal, privat) oder TTN (thethings.network, public cloud) oder Helium sein. Du brauchst also immer einen Server, der dein Gateway und deine Sensoren im Netzwerk von Chirpstack oder TTN bekannt macht.
Vielen Dank für den Hinweis mit dem Chirpstack-Server. Ich hatte schon gelesen, dass man auch einen Application Server benötigt, war aber naiverweise davon ausgegangen, dass der bereits in FHEM integriert ist. Ich hatte schon mal einige Fragen zu dem Thema gestellt und irgendwie habe ich das fälschlicherweise so interpretiert, dass ich außer FHEM und dem Gateway nichts benötigen würde.
Ich hatte mich auch schon gewundert, wie ich in FHEM die jeweiligen Keys für die Devices bekanntmachen könnte.
Schade, es wäre cool gewesen, wenn ich auf den Chirpstack-Server hätte verzichten können, schließlich muss man die Sachen ja nicht komplizierter als unbedingt nötig machen...
Die Frage ist, muss ich hier einen neuen Raspberrypi aufsetzen oder kann ich das auch auf einem bestehenden Server hinzufügen. Auf die Schnelle hat meine Suche ergeben, dass es für den Chirpstack Server ein eigenes Image gibt, d. h. dass man dafür einen neuen Server einrichten muss - lieber wäre es mir natürlich, wenn ich das auf dem bestehenden Server laufen lassen könnte.
Update:
Für Chirpstack gibt es auch einen Container, der auch unter dem Raspberry läuft - da bin ich gerade dran, mich durchzuwühlen - einfach so out of the box funktioniert es erst mal nicht. Darum gibt's ja auch wahrscheinlich die Images für den Raspberry, damit geht es wahrscheinlich deutlich einfacher, aber dafür läuft halt dann noch eine Maschine mehr...
Vielen Dank schon mal,
Rudi
Hallo,
ich bin nun etwas weiter, ich habe einen Chirpstack-Server mit einem Docker-Container aufgesetzt und schon mal einen Sensor angelernt. Das funktioniert soweit gut, ich sehe auch die Daten (Events) in Chirpstack. Allerdings weiß ich nicht, welches DeviceProfile ich am besten einsetzen sollte - es gibt drei verschiedene Auswahlmöglichkeiten
- none (die Daten werden roh übertragen)
- Cayenne LPP - das funktioniert nicht, da erscheint dann ein Fehler oder
- Javascript Function
Wie ist da die beste Strategie? Kann ich die Daten per Javascript function dekodieren und dann am FHEM per MQTT weitergeben? Oder soll ich die Daten unbearbeitet an FEHM weitergeben.
Und dann habe ich noch das Problem, dass ich zwar MQTT enabled habe und bei meinem LoraWAN-Server auch die IP-Adresse des Raspberry-Servers eingetragen habe, auf dem FHEM läuft, aber da scheint nichts anzukommen, ich habe auch kein Gerät gefunden, welches automatisch angelegt wurde.
Wo würde das Gerät denn angelegt werden bzw. wie wäre ein möglicher Name für das Gerät? Muss ich noch weitere Sachen in Chirpstack machen, damit die MQTT-Payload weitergeleitet wird?
Hallo Rudi,
der Payload decoder fuer deinen LHT52 findest Du unter https://github.com/dragino/dragino-end-node-decoder/tree/main/LHT52 (ehemals https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LHT52/Decoder/, siehe readme.txt)
Dieser payload decoder wird unter chirpstack in "Device Profiles" -> "Codec" -> Payload codec/JavaScript functions in dem grossen Eingabefeld einkopiert.
Wie Du selber sagst, Du hast 2 Möglichkeiten,
1) wie von Rudi beschrieben, per MQTT aus dem Gateway raus. Dann bekommst Du meiner Meinung nach die RAW Daten, und musst die Dekodierung (entsprechend dem Payload decoder) manuell in fhem machen.
2) In Chirpstack ueber die MQTT integration (https://www.chirpstack.io/docs/chirpstack/integrations/mqtt.html), dann bekommt man die events als json ueber MQTT geliefert. Das mqtt topic ist auf der Seite ebenfalls beschrieben, "application/APPLICATION_ID/device/+/event/up". Das kann man dann in fhem mit der Funktion { json2nameValue($EVENT) } abholen.
Ich habe in Chirpstack eine Application "FHEM" angelegt, und dort dann auch dort die MQTT integration hinzugefügt (soweit ich mich erinnere, ich möchte das jetzt nicht nochmal machen).
ZitatUnd dann habe ich noch das Problem, dass ich zwar MQTT enabled habe und bei meinem LoraWAN-Server auch die IP-Adresse des Raspberry-Servers eingetragen habe, auf dem FHEM läuft, aber da scheint nichts anzukommen, ich habe auch kein Gerät gefunden, welches automatisch angelegt wurde.
Das habe ich nicht verstanden was Du wo gemacht hast. Du hast wo MQTT enabled? Was meinst Du mit LoraWAN-Server? Chirpstack -> den Application Server?
Ist unter /etc/chirpstack-application-server/chirpstack-application-server.toml die mqtt integration richtig konfiguriert? Also Du musst zusätzlich zu der IP Adresse (oder localhost) auch noch den MQTT port eintragen, und auch einen User und Passwort, falls das in deinem mqtt server auch eingerichtet ist (also wenn Du keinen anonymous Verbindungen zulässt)
Ansonsten würde ich immer erstmal mit einem MQTT Explorer fuer Windows oder Mac schauen, was an traffic gesendet/empfangen wird.
@Jamo:
Vielen Dank für die Hilfe, damit komme ich dann schon mal weiter. Bzgl. MQTT habe ich zwei Dinge gemacht:
- in FHEM habe ich den MQTT2_SERVER angelegt und
- in der KOnfiguration für das Gateway habe ich auch MQTT freigeschalten (Server udn Port sind hinterlegt).
In Chirpstack habe ich noch nichts bzgl. MQTT gemacht, das werde ich dann gleich mal erledigen....
Hallo Rudi rz259,
falls Du im Gateway MQTT konfigurierst (Methode 1 aus thread #7 oben), musst Du in Chirpstack nicht noch zusätzlich die MQTT integration konfigurieren (Methode 2 aus thread #7 oben). Entweder oder. Das wird zwar funktionieren, damit bekommst du dann alle Daten doppelt (einmal RAW aus dem Gateway, einmal dekodiertes Json aus dem Chirpstack application server).
Hallo Jamo,
momentan habe ich eher ein ganz anderes Problem, ich kriege nämlich überhaupt keine Daten per MQTT. Ich habe in Chirpstack den Javascript codec eingetragen, das funktioniert ganz gut, ich sehe in Chirpstack die letzten Events und die enthalten auch die Temperatur und die Feuchtigkeit - soweit so
gut.
Allerdings kriege ich keine Daten über MQTT - an der Chirpstack-Konfiguration bzgl. MQTT habe ich nichts gemacht, das ist alles noch auf den Default-Einstellungen. Ich habe mich dann mit mosquitto_sub auf dem betreffenden Raspi connected und da kommen nur PINGREQ und PINGRESP events, bzw. wenn ich das auf die konkrete App (hae ich auch FHEM genannt, das macht ja Sinn;-)) einschränke, dann kommt gar nichts an.
Muss man in Chirpstack irgendwas eingestellen, damit diese Events per MQTT weitergeleitet werden? Oder passiert das automatisch? Ich habe zuerst gedacht, das liegt evtl. daran, dass ich Chirpstack in einem Docker-Container laufen habe, aber die Events beim Connect und Subscribe kann ich sehen, wenn ich alle Topics abonniere. Aber von meinem Device kommen keine Events, daher frage ich mich, ob ich da noch irgendwas freischalten muss.
Mit Zertifikaten will ich momentan noch nicht arbeiten, das verkompliziert die Sache ja noch zusätzlich - das würde ich erst dann machen, wenn ich schon mal Daten per MQTT empfangen habe.
Und im Forum von Chirpstack komme ich auch irgendwie nicht weiter - das Ding kann sehr viel, aber man braucht eben auch erst mal Erfahrung
Update: Ich habe gerade nochmal die chirpstack.toml geändert (ich habe ein template für die events und die commands eingetragen) und beim Neustart in der console gesehen, dass jetzt Events publiziert werden - vielleicht war das ja vorher auch schon der Fall und ich habe es nicht gesehen. Aber jetzt habe ich den Logeintrag gesehen und damit sollte dann auch der mqtt-Client das Topic erhalten haben - blöderweise hatte ich gerade mqttclient_sub nicht laufen, jetzt muss ich wieder 20 Minuten warten;-(
Gerade gewartet und es ist wieder nichts gekommen. Im Log wird angezeigt, dass das Event veröffentlicht wird, aber bei meinem mosquitt_sub kommt nichts an...
Aboniiert habe ich das Thema mit folgendem Befehl:
mosquitto_sub -t "application/fc92810c-6cd2-46d4-b85e-b3dd90b54a4f/device/+/event/up" -v
Kann es sein, dass das Kommando einen Fehler enthält?
Allerdings kommt auch in FHEM nix an - irgendwo mache ich da wahrscheinlich einen blöden Fehler, aber Chirpstack scheint das Event korrekt zu veröffentlichen.... da müsste ich es doch zumindest auf dem Raspi mit Chirpstack sehen können?
Merkwürdig....
Hallo Rudi,
Ist unter /etc/chirpstack-application-server/chirpstack-application-server.toml die mqtt integration richtig konfiguriert?
Und in Chirpstack eine Application z.B "FHEM" angelegt, und dort dann auch dort die MQTT integration hinzugefügt?
Was steht in der nrClients Reading von MQTT2_SERVER?
Zitat von: Jamo am 20 Dezember 2024, 14:40:40Hallo Rudi,
Ist unter /etc/chirpstack-application-server/chirpstack-application-server.toml die mqtt integration richtig konfiguriert?
Und in Chirpstack eine Application z.B "FHEM" angelegt, und dort dann auch dort die MQTT integration hinzugefügt?
Hallo Jamo,
so ein Verzeichnis gibt es bei mir leider gar nicht. Ich nutze ja docker und da gibt es nur das Verzeichnis chirpstack. Dort gibt es auch nur die Datei "chirpstack.toml" und zumindest darin ist die MQTT-Integration vorhanden.
In Chirpstack selbst habe ich die Applikation FHEM angelegt. Im Reiter "Integrations" sehe ich auch MQTT, allerdings kann ich dort nichts einstellen oder ansehen. Die einzige Möglichkeit hier, ist ein Zertifikat zu holen.
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....
Zitat von: rz259 am 22 Dezember 2024, 10:12:21Zitat 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.
Zitat von: Beta-User am 22 Dezember 2024, 10:53:26Zitat von: rz259 am 22 Dezember 2024, 10:12:21Zitat 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.
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.
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.
Zitat von: rudolfkoenig am 23 Dezember 2024, 08:55:46ZitatIch 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....
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.
Zitat von: Beta-User am 25 Dezember 2024, 15:48:24Zitat 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;-)
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
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.
@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
Zitat von: Beta-User am 26 Dezember 2024, 08:26:14Zitat 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
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?
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...
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
Zitat von: Beta-User am 27 Dezember 2024, 18:28:49PS: 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...
Ja und nein - ich wusste schon, dass das Thema komplex ist, habe aber nicht gedacht, dass es so schwierig werden würde. Auf der anderen Seite lerne ich viel dabei - und das ist immer gut.
Es ist auch nicht so, dass ich nur Innenraumsensoren brauche - ich habe zwei Außensensoren und es kommt noch ein dritter für das Tomatenhaus hinzu - und selbst die Innenraumsensoren sind über mehrere Stockwerke verstreut. Ich glaube nicht, dass das über Bluetooth so ohne Weiteres abbildbar ist - da bräauchte ich dann wahrscheinlich wieder irgendwelche Repeater oder mehrere Gateways...
De eine Innensensor ist nur der Anfang - von daher ist die Entscheidung für LoraWAN immer noch ok, aber es wäre schön, wenn ich die Probleme auch mal lösen könnte;-)
Hallo Enno,
das ist mal ein guter Hinweis, aber leider lande ich bei dann bei der Login-Seite für den TTN-Stack.
Was hast du denn unter dem Menüpunkt LoraWAN eingestellt? Semtech UDP (das war bei mir der Default) oder Basic Station? Und welche Einstellungen hast du dort vorgenommen?
Falls Semtech UDP:
- was hast du bei Primary LoRaWAN-Server ausgewählt?
- und was bei Secondary LoRaWAN-Server?
- Und welche Server-Adressen hast du da verwendet?
Falls Basic Station:
- welchen Service Provider hast du gewählt?
- Und ggf. welche URI hast du eingegeben?
Ich habe schon einige EInstellungen bei Semtech UDP für den Primary und den Secondary LoraWAN-Seer ausprobiert, aber ich komme immer wieder nur auf den Login von TTN
Moin Rudi,
Ich habe bei Semtech UDP Primary LoRaWAN-Server: Local-Host/Build-in-Server auf Port 1700 und 1700
Secondary LoRaWAN Server ist "disabled". Basic Station ist nicht aktiv. Steht Amazon drin, wird aber nicht genutzt. Forwarder ist keine "enabled".
Dann bin ich mal gespannt...
Gruss
Enno
Kann es sein, dass die neue Version nicht mehr den Chirpstack an Bord hat, sondern den TTN-Stack?
Ich werde mal den TTN-Stack auf Port 8080 ausprobieren, viel schlimmer kann es ja nicht werden;-)
Ich habe genau die gleiche Firmware und Pakete die du oben aufgelistet hast. Hast du mal Local-Host/Build-in-Server eingestellt und die Kiste neu gestartet?
Ja, habe ich gemacht, genau die gleiche Einstellung wie du und Reboot gemacht - ändert aber nix, ich lande trotzdem auf einem lokalen TTN-Stack;-)
Dort habe ich schon mal das Gateway angemeldet, das hat ohne Probleme geklappt. Jetzt muss ich nur noch meinen Sensor pairen, da bin ich mir noch nicht sicher wie das geht. Aktuell kriege ich noch keine Verbindung von Gateway und Sensor zustande - aber das kriege ich auch noch hin;-)
Update : Ein Drücken des Reset-Knopfs am Device hat schon mal dazu geführt, dass das Gateway das Device erkannt hat, aber dann ist nichts weiter passiert, es kommen keine Daten und keine weitere Aktivität. Morgen schaue ich dann weiter nach der Ursache. Aber ich habe das Gefühl, dass ich auf dem richtigen Weg bin.
So, ich bin jetzt schon mal soweit, dass ich
- die Application und ein Device (inkl. JSON-Formatter) im TTN-Stack angelegt habe
- die Aktivierung hat auch funktioniert
- die Daten werden im TTN-Stack angezeigt
- ich habe einen API-Key für MQTT angelegt
- per mosquitto_sub habe ich mich auf das entsprechende Topic subscribed und habe auch Daten empfangen
Jetzt muss ich das Ganze "nur" noch nach FHEM kriegen, so dass die Devices angelegt und per MQTT empfangen werden können