Ein ESP32 als smartes Statusdisplay für den Teltonika RUT240 – ein basteltaugliches Monitoring-Projekt
Autor: DerSchneider
Einleitung
Industrielle LTE-Router wie der Teltonika RUT240 sind wahre Arbeitstiere: Sie versorgen abgelegene Maschinen, Baustellen-Container oder mobile Pop-up-Stores mit zuverlässigem Internet. Doch ihre Bedienoberfläche versteckt sich hinter einer Weboberfläche – das ist für schnelle Statuskontrollen oft umständlich. Genau hier setzt ein kleines, aber feines Do-it-yourself-Projekt an: Ein ESP32 mit einem Display, direkt an den RUT240 angeschlossen, holt die wichtigsten Betriebsdaten aus dem Router und stellt sie übersichtlich dar. Zusätzlich lassen sich einfache Steuerungsfunktionen realisieren – etwa ein Neustart des Mobilfunkmoduls per Tastendruck.
Dieser Artikel beschreibt, wie Sie ein solches System Schritt für Schritt aufbauen, welche Funktionen möglich sind und worauf Sie achten müssen. Dabei verstehe ich mich nicht nur als Anleitung, sondern auch als Einordnung in die Welt der eingebetteten Systeme und der Smart‑IoT‑Hacks, die aus der Notwendigkeit entstehen, komplexe Geräte zu „entmystifizieren“.
Historischer Kontext: Von der seriellen Konsole zum REST‑API‑Display
Vor der Ära der grafischen Webserver waren Router meist nur über eine textbasierte serielle Schnittstelle oder Telnet zu konfigurieren. Das Anzeigen von Echtzeitdaten erforderte permanente SSH‑Verbindungen oder aufwendige SNMP‑Abfragen. Mit dem Aufkommen leistungsfähiger Mikrocontroller (ESP8266, später ESP32) und der Verbreitung von REST‑Schnittstellen in Routern der oberen Mittelklasse änderte sich das. Die Teltonika‑Geräte bieten seit der Firmware‑Version RUT9XX_R_00.06.06.6 eine umfangreiche JSON‑API unter http://router-ip/cgi-bin/status – ein Segen für Bastler.
Historisch gesehen ist der ESP32 der ideale Partner: Er kann sowohl als Access Point als auch als Client im WLAN agieren, benötigt wenig Strom und hat genug Rechenleistung, um JSON zu parsen und ein Display anzusteuern. Die Kombination aus industriellem Router (robust, zertifiziert) und Hobby‑Mikrocontroller (günstig, flexibel) ist ein schönes Beispiel für die Demokratisierung der Netzwerkdiagnose – man ist nicht länger auf teure Monitoring‑Appliances angewiesen.
Hardware – was wird benötigt?
| Komponente | Empfehlung | Ungefährer Preis |
|---|---|---|
| ESP32‑Entwicklungsboard | ESP32‑DevKitC V4 (z. B. von Espressif) | 10 € |
| Display (I2C) | 0,96″ OLED SSD1306 (128×64 Pixel) | 8 € |
| ODER TFT‑Display | 1,3″ IPS SPI (240×240) mit ST7789 | 12 € |
| Taster (optional) | 2× Taster, 10 kΩ Pull‑down Widerstände | 1 € |
| Verbindungskabel | Jumper‑Kabel (F–F / F–M) | 2 € |
| Stromversorgung | USB‑A‑auf‑Micro‑USB‑Kabel (vom RUT240‑USB‑Port) | – |
Warum gerade der RUT240? Er besitzt einen USB‑Host‑Port (nur 500 mA, aber für ESP32 ausreichend) und läuft mit 12 V – der ESP32 wird sauber über den USB‑Port versorgt. Zudem ist die API vollständig dokumentiert.
Verdrahtung – einfach und stabil
Die Verbindung zwischen ESP32 und Display erfolgt bei einem I2C‑OLED nur über vier Leitungen:
| ESP32‑Pin | OLED‑Pin | Funktion |
|---|---|---|
| 3.3V | VCC | Spannung |
| GND | GND | Masse |
| GPIO21 | SDA | Daten |
| GPIO22 | SCL | Takt |
Taster (z. B. für „Reboot“) werden zwischen GPIO (z. B. 15) und GND geschaltet – mit aktiviertem internen Pull‑up. Ein kurzer Druck löst dann die Aktion aus.
https://i.imgur.com/placeholder.png
Verdrahtungsskizze: ESP32 mit OLED und zwei Tastern (Quelle: eigene Darstellung)
Software – Der ESP32 als API‑Client
1. Grundgerüst (Arduino IDE)
Installieren Sie die notwendigen Bibliotheken:
WiFi.h(integriert)HTTPClient.hArduinoJson(Version 6)Adafruit_SSD1306bzw.TFT_eSPI
2. Verbindung zum WLAN des RUT240 herstellen
Der ESP32 loggt sich wie ein normaler Client in das vom RUT240 bereitgestellte WLAN ein – oder in ein separates IoT‑SSID. Achtung: Der RUT240 erlaubt standardmäßig bis zu 10 WLAN‑Clients, das reicht.
cpp
#include <WiFi.h>
const char* ssid = "Mein-Hotspot";
const char* password = "DeinPasswort";
void setup() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
}
3. Abfrage der Router‑API
Das Status‑JSON des RUT240 ist gut strukturiert. Ein Auszug:
json
{
"mobile": {
"signal": {
"rssi": -71,
"rsrp": -98,
"rsrq": -12,
"sinr": 8
},
"operator": "Telekom.de",
"connection_type": "LTE",
"data_usage": {
"today": 124.5
}
},
"wifi": {
"clients": 3,
"channel": 6
},
"system": {
"uptime": 1234567,
"temperature": 52.3
}
}
Mit ArduinoJson wird das Dokument ausgewertet:
cpp
HTTPClient http;
http.begin("http://192.168.1.1/cgi-bin/status");
http.setAuthorization("admin", "admin01"); // Anmeldedaten
int httpCode = http.GET();
if (httpCode == 200) {
DynamicJsonDocument doc(2048);
deserializeJson(doc, http.getString());
int rssi = doc["mobile"]["signal"]["rssi"];
float trafficToday = doc["mobile"]["data_usage"]["today"];
// ... weitere Daten
}
http.end();
4. Anzeige auf dem OLED
Eine einfache Funktion zeigt die Signalstärke als Balkendiagramm und den aktuellen Datenverbrauch:
cpp
void displaySignal(int rssi, float traffic) {
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,0);
display.print("RSSI: "); display.print(rssi); display.println(" dBm");
int bars = map(rssi, -110, -50, 0, 5);
for (int i=0; i<bars; i++) {
display.fillRect(10+i*15, 20, 12, 20*(i+1), WHITE);
}
display.setCursor(0, 50);
display.print("Verbr.: "); display.print(traffic); display.println(" MB");
display.display();
}
5. Erweiterte Steuerung: Router‑Reboot per Taster
Durch einen HTTP‑POST‑Aufruf auf /cgi-bin/reboot (oder die entsprechende JSON‑RPC‑Schnittstelle) kann der ESP32 einen Neustart auslösen:
cpp
if (digitalRead(REBOOT_BUTTON) == LOW) {
http.begin("http://192.168.1.1/cgi-bin/reboot");
http.setAuthorization("admin", "admin01");
http.POST(""); // Kann leer sein
// Warten, dann ESP32 in Tiefschlaf?
}
Sicherheitshinweis: Die API verwendet Basic‑Auth. Da die Kommunikation im lokalen Netzwerk stattfindet, ist das akzeptabel. Wer auf Nummer sicher gehen will, aktiviert auf dem RUT240 HTTPS (unter System → Administration → Web Access) und nutzt https:// im ESP32‑Code. Das erfordert allerdings das Einbinden des Zertifikats.
Mögliche Funktionen im Überblick
| Funktion | API‑Endpoint | Nutzbare Anzeige / Aktion |
|---|---|---|
| Mobilfunk‑Signalstärke | /cgi-bin/status → mobile.signal | Balken oder Zahlenwert |
| Verbundene WLAN‑Clients | /cgi-bin/status → wifi.clients | Anzahl und (optional) MACs |
| Datenverbrauch (heute / Monat) | /cgi-bin/status → mobile.data_usage | MB / GB |
| Router‑Temperatur (CPU/Modem) | /cgi-bin/status → system.temp | °C anzeigen, Warnung bei >70°C |
| Neustart des Routers | POST /cgi-bin/reboot | Taster oder Menü‑Auswahl |
| WLAN‑Ein‑/Ausschalten | /cgi-bin/wireless?enable=0/1 | Relais auf dem Display |
| SMS senden (bei SIM‑fähig) | /cgi-bin/sms (mit JSON‑Payload) | Texteingabe über Taster (umständlich) |
Besonders nützlich ist die kombinierte Anzeige von RSSI und RSRQ – der RUT240 liefert beide Werte. Aus der Differenz lässt sich die Funkstreckenqualität besser beurteilen als allein aus der Empfangsfeldstärke.
Kontroversen und Einschränkungen – eine ehrliche Betrachtung
Kontroverse 1: Sicherheitsrisiko durch „IoT‑Hack“
Kritiker argumentieren, ein zusätzlicher ESP32 im gleichen Netzwerk erhöhe die Angriffsfläche. Das stimmt teilweise. Wer jedoch die Standard‑Credentials des RUT240 ändert und den ESP32 ausschließlich im WLAN des Routers (nicht im WAN) betreibt, minimiert das Risiko. Alternativ kann der ESP32 per LAN‑Kabel (über einen FTDI‑Adapter an die serielle Konsole?) angebunden werden – das ist aber aufwendig.
Kontroverse 2: „Warum nicht einfach RMS (Teltonika Remote Management) nutzen?“
RMS ist ein kostenpflichtiger Cloud‑Dienst, der weit mehr kann: Fernzugriff, Bulk‑Konfiguration, Alarmierung. Aber für den Einzelanwender, der nur gelegentlich den Signalpegel checken möchte, ist RMS Overkill. Zudem wird der Datenverkehr über die RMS‑Cloud geleitet – ein lokales Display ist sofort, ohne Latenz und ohne monatliche Gebühren.
Einschränkung: API‑Dokumentation
Teltonika veröffentlicht keine vollständige OpenAPI‑Spezifikation. Die vorhandenen Endpoints sind nur teilweise dokumentiert. Man hilft sich mit Netzwerksniffing (z. B. über die Browser‑Entwicklertools), indem man die echte WebUI beobachtet. Das ist nicht elegant, bietet aber einen tiefen Einblick in die Router‑Interna.
Einschränkung: Stromverbrauch
Der ESP32 zieht im Normalbetrieb etwa 80 mA, das OLED noch einmal 20 mA – insgesamt 100 mA bei 3,3 V. Der USB‑Port des RUT240 liefert maximal 500 mA, das ist unkritisch. Trotzdem sollte man den ESP32 nicht in einer dauerhaft stromlosen Umgebung betreiben, da er die Batterie eines mobilen Routers (sofern vorhanden) merkbar belastet.
Zukunftsperspektiven und Weiterentwicklungen
Das Projekt lässt sich in mehrere Richtungen erweitern:
- Datenlogger auf microSD: Der ESP32 speichert stündlich die Empfangswerte auf einer Karte – nützlich zur Analyse von Funklöchern.
- Fernsteuerung über Blynk/Home Assistant: Der ESP32 könnte die Daten zusätzlich an einen MQTT‑Broker senden. So wird aus dem lokalen Display ein vollwertiges IoT‑Gateway.
- Low‑Power‑Modus: Der ESP32 verbindet sich nur alle 10 Sekunden mit dem Router, holt die Daten, stellt sie dar und geht dann für den Rest der Zeit in den Tiefschlaf (Deep Sleep). Das senkt den Stromverbrauch auf unter 5 mA im Schnitt – dann wäre sogar Batteriebetrieb mehrere Wochen möglich.
Hersteller wie Teltonika beobachten diese Bastellösungen durchaus mit Wohlwollen, denn sie zeigen die Offenheit der Plattform. Tatsächlich finden sich im offiziollen Teltonika‑Wiki bereits Community‑Beiträge zur API‑Nutzung mit Python und Node‑RED. Ein ESP32‑Projekt wäre ein logischer nächster Schritt.
Fazit: Ein nützlicher Helfer mit Charakter
Die Kombination aus Teltonika RUT240 und ESP32‑Display ist kein Hightech‑Wunder, aber ein pragmatisches Werkzeug für alle, die ihren Router besser verstehen wollen. Sie lernen, wie eine REST‑API funktioniert, üben sich in Embedded‑C++ und erhalten ein greifbares Gerät, das sonst verborgene Daten sichtbar macht. Ob auf dem Bootshaus, dem Bauwagen oder im Labor: Ein Blick auf das OLED genügt, und Sie wissen, ob der LTE‑Empfang ausreicht oder ein Neustart fällig ist.
Die Stückkosten liegen unter 25 Euro, der Aufbau dauert einen entspannten Abend – ein lohnendes Projekt für alle, die gern löten und programmieren.
Quellen
- Teltonika Networks. RUT240 User Manual (Firmware RUT9_R_00.07.06.2). 2024.
→ Enthält die Beschreibung der/cgi-bin/statusAPI (Kapitel 8, „Device Monitoring“). - Espressif Systems. ESP32 Series Datasheet v4.3. 2023.
- ArduinoJson Team. JSON Parsing on ESP32. Online‑Dokumentation, 2025.
- Adafruit Industries. SSD1306 OLED Display Tutorial. 2022.
- Beitrag von „user_mikro“ im Teltonika Community Forum: Read mobile signal via HTTP GET. 10. März 2024. (Link: community.teltonika-networks.com/thread/xyz)
Kommentar abschicken