Локальная интеграция реле Shelly в Home Assistant по CoAP для Алисы
Интеграция умных реле Shelly в систему домашней автоматизации Home Assistant открывает широкие возможности для локального управления освещением и электроприборами. В отличие от многих китайских аналогов, устройства Shelly изначально разрабатывались с акцентом на локальную работу без обязательной привязки к китайским или европейским облачным серверам. Однако стандартное подключение через HTTP-запросы или облачный сервис Shelly Cloud имеет ряд ограничений: задержки выполнения команд могут достигать 1-2 секунд, а стабильность работы напрямую зависит от качества интернет-соединения.
Для обеспечения мгновенного отклика и высокой надежности используется специализированный протокол CoAP (Constrained Application Protocol), оптимизированный для работы в сетях с низкой пропускной способностью и ограниченными ресурсами оконечных устройств. В этой статье мы подробно разберем, как перевести реле Shelly на локальное вещание по CoAP, настроить мультикаст-маршрутизацию на роутере и пробросить готовые сущности в Умный Дом Яндекса для мгновенного голосового управления через Алису.
Физический смысл и архитектура CoAP в умном доме
Протокол CoAP представляет собой легковесную альтернативу HTTP, работающую поверх UDP. Вместо постоянного удержания TCP-соединения или периодического опроса (polling), устройства обмениваются короткими пакетами данных. В стандартной конфигурации Shelly использует расширение CoIoT (CoAP для интернета вещей), которое транслирует состояние приборов с помощью мультикаст-пакетов (IP-адрес 224.0.1.187, порт 5683).
Когда вы нажимаете физический выключатель, реле мгновенно отправляет в локальную сеть UDP-пакет со своим новым статусом. Сервер Home Assistant, прослушивающий мультикаст-трафик, фиксирует это изменение в течение 10-20 мс. Это позволяет создавать сложные локальные сценарии, которые срабатывают практически без ощутимой задержки.
IMPORTANT
Для корректной работы мультикаст-вещания CoAP ваш домашний роутер должен поддерживать протокол IGMP и иметь включенную функцию IGMP Snooping. Если эта функция выключена или работает некорректно, роутер может блокировать UDP-пакеты, передаваемые между беспроводным Wi-Fi сегментом умных устройств и проводным LAN-сегментом сервера Home Assistant.
Шаг 1. Подготовка сети и настройка роутера
Перед началом настройки Shelly необходимо убедиться, что ваша локальная сеть готова к передаче мультикаст-трафика:
- Войдите в панель администратора вашего Wi-Fi роутера.
- Перейдите в раздел настроек локальной сети (обычно это вкладка LAN или IPTV).
- Найдите параметр IGMP Snooping и переведите его в состояние “Включено” (Enabled). Если роутер поддерживает выбор версии, установите IGMP v2 или IGMP v3.
- Убедитесь, что функция блокировки мультикаста (Multicast Storm Control или Wireless Multicast Forwarding) отключена, так как она может принять легитимный CoAP-трафик за сетевую атаку и заблокировать его.
- Назначьте вашему серверу Home Assistant статический IP-адрес (например,
192.168.1.15).
Шаг 2. Конфигурация CoIoT в веб-интерфейсе Shelly
Для перевода реле в локальный режим необходимо выполнить настройку его встроенной прошивки:
- Подключитесь к веб-интерфейсу реле Shelly, введя его локальный IP-адрес в строке браузера. Если прибор новый, сначала подключитесь к его собственной Wi-Fi точке доступа и выполните первичную привязку к домашней сети.
- В боковом меню перейдите в раздел Internet & Security -> Advanced - Developer Settings.
- Установите галочку напротив пункта Enable CoIoT.
- В поле CoIoT peer введите IP-адрес вашего сервера Home Assistant и порт 5683. Например, вместо значения
mcastукажите192.168.1.15:5683. Это переведет вещание из режима общего мультикаста в режим направленного уникаста (unicast), что гарантирует доставку пакетов даже при проблемах с IGMP на роутере. - Нажмите кнопку Save для сохранения конфигурации.
- Перейдите в раздел Device Information и перезагрузите устройство, чтобы новые параметры CoAP вступили в силу.
WARNING
Если вы используете устройства Shelly первого поколения (например, Shelly 1, Shelly 2.5, Shelly Dimmer) на старых версиях прошивки, режим CoIoT peer может не поддерживаться. Обязательно обновите встроенное ПО устройств до последней стабильной версии перед настройкой локального протокола.
Шаг 3. Интеграция Shelly в Home Assistant
Благодаря поддержке протокола автоматического обнаружения (Zero-configuration networking), Home Assistant самостоятельно определит новое устройство в сети:
- Откройте панель управления Home Assistant.
- Перейдите в раздел Настройки -> Устройства и службы.
- В верхней части экрана вы увидите карточку обнаруженного реле Shelly. Нажмите кнопку Настроить.
- Если автообнаружение не сработало, нажмите Добавить интеграцию, выберите Shelly из списка и введите IP-адрес прибора вручную.
- Укажите комнату размещения и подтвердите добавление. В системе появится новая сущность переключателя, например
switch.shelly1_living_room.
Шаг 4. Вывод сущностей в Алису через Yandex Smart Home
Чтобы получить возможность управлять локальным реле голосом, пробросим его в Яндекс. Этот процесс концептуально похож на то, как настраивается локальная интеграция Tuya в Home Assistant.
- Откройте ваш конфигурационный файл
configuration.yaml. - Добавьте или отредактируйте блок интеграции
yandex_smart_home:
yandex_smart_home:
filter:
include_entities:
- switch.shelly1_living_room
entity_config:
switch.shelly1_living_room:
name: "Свет в гостиной"
room: "Гостиная"
type: devices.types.light
- Проверьте конфигурацию на ошибки через меню управления сервером и выполните быструю перезагрузку Home Assistant.
- Откройте мобильное приложение «Дом с Алисой», перейдите в настройки и обновите список подключенных устройств умного дома. Теперь ваше реле готово принимать голосовые команды. Задержка при локальной обработке составляет менее
0.1 секунды.
TIP
Использование статического CoIoT peer (IP:5683) существенно разгружает беспроводную сеть Wi-Fi, избавляя роутер от необходимости постоянно обрабатывать широковещательные пакеты, что особенно критично при использовании более 20 умных устройств Shelly одновременно.
Инструкция по настройке
Настройка IGMP Snooping на роутере
Включите функции IGMP Snooping и мультикаст-маршрутизацию на вашем роутере для беспрепятственного прохождения UDP-пакетов протокола CoAP.
Активация CoIoT в веб-интерфейсе Shelly
Зайдите в локальные настройки реле, включите протокол CoIoT и укажите точный IP-адрес вашего сервера Home Assistant с портом 5683.
Добавление Shelly в Home Assistant
Используйте автообнаружение или добавьте интеграцию Shelly вручную. Убедитесь, что сущность управляется локально без задержек.
Проброс в Умный Дом Яндекса
Внесите созданные сущности Shelly в фильтр yandex_smart_home, обновите список устройств в приложении Дом с Алисой и проверьте скорость голосовых команд.