Hi zusammen,
da es wohl keinen richtigen Bereich für das Thema gibt, packe ich es einfach mal hier rein. Das soll eine Mischung aus Projektvorstellung, allgemeiner Austausch und Hardware- & Softwareinfos werden.
Es geht um das Thema LoRaWAN (wer nicht weiß was das ist, dazu hier und hier Infos dazu). Ich hatte schon 2022 ein kleinwenig damit zutun und Anfang 2023 habe ich mir dann ein eigenes Gateway + Antenne gekauft und beides provisorisch bei meinem Arbeitgeber aufgehangen. So weit so gut. Das war bisher der einfachste Teil, aber wirklich spektakulärer wird es nicht. Insgesamt ist das Thema recht trocken. Das wichtigste ist ein guter Standort für das Gateway, und wenn der Rest erst mal läuft, muss man nicht mehr wirklich dran.
Da ich ein Fan davon bin bei Projekten grundsätzlich auch von Minuten 1 an einen praktischen Nutzen zu haben, kamen noch 3 Sensoren dazu, die die Luftfeuchtigkeit und Temperatur in den 3 Serverräumen meines AG zu messen. Wäre ja irgendwie auch nicht wirklich Clever ein Gateway zu haben, aber keine brauchbaren Daten.
Los ging es im März 2023. Da habe ich das Gateway bestellt und wie bereits gesagt, provisorisch im 3. Stock eines Bürogebäudes aufgehangen. Der Standort ist aber alles andere als optimal. Gateway sowie Antenne hängen innen. So komme ich mit der Reichweite nur bis ins Erdgeschoss. Der nächste Sensor hängt Luftlinie ca. 1km entfernt und der dritte Sensor hängt Luftlinie ca. 2km weit vom Gateway weg. Normalerweise sollte das kein Problem sein, da die Antenne aber innen hängt, geht viel von der Reichweite verloren. Im Schnitt sollte diese bei ca. 10km liegen und nicht nur wenige Meter. Die Problematik mit der Reichweite fiel mir im Laufe des Jahres auf, da zwei Sensoren erst in der letzten Jahreshälfte dazukamen.
Grundsätzlich war klar, dass ein anderer Standort her musste. Diesen hatte ich auch bereits auf dem gleichen Gelände, aber bevor ich mich darum kümmerte wollte ich zuerst schauen wie es allgemein um die weitere Technik und natürlich auch um die Software steht. Wenn das alles zu kompliziert sein sollte, brauche ich auch nicht woanders hinhängen, dann hätte sich das Thema an der Stelle schon früh wieder erledigt.
Mir war von Anfang an klar, dass ich das Gateway an das The Things Network (TTN) anbinden werde. Das war auch recht einfach und schnell gemacht. Hier bin ich aber auf ein neues Problem gestoßen. Im besten Fall organisiert man sich im TTN in Communities um Ressourcen zu organisieren, die Abdeckung zu erhöhen und vielleicht auch die Zuverlässigkeit zu verbessern. Der Beitritt einer Community ist nicht notwendig, gehörte für mich aber dazu. So weit zur Theorie. In meiner Umgebung gibt es zwei Communities. Die eine mit 14 Gateways die sich in und um die nächst größere Stadt sammeln, und die andere mit derzeit 5 Gateways die sich aber ordentlich verteilen. Das würde ich nicht als Netzwerk im Sinne meiner aufgelisteten Vorteile sehen.
Über das TTN selbst habe ich versucht mit den Communities in Kontakt zu treten. Das hatte aber nicht funktioniert, bis heute habe ich keine Antwort bekommen. Insgesamt blieb ich dann 3 Monate solo im TTN. Ich kann heute nicht mehr genau sagen was mich veranlasst hat das TTN wieder zu verlassen, aber es waren z.B. die Beschränkungen des TTN selbst und ich meine dass ich Probleme hatte die Daten aus dem TTN herauszubekommen. Aber wie gesagt, da bin ich mir heute nicht mehr ganz sicher.
Der nächste Schritt war dann, das TTN wieder zu verlassen und meinen eigenen, privaten Netzwerkserver zu betreiben. Hauptsächlich auch, damit ich das mal gemacht und gesehen habe. Der eigene Netzwerkserver sollte erst mal ein Provisorium zum testen sein bis ich Antwort der Communities erhalte. Aber wie sagt man? "Nothing is more permanent than a temporary solution." Anfang Juni 2023 habe ich dann meinen Chirpstack Server installiert, konfiguriert und das Gateway verbunden. Insgesamt hat das so einfach funktioniert, dass ich glaubte, was vergessen zu haben. Ja und nein. Das Gateway hat sich verbunden, die Sensoren wurden angezeigt und haben Daten geliefert. Allerdings nur einmal die Stunde.
Das war mir für eine Temperaturüberwachung zu wenig. Also musste ich den Sensoren beibringen Daten alle 10 - 15 Minuten zu senden. Hierbei muss man aufpassen, da die Frequenzen einfach ausgedrückt "Fair Use" sind. Theoretisch könnte man die Aktualisierung auf eine Minute stellen, aber so kann man andere Sensoren im Netzwerk auch blockieren wenn das jeder macht. Leider finde ich diese Info nicht mehr, aber es sollte nicht weniger als 5 Minuten sein. Hier stand ich kurz auf dem Schlauch wie das zu machen ist, aber dafür sendet man einfach die HEX Daten über Chirpstack an den Sensor. Den Wert umzurechnen war nicht einfach, aber das Handbuch zum Sensor und eine Googlesuche haben geholfen.
Sow eit so gut (mal wieder). Ich habe also einen funktionierenden Netzwerkserver der mit dem Gateway verbunden ist und Daten von den Sensoren erhält. Jetzt habe ich aber das gleiche Problem wie im TTN. Wie komme ich an meine Daten und kann diese sinnvoll weiterverarbeiten. Auch das war überraschenderweise kein Problem. Was es brauchte war eine ordentlich eingerichtete InfluxDB. Dort dann einen Zugang eingerichtet und über eine Integration in Chirpstack hinzugefügt. Seit dem wurden alle Daten der Sensoren an die InfluxDB weitergeleitet und dort gespeichert.
Grundsätzlich war es das auch schon. Ich habe mich aber dafür entschieden, das ganze über einen Proxy erreichbar zu machen, damit nicht alles blank im Internet steht, was nicht direkt erreichbar sein muss. Das hatte zur Folge, dass ich insgesamt 3 virtuelle Server für das Projekt betreibe.
Server 1 stellt den Proxyserver der über ein privates LAN die Daten an den Chirpstack und die InfluxDB weiterleitet. Der Chirpstack und die InfluxDB sind direkt miteinander über ein privates LAN verbunden. Um das ganze etwas zu vereinfachen, hier die aktuelle Übersicht:
Für die Visualisierung nutze ich Grafana. Der Grafanaserver läuft bei mir auf einem meiner Homeserver. Der Server greift nicht auf die InfluxDB selbst zu, sondern über den Proxyserver mit data.example.com. Das Gateway muss direkt auf den Chirpstackserver zugreifen können, hier habe ich noch keine Möglichkeit gefunden dass das zuverlässig über den Proxy funktioniert. Vor dem Proxy und generell den Server gibt es noch einfaches Firewalling und Hostbeschränkungen sofern es sinnvoll ist. Später möchte ich auch noch die ACL Funktion des Proxy nutzen, aber das hatte bisher auch nicht richtig funktioniert.
Mein Grafana Dashboard sieht so aus:
Aktuell nur ein Sensor. Oben jeweils der letzte gemessene Wert, unten ein Verlauf über den eingestellten Zeitraum. Normalerweise die letzten 6 Stunden. Da das Netzwerk aktuell offline ist, habe ich hier einfach eine Woche aus dem Dezember genommen.
Warum ist das Netzwerk offline? In KW2/2024 oder KW3/2024 möchte ich das Gateway an einem besseren Platz aufhängen. Das wird, sofern alles gut geht, auf einem Containerkran sein. Schön weit oben mit freier Sicht in alle Richtungen. Ich behaupte einfach mal, dass das ein Premiumplatz ist. Wird sich dann später zeigen wird.
Zum Schluss möchte ich dann noch kurz die von mir verwendete Hardware und Software auflisten.
- Cloudserver von Hetzner mit ARM CPU
- Chirpstack, InfluxDB und der Nginx Proxy Manager haben jeweils einen eigenen Server und laufen über Docker (Compose)
- tägliche Backups über die Hetzner Backupfunktion sowie zusätzlich 4x täglich über ein eigenes Script auf einen meiner Homeserver
- Gateway: MikroTik LoRaWAN - wAP LoRa8 kit und Antenne: MikroTik LoRaWAN - Omni Antenne 824-960 MHz)
- Sensoren: Dragino LHT65N-E3 LoRaWAN Temperatur- und Feuchtigkeitssensor
Ganz vergessen... In unregelmäßigen Abständen informiere ich auch auf meiner Seite über das Projekt: https://www.kragt.io/lorawan
Ich würde mich sehr über Feedback, Fragen und allgemein einen Austausch zum Thema freuen.
Vielleicht findet sich ja hier sogar jemand der selbst ein LoRaWAN Netzwerk am laufen hat.