set 2026
Gateway da SMS a Telegram
Un Raspberry Pi con un modem 3G che inoltra su Telegram ogni SMS in arrivo
- Automazione
- Home lab
- Durata
- 1 mese
- Ruolo
- Progetto interamente mio; configurato in sessioni di Claude Code
Panoramica
Un Raspberry Pi con un modem 3G USB che inoltra ogni SMS in arrivo a un canale Telegram. Gira come servizio che si ripara da solo ed è raggiungibile da ovunque tramite Tailscale, così per leggere i messaggi non serve più il dispositivo che contiene la SIM.
Strumenti
- Raspberry Pi
- Python
- systemd
- Telegram
- Tailscale
I limiti del modem
Gli SMS che arrivano su una SIM si possono leggere solo sul dispositivo che la contiene. Il modem Huawei E303 in modalità HiLink offre solo un’API web, senza modalità seriale né USSD con questo firmware. Una volta collegato, si prendeva la route predefinita e il DNS del Pi, e dopo un reinserimento della SIM perdeva la scheda fino al riavvio.
Il servizio
Il Pi gira su Debian 13 con SSH a chiave tramite Tailscale. Un servizio Python interroga l’API HiLink del modem ogni 10 secondi, pubblica ogni nuovo SMS su un canale Telegram tramite un bot, lo segna come letto e tiene un file di stato perché nulla venga inviato due volte. Aggira inoltre il bug di codifica UTF-8/CESU-8 del modem, così il testo georgiano e le emoji arrivano intatti.
Riparazione automatica
Quando il modem segnala una SIM persa, lo script lo riavvia tramite l’API del modem stesso, con un intervallo di attesa di 15 minuti. NetworkManager è configurato in modo che il modem non diventi mai la route predefinita o il DNS, e systemd riavvia il servizio ogni volta che si ferma.
Risultato
Testato end-to-end il 4 settembre 2026. Dopo un reinserimento della SIM non serve più un riavvio manuale.