Zum Inhalt springen
Giorgi Eliadze
Projekte: Eigene Projekte

Sep 2026

SMS-zu-Telegram-Gateway

Ein Raspberry Pi mit 3G-Modem, der jede eingehende SMS an Telegram weiterleitet

  • Automatisierung
  • Homelab
Dauer
1 Monat
Rolle
Allein verantwortlich; eingerichtet in Sitzungen mit Claude Code

Überblick

Ein Raspberry Pi mit einem USB-3G-Modem, der jede eingehende SMS an einen Telegram-Kanal weiterleitet. Er läuft als selbstheilender Dienst und ist über Tailscale von überall erreichbar, sodass man zum Lesen der Nachrichten nicht mehr das Gerät mit der SIM-Karte braucht.

Tools

  • Raspberry Pi
  • Python
  • systemd
  • Telegram
  • Tailscale

Die Grenzen des Modems

SMS, die auf einer SIM-Karte eingehen, lassen sich nur auf dem Gerät lesen, in dem sie steckt. Das Modem Huawei E303 im HiLink-Modus bietet nur eine Web-API, ohne seriellen Modus und ohne USSD in dieser Firmware. Eingesteckt übernahm es die Standardroute und das DNS des Pi, und nach dem erneuten Einsetzen der SIM verlor es die Karte, bis es neu gestartet wurde.

Der Dienst

Der Pi läuft mit Debian 13 und schlüsselbasiertem SSH über Tailscale. Ein Python-Dienst fragt alle 10 Sekunden die HiLink-API des Modems ab, postet jede neue SMS über einen Bot in einen Telegram-Kanal, markiert sie als gelesen und führt eine Zustandsdatei, damit nichts doppelt gesendet wird. Außerdem umgeht er den UTF-8/CESU-8-Kodierungsfehler des Modems, sodass georgischer Text und Emojis unversehrt ankommen.

Selbstheilung

Meldet das Modem eine verlorene SIM, startet das Skript es über die modemeigene API neu, mit einer Wartezeit von 15 Minuten. NetworkManager ist so eingestellt, dass das Modem nie zur Standardroute oder zum DNS wird, und systemd startet den Dienst neu, sobald er stoppt.

Ergebnis

Am 4. September 2026 durchgängig getestet. Nach dem erneuten Einsetzen der SIM braucht es keinen manuellen Neustart mehr.

Projekte: Eigene Projekte