H. Högl, 2026-05-01, Hubert.Hoegl@tha.de
Im Herbst 2025 kam der Wunsch auf, die Temperatur in der Kirche von Martinskirchen aus der Ferne zu überwachen, da die Heizung gelegentlich nicht funktioniert. Der Heizvorgang dauert mehrere Stunden, er wird meist am Tag vor dem Event über eine Zeitsteuerung gestartet.
Es standen zwei Möglichkeiten des Fernzugriffs zur Debatte: LoRaWAN oder NB-IoT. LoRaWAN gibt es in der Gegend nicht, wir hätten an der Stelle des grünen Kreises auf der Karte [2] ein LoRaWAN Gateway aufstellen müssen, die Entfernung zur Kirche (roter Kreis) beträgt knapp einen Kilometer. Vermutlich hätte das sogar geklappt, da es fast Sichtverbindung gibt. Da ich längere Zeit schon mal was mit NB-IoT machen wollte fiel die Wahl jedoch auf diese Alternative.
Zunächst haben wir mit dem NB-IoT Modem “TRM250” von Teltonika begonnen. Bei der SIM Karte für NB-IoT habe ich mich für 1NCE entschieden (sprich “Once”), da diese Karten sehr günstig sind. Für 10 Euro bekommt man eine 10 Jahre lang gültige Karte mit 500 MByte Datenvolumen. Leider bekommt man NB-IoT Karten nur als gewerblicher Nutzer! 1NCE ist verbandelt mit der Telekom. Später bin ich zu dem Waveshare SIM7020 Modem gewechselt, weil es sich ideal für die Ansteuerung durch eine Raspberry Pico eignet. Dieses Modem kostet ca. 20 Euro, der Pico ca. 5 Euro, so dass die Hardware insgesamt sehr preiswert ist.
Mit der SIM Karte vo 1NCE bekommt man auch den Zugang zum
1NCE-Portal. Dort kann man die gekauften Karten verwalten und es wird
auch beschrieben, wie man die eigene Anwendung an die 1NCE Infrastruktur
über OpenPVN koppelt. Es werden verschiedene Protokolle unterstützt,
z.B. UDP, TCP, MQTT, HTTP und weitere, ich habe mich für das Sparsamste
(UDP) entschieden. Wenn man damit ein Byte an Nutzdaten schickt, dann
ist der Overhead ca. 30 Byte. Im wesentlichen habe ich eine kleine Flask
Web-Anwendung geschrieben die über UDP Daten empfangen und verschicken
kann. Die Anwendung läuft zusammen mit dem OpenVPN Client auf einem
virtuellen Server mit fester IP.
Die Messwerte sieht man in [5] (ein Plot mit dem Bokeh Framework https://bokeh.org), ca. alle 10
Minuten erscheint ein neuer Temperaturwert.
Schwierigkeiten, die aufgetreten sind
Die preiswerten NB-IoT SIM Karten sind meist mit einem einzelnen Mobilfunkanbieter verbunden, wie z.B. der Telekom bei 1NCE Karten. In der Stadt mit vielen Mobilfunkmasten ist das in der Regel kein Problem. Tests bei mir zu Hause in Stadtbergen bei Augsburg liefen immer ohne Probleme.
Auf dem Land sieht es hingegen anders aus. Wenn Masten von anderen Anbietern näher sind, dann bricht die Verbindung regelmässig ab, wird mit dem näher liegenden Masten wieder aufgebaut, z.B. O2 oder Telefonica, dann bricht diese auch wieder ab, Telekom wird wieder aufgebaut und so weiter. Bei den Tests auf dem Land ist dies meist alle paar Stunden vorgekommen. In der Not habe ich eine Anfrage bei 1NCE gestellt, was man da tun könne, aber die Antwort ergab, dass man höchstens noch eine UHF Richtantenne verwenden könnte, die direkt auf den Masten der Telekom zeigt. Das haben wird gemacht und tatsächlich war der Empfang damit deutlich besser, aber die Abbrüche gab es immer noch. In der Karte [2] habe ich alle Masten in der Nähe eingezeichnet. Tatsächlich ist der Telekom Masten am weitesten entfernt.
Wie findet man eigentlich heraus, welche Masten in der Umgebung sind? Auf dem Land kann das durchaus auch noch in ein paar Kilometer Entfernung sein. Wir haben im wesentlichen drei Möglichkeiten ausgemacht: 1. selber schauen wo ein Masten ist, 2. OpenCelliD [3] und 3. die Karte der Bundesnetzagentur [7]. Auf keiner Quelle im Netz konnte ich auf Anhieb die Masten aller Anbieter finden, im Gegenteil, es war eher wie ein Puzzle das langsam zum gesamten Bild wird. Aus den verschiedenen Quellen habe ich dann die Karte [2] gemacht.
Neben der Richtantenne war die zweite wesentliche Zutat die Software
zur Ansteuerung des Modems (also im Pico) so fehlertolerant wie möglich
zu machen, so dass sie aus jedem Fehlerzustand wieder einen Ausweg
findet. Ausserdem haben wir einen Watchdog Timer eingebaut, der das
Programm zurücksetzt, falls sich die Kommunikation irgendwo komplett
aufhängt.
Nach ein paar Wochen hatten wir die Sache so im Griff, dass die NB-IoT
Kommunikation gut funktioniert hat und die gelegentlichen Abbrüche nicht
mehr aufgefallen sind.
Auf der Messe “Embedded World 2026” im März habe ich einige Anbieter von NB-IoT SIM Karten gefragt, was man denn gegen das Problem mit dem periodischen Verbindungsabbruch machen könnte. Die Antwort war eigentlich immer, dass man zu SIM Karten wechseln müsste, die mit mehreren Anbietern Verträge haben, was die Karten wesentlich teurer macht. Das geht bis zu Abo-Modellen die 10 Euro und mehr im Monat kosten können. Das ist der Spaß aber nicht Wert, finde ich.
Da das ganze NB-IoT Experiment letztendlich doch gut funktioniert hat, haben wir nun im März aus dem Prototyp eine Platine gemacht, die ich im Sommer in Betrieb nehmen werde. Die Platine enthält auch noch ein paar Relais Ausgänge, so dass man über NB-IoT auch Aktoren oder z.B. die Beleuchtung steuern kann. Wenn der nächste Winter kommt soll alles wieder betriebsbereit sein.
Todo:
Bilder: Martinskirchen | Prototyp | Versuchsaufbau im Dachstuhl | UHF Richtantenne | Zuleitung zum Temperatursensor DS18B20 | Platine
Der 1-Wire Temperatursensor DS18B20 hängt an einem Kabel unter der Gewölbedecke.
[1] Openstreetmap
Martinskirchen
[2] Mobilfunkmasten um Martinskirchen
(Handzeichnung)
[3] OpenCelliD
[4] Waveshare
SIM7020 Modem
[5] Messwerte
(5.1.26-30.03.26)
[6] 1NCE
[7] Bundesnetzagentur