Перейти до вмісту
Giorgi Eliadze
Проєкти: Особисті проєкти

вер 2026

Шлюз SMS у Telegram

Raspberry Pi з 3G-модемом, що пересилає кожне вхідне SMS у Telegram

  • Автоматизація
  • Домашня лабораторія
Тривалість
1 місяць
Роль
Єдиний власник; налаштування в сесіях Claude Code

Огляд

Raspberry Pi з USB 3G-модемом, що пересилає кожне вхідне SMS у канал Telegram. Він працює як самовідновлюваний сервіс і доступний звідусіль через Tailscale, тож для читання повідомлень більше не потрібен пристрій із SIM-карткою.

Інструменти

  • Raspberry Pi
  • Python
  • systemd
  • Telegram
  • Tailscale

Обмеження модема

SMS, що надходять на SIM-картку, можна прочитати лише на пристрої, у якому вона стоїть. Модем Huawei E303 у режимі HiLink має лише веб-API, без послідовного режиму й без USSD на цій прошивці. Після підключення він перехоплював у Pi типовий маршрут і DNS, а після повторного вставлення SIM втрачав картку до перезапуску.

Сервіс

Pi працює на Debian 13 з SSH за ключами через Tailscale. Сервіс на Python кожні 10 секунд опитує HiLink API модема, надсилає кожне нове SMS у канал Telegram через бота, позначає його прочитаним і веде файл стану, щоб нічого не надсилалося двічі. Він також обходить ваду кодування UTF-8/CESU-8 у модемі, тож грузинський текст і емодзі доходять без спотворень.

Самовідновлення

Коли модем повідомляє про втрату SIM, скрипт перезапускає його через власний API модема з 15-хвилинною паузою між спробами. NetworkManager налаштовано так, щоб модем ніколи не ставав типовим маршрутом чи DNS, а systemd перезапускає сервіс щоразу, коли той зупиняється.

Результат

Протестовано від початку до кінця 4 вересня 2026 року. Після повторного вставлення SIM він більше не потребує ручного перезапуску.

Проєкти: Особисті проєкти