- PVSM.RU - https://www.pvsm.ru -

Всем привет! Меня зовут Александр, это моя первая статья, хочу поделиться с вами историей создания программно-аппаратного open source решения для поддержки и управления сервисами в отсутствии интернета.
Да, может случиться так, что дядя Ваня на тракторе может порвать все провода на даче, да и без этого, например, в деревне у моего бати одна палка связи на всех операторах. Телефон у него кнопочный ортодоксальный, и слова типа VPN или ChatGPT для него не то что не знакомы — он начинает зевать даже при малейшем упоминании любых технологий.
Конечно, сразу с мыслью «просто удивить батю» появилась идея сделать средство, которое сможет стать помощником при плохой связи или отсутствии интернета.
Мне хотелось быть максимально автономным, и я решил создать собственный смс-шлюз.
Я купил на маркетплейсе китайский «свисток», сделанный на базе распространенного модема E3372-325. Идеально, конечно, было бы напрямую использовать его через COM-порт, но он жестко зашит, да и для простого пользователя проще использовать как есть без «танцев». Поэтому я использовал просто обычный API его интерфейса.
При подключении система пыталась использовать подключение модема для интернета, но настройка приоритета сети исправила ситуацию.
Пришлось, конечно, еще поискать и повозиться с парсингом и обработкой смс — никогда такого не делал, в остальном все было довольно не сложно.

У такой технологии, несомненно, есть недостатки: зависимость от оператора, ограничения количества символов одного сообщения - приходится разбивать ответы сервисов на несколько смс и назначать лимиты. Но для быстрого адаптируемого решения, которое реально может принести пользу, этого достаточно.
Стек технологий был следующий:
Java 21, Spring Boot, Spring Data JPA, MySQL, REST API, Docker
Для AI использовал openrouter и бесплатные модели.

Чтобы пользователь мог следить за состоянием сервисов, не залезая в логи, сделал простой фронтенд на HTML + JS, который запускается локально на порту шлюза.
Сейчас в проекте доступ к AI модели, управление простым ТГ ботом (получение сообщений), получение последних команд шлюза.
В перспективе можно добавить управление сервером, уведомления (например, в ВК), авторизацию, получение данных с сервера, подключить локальную AI модель.
Проект для простых задач может работать на бесплатных моделях, запущен на любом пк с интернетом автономно.
Упаковано в Docker, максимально просто для старта.
Ссылка на проект [1]
Адаптируя под свои нужды, может пригодиться в обычной жизни:
Управление умным домом;
Уведомления, возможность просто задать вопрос, когда ты, например, на даче, а там плохая связь;
Тем, у кого кнопочный телефон;
Авторизация и уведомление сотрудников предприятий;
Работа в местах с ограничениями связи;
Использование как резервного канала связи для управления сервером.
Я, как начинающий разработчик, буду рад звездам, пул-реквестам и конструктивной критике :-)
Если у кого-то есть вопросы — помогу разобраться.
Автор: Alex1533
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/450543
Ссылки в тексте:
[1] Ссылка на проект: https://github.com/2AlexD1531/SmsGatewayApp
[2] Источник: https://habr.com/ru/articles/1028892/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1028892
Нажмите здесь для печати.