wrz 2026
Bramka SMS do Telegrama
Raspberry Pi z modemem 3G, który przekazuje każdy przychodzący SMS do Telegrama
- Automatyzacja
- Domowe laboratorium
- Czas trwania
- 1 miesiąc
- Rola
- Projekt własny; konfiguracja w sesjach Claude Code
Przegląd
Raspberry Pi z modemem 3G na USB, który przekazuje każdy przychodzący SMS na kanał w Telegramie. Działa jako samonaprawiająca się usługa i jest dostępny z dowolnego miejsca przez Tailscale, więc do czytania wiadomości nie jest już potrzebne urządzenie z kartą SIM.
Narzędzia
- Raspberry Pi
- Python
- systemd
- Telegram
- Tailscale
Ograniczenia modemu
SMS-y przychodzące na kartę SIM można przeczytać tylko na urządzeniu, w którym znajduje się karta. Modem Huawei E303 w trybie HiLink udostępnia jedynie API webowe, bez trybu szeregowego i bez USSD w tej wersji firmware’u. Po podłączeniu przejmował domyślną trasę i DNS Raspberry Pi, a po ponownym włożeniu karty SIM tracił ją aż do restartu.
Usługa
Raspberry Pi działa na Debianie 13 z SSH opartym na kluczach przez Tailscale. Usługa w Pythonie co 10 sekund odpytuje API HiLink modemu, publikuje każdy nowy SMS na kanale w Telegramie przez bota, oznacza go jako przeczytany i prowadzi plik stanu, więc nic nie zostaje wysłane dwa razy. Obchodzi też błąd kodowania UTF-8/CESU-8 w modemie, dzięki czemu gruziński tekst i emoji docierają w nienaruszonym stanie.
Samonaprawianie
Gdy modem zgłasza utratę karty SIM, skrypt restartuje go przez własne API modemu, z 15-minutową przerwą między próbami. NetworkManager jest skonfigurowany tak, by modem nigdy nie stawał się domyślną trasą ani DNS, a systemd restartuje usługę za każdym razem, gdy się zatrzyma.
Rezultat
Przetestowano od początku do końca 4 września 2026 r. Po ponownym włożeniu karty SIM nie wymaga już ręcznego restartu.