Резервное оповещение по SMS в Node-RED при сбоях интернета
Современный умный дом в значительной степени зависит от стабильного подключения к интернету. Голосовые ассистенты, включая Алису, а также большинство популярных мессенджеров (например, Telegram) отправляют push-уведомления и оповещения через облачные сервера. Если провайдер связи проводит технические работы, поврежден физический кабель в подъезде или завис домашний роутер, хозяева рискуют вовремя не узнать о критической аварии: прорыве трубы отопления, задымлении или несанкционированном проникновении в жилье.
Для обеспечения максимальной безопасности критически важных систем автоматизации необходимо предусмотреть автономный резервный канал связи. Самым простым, надежным и проверенным решением является отправка текстовых SMS-сообщений через подключенный напрямую к серверу умного дома USB-модем. Этот канал полностью независим от проводного интернета и продолжает работать, пока активна сотовая вышка ближайшего оператора связи.
Шаг 1: Выбор и подготовка аппаратного обеспечения
Для реализации резервного SMS-оповещения вам понадобится классический USB-модем (например, популярные модели Huawei E3372, ZTE MF833 или аналогичные). Перед подключением к серверу автоматизации необходимо настроить модем.
Модемы могут работать в двух режимах:
- Stick-режим — устройство определяется как последовательный COM-порт (
/dev/ttyUSB*в операционных системах Linux). Управление отправкой сообщений происходит с помощью низкоуровневых AT-команд. - HiLink-режим — модем работает как сетевой адаптер (роутер) с собственным веб-интерфейсом. Управление и отправка SMS осуществляются через встроенный HTTP API (посредством отправки POST-запросов XML/JSON).
Для работы в Node-RED режим HiLink является более предпочтительным, так как он не требует монопольного захвата последовательного порта операционной системой и работает стабильнее при частых перезапусках контейнеров или служб.
Шаг 2: Мониторинг доступности интернета
Постоянно отправлять оповещения через SMS не имеет коммерческого смысла, так как каждое сообщение тарифицируется оператором связи. Резервный канал должен активироваться только тогда, когда основной интернет-канал недоступен.
Для этого в Node-RED создается постоянный цикл проверки связи. Периодически (например, раз в 60 секунд) отправляется тестовый пинг на стабильный публичный DNS-сервер (например, 8.8.8.8) или выполняется легкий HTTP-запрос. Результат проверки записывается в глобальную переменную. Если пинг не проходит в течение трех циклов подряд, статус интернета меняется на аварийный. О том, как профессионально настроить отслеживание работоспособности служб, вы можете прочитать в инструкции по мониторингу системы в Node-RED. Наличие актуального флага статуса сети в глобальном контексте позволяет сценариям мгновенно выбирать правильный способ отправки тревоги.
Шаг 3: Настройка отправки SMS в Node-RED
Если ваш модем работает в режиме HiLink, отправка SMS настраивается через стандартную ноду http request. Нам необходимо отправить HTTP POST-запрос на локальный адрес модема (обычно это http://192.168.8.1/api/sms/send-sms).
Для авторизации запроса в новых прошивках модемов требуется сначала запросить токен безопасности (Session Token). Схема отправки в Node-RED выглядит следующим образом:
- Нода
http requestделает GET-запрос наhttp://192.168.8.1/api/webserver/token. - Функция JavaScript извлекает токен безопасности из XML-ответа модема.
- Следующая нода
http requestвыполняет POST-запрос с XML-телом, содержащим номер телефона получателя и текст тревожного сообщения, прикрепив полученный токен к заголовкам запроса.
Такой подход с двухэтапным получением авторизационного токена гарантирует защиту от несанкционированного доступа к веб-интерфейсу модема со стороны вредоносных скриптов в локальной сети.
Пример структуры XML-пакета для отправки:
<Request>
<Index>-1</Index>
<Phones>
<Phone>+79991234567</Phone>
</Phones>
<Content>Внимание! Обнаружена протечка воды в ванной комнате.</Content>
<Length>51</Length>
<Reserved>1</Reserved>
<Date>2026-07-09 12:00:00</Date>
</Request>
Шаг 4: Логика переключения каналов связи
Финальным этапом является создание распределительного узла в логике тревог. Когда срабатывает датчик протечки или дыма, сообщение с текстом аварии поступает на вход ноды-переключателя switch.
Эта нода проверяет значение глобальной переменной global.internetActive:
- Если интернет доступен (
true), сообщение направляется в ветку отправки через Telegram-бота или облачное push-уведомление приложения Яндекс. Алиса в этот момент может также продублировать предупреждение голосом через Яндекс Станцию. - Если интернет отсутствует (
false), сообщение немедленно перенаправляется на ветку управления USB-модемом, инициируя отправку экстренного SMS-сообщения на мобильный телефон владельца. В SMS-сообщении передается точное время происшествия, название сработавшего датчика и его текущее состояние, чтобы владелец сразу понимал степень серьезности аварии.
IMPORTANT
Для стабильной работы резервного канала связи сервер Node-RED, сетевой коммутатор и сам USB-модем должны быть подключены к надежному источнику бесперебойного питания (ИБП). При отключении электричества в доме проводной интернет пропадет гарантированно, и только автономное питание сервера позволит модему отправить SMS-сообщение о аварии.
WARNING
USB-модемы во время отправки SMS могут потреблять значительный ток (до 1-1.5 Ампер в пике при слабом сигнале сотовой сети). Это может привести к падению напряжения на шине питания Raspberry Pi и зависанию сервера. Рекомендуется подключать модем через активный USB-хаб с внешним питанием.
TIP
При использовании SIM-карты с тарифом без абонентской платы сотовые операторы могут заблокировать номер за неактивность через несколько месяцев. Настройте в Node-RED автоматическую отправку одного тестового SMS-сообщения раз в 30 дней для поддержания активности SIM-карты.
NOTE
Не забудьте расположить USB-модем как можно дальше от беспроводных адаптеров Zigbee и Wi-Fi с помощью короткого USB-удлинителя. Мощное излучение передатчика модема при плохой связи способно создавать сильные электромагнитные помехи для чувствительных радиомодулей умного дома.
Инструкция по настройке
Подключение USB-модема к серверу
Подключите USB-модем с SIM-картой к серверу Node-RED и настройте его работу в режиме модема или шлюза.
Установка ноды SMS-шлюза
Установите в Node-RED ноды для работы с модемом через AT-команды или HTTP API локального шлюза.
Отслеживание доступности интернета
Настройте периодический пинг публичных серверов для определения пропажи связи с облаком Алисы.
Тестирование отправки аварийного SMS
Создайте тестовое критическое событие (протечка, пожар) и проверьте отправку SMS при отключенном кабеле провайдера.
Совет эксперта: Управляйте домом с компьютера
Установите Яндекс Браузер, чтобы управлять умными розетками и светом прямо со стартовой страницы, не отвлекаясь от работы.