Почему сценарии не работают без интернета на Яндекс Хабе
Яндекс Хаб и умные колонки со встроенным Zigbee-модулем (Станция 2, Миди, Макс) рекламируются как устройства, способные выполнять автоматизации локально, без доступа к интернету. Однако на практике многие пользователи сталкиваются с неприятной ситуацией: стоит отключить кабель провайдера от роутера, как сценарии освещения, протечки или климата перестают работать. Колонка молчит, реле не реагируют, датчики шлют сигналы в пустоту. Разберем технические причины, почему «локальные» сценарии Яндекса часто отказываются работать в оффлайн-режиме, и как это исправить.
Разница между локальным и облачным сценарием
По умолчанию все сценарии в Доме с Алисой создаются и обрабатываются на облачных серверах Яндекса. Хаб лишь транслирует сигналы датчиков в облако, там принимается решение, и команда возвращается обратно на исполнительное устройство. Если интернета нет, эта цепочка рвется.
Для оффлайн-работы хаб должен загрузить сценарий в свою внутреннюю энергонезависимую память в виде скомпилированного байт-кода. Но для этого сценарий должен быть абсолютно «чистым» — он не должен содержать ни одного элемента, требующего внешнего интернет-запроса. Детальные требования к сборке таких сценариев приведены в нашем руководстве по настройке локальных сценариев умного дома Алисы. Если хотя бы одно условие нарушено, Яндекс принудительно оставляет обработку сценария в облаке.
Главные причины сбоя локального выполнения
Если ваши сценарии перестали работать при отключении интернета, проведите аудит системы по следующим четырем направлениям:
1. Скрытые облачные интеграции
Самая распространенная ошибка — использование датчиков или реле, подключенных через сторонние навыки (Aqara Home, Tuya Smart, Smart Life). Даже если устройство работает по протоколу Zigbee, но привязано к роутеру через «родной» шлюз производителя, сигнал идет по маршруту: Шлюз ➡️ Облако производителя ➡️ Облако Яндекса ➡️ Яндекс Хаб. При отключении интернета эта цепочка мгновенно рушится. Все устройства обязаны быть сопряжены напрямую с координатором Яндекса.
2. Запрещенные действия в сценарии
Проверьте тело самого сценария. В нем не должно быть:
- Голосового оповещения на Станции («Алиса, скажи…»). Синтез речи (TTS) выполняется исключительно в облаке Яндекса.
- Действий с Wi-Fi устройствами (умные розетки, лампы, кондиционеры, работающие по Wi-Fi).
- Отложенных таймеров (действие «Отложить на…»).
- Push-уведомлений на телефон владельца умного дома.
Любое из этих действий делает сценарий чисто облачным.
3. Проблема времени и сбитые часы
Умные колонки и Яндекс Хаб не имеют встроенных аппаратных часов реального времени (RTC) с батарейкой. При включении хаб запрашивает точное время по протоколу NTP из интернета. Если интернет пропал, а хаб по какой-то причине перезагрузился (например, моргнуло электричество), системное время сбрасывается на дефолтное (обычно 1 января 1970 года). В результате все сценарии, привязанные к временным интервалам или условиям «От заката до восхода», перестают выполняться, так как хаб физически не знает, сколько сейчас времени.
Локальный NTP-сервер: решение проблемы со сбитым временем
Как уже упоминалось, потеря точного системного времени хабом при перезагрузке в оффлайн-режиме полностью блокирует сценарии с временными рамками. Однако эту проблему можно решить на сетевом уровне с помощью настройки локального NTP-сервера на вашем домашнем роутере (например, Keenetic, ASUS или MikroTik).
Большинство современных роутеров имеют встроенную службу NTP, которая может раздавать время внутри локальной сети даже при отключенном кабеле провайдера. Чтобы Яндекс Хаб или Станция автоматически синхронизировали часы с роутером, настройте параметры DHCP-сервера роутера. Вам потребуется передать адрес локального NTP-сервера через опцию DHCP под номером 42 (Network Time Protocol Servers).
Пример конфигурации для DHCP-сервера в маршрутизаторах (в формате конфига):
# Настройка локального DHCP в сети умного дома
dhcp_server:
interface: br0
range_start: 192.168.1.50
range_end: 192.168.1.200
dns_server: 192.168.1.1
# Передача локального NTP-сервера (IP-адрес роутера)
options:
- code: 42
value: "192.168.1.1"
После такой настройки роутер при выдаче IP-адреса Яндекс Хабу сообщит ему, что синхронизировать время нужно с адреса 192.168.1.1. Даже если провайдер отключит интернет, хаб после перезагрузки успешно получит точное время от роутера, и ваши временные сценарии не пострадают.
Ослабление Zigbee-сети без облачной координации
Еще один неочевидный нюанс — падение стабильности Zigbee-сети при отключении внешней сети. В облачном режиме Яндекс постоянно собирает телеметрию о качестве связи (LQI — Link Quality Indicator) между хабом и устройствами. При ухудшении связи облачные алгоритмы могут инициировать перестроение маршрутов доставки пакетов.
В оффлайн-режиме хаб выполняет только базовую маршрутизацию. Если в вашей сети есть «проблемные» устройства, находящиеся на грани зоны приема, без облачной оптимизации они могут быстро уйти в оффлайн. Чтобы этого избежать, убедитесь, что в каждой комнате установлены Zigbee-роутеры с постоянным питанием (умные розетки или реле с нулевой линией), которые поддерживают стабильную локальную ячеистую сеть.
Альтернатива: Аппаратное связывание (Zigbee Binding)
Если вам нужна абсолютная отказоустойчивость, при которой свет будет включаться даже при физической поломке или сгорании самого Яндекс Хаба, следует использовать технологию прямого связывания (Zigbee Binding). При прямом связывании датчик (или выключатель) отправляет команду включения непосредственно на адрес исполнительного реле, минуя координатор.
Для настройки прямого связывания устройства временно подключают к Home Assistant (через Zigbee2MQTT). Ниже представлен пример отправки JSON-команды для связывания беспроводной кнопки с реле:
// Тема в MQTT: zigbee2mqtt/bridge/request/device/bind
{
"from": "switch_bedroom_click",
"to": "relay_light_bedroom",
"clusters": [
"genOnOff"
]
}
После успешной привязки устройства запоминают MAC-адреса друг друга. Вы можете отключить Home Assistant, выдернуть Яндекс Хаб из розетки — кнопка продолжит управлять светом напрямую по радиоэфиру с нулевой задержкой.
Инструкция по устранению
Проверка прямого Zigbee-подключения
Убедитесь, что все датчики и реле подключены напрямую к Яндекс Хабу или Станции без использования сторонних мостов вроде Aqara или Tuya.
Анализ состава действий сценария
Проверьте сценарий в приложении. Удалите любые Wi-Fi устройства, таймеры задержки, push-уведомления и голосовые фразы Алисы.
Контроль статуса локального выполнения
Откройте карточку сценария в приложении. Убедитесь, что на ней отображается значок молнии или серый ярлык «Локальный».
Проверка стабильности питания хаба
Избегайте перезагрузок хаба при отключенном интернете. Без доступа к серверам NTP хаб потеряет системное время, заблокировав сценарии.