Поиск по базе знаний

Локальное управление Sonoff в Home Assistant с пробросом в Яндекс

Популярность умных реле и выключателей Sonoff от компании Itead обусловлена их доступностью, надежностью и простотой интеграции. Большинство этих устройств работают на базе чипсетов ESP8266 и ESP32 под управлением фирменной облачной платформы eWeLink. В стандартном режиме работы любая команда (например, включение реле со смартфона или датчика) проходит через внешние серверы eWeLink, что приводит к заметным задержкам от 0.5 до 2 секунд и полной потере управляемости при сбоях интернет-канала.

К счастью, производитель предусмотрел штатный режим локального управления (LAN Mode). С помощью кастомного компонента Sonoff LAN для Home Assistant можно полностью локализовать управление приборами, исключив облачное звено. При этом проброс этих сущностей в Яндекс сохраняет возможность удобного голосового управления с помощью Алисы с минимальной задержкой.

Архитектура работы Sonoff LAN в локальной сети

Локальный режим устройств Sonoff базируется на технологиях самообнаружения mDNS (Multicast DNS) и локального шифрования по протоколу HTTP/WebSocket. При включении в сеть устройство начинает транслировать mDNS-запросы вида _ewelink._tcp.local, сообщая свой IP-адрес и уникальный идентификатор (Device ID).

Компонент Sonoff LAN автоматически перехватывает эти широковещательные пакеты. Для расшифровки команд и получения статуса используется специальный ключ устройства — Devicekey. Данный ключ является уникальным для каждого прибора и создается при первой привязке к аккаунту eWeLink. Интеграция способна автоматически извлечь ключи всех ваших устройств из облака при первом запуске, после чего облачное соединение ей больше не требуется — управление переходит в полностью автономный режим.

IMPORTANT

Для стабильной работы mDNS-обнаружения на вашем роутере должна быть отключена функция изоляции беспроводных клиентов (Client Isolation / AP Isolation). Если эта функция включена, Wi-Fi устройства не смогут общаться друг с другом и с сервером Home Assistant напрямую, что заблокирует локальное управление.

Шаг 1. Подготовка устройств и конфигурация роутера

Чтобы устройства Sonoff не теряли связь с сервером при смене сетевых адресов:

  1. Зайдите в панель управления вашего домашнего роутера.
  2. Перейдите в настройки DHCP-сервера и зарезервируйте постоянные локальные IP-адреса для всех ваших умных реле Sonoff.
  3. Убедитесь, что устройства находятся в той же подсети, что и сервер Home Assistant. Локальный режим не может работать через разные маршрутизируемые VLAN без специальной настройки mDNS-репитеров (например, Avahi).
  4. Проверьте в приложении eWeLink на телефоне, что на устройствах включена функция LAN (в настройках каждого конкретного прибора). На современных прошивках эта опция активна по умолчанию.

Шаг 2. Установка интеграции Sonoff LAN через HACS

Для интеграции нам понадобится популярный компонент от разработчика AlexxIT:

  1. Откройте панель Home Assistant и перейдите в раздел HACS -> Интеграции.
  2. Нажмите кнопку меню в правом верхнем углу, выберите Пользовательские репозитории (Custom repositories).
  3. Введите адрес репозитория https://github.com/AlexxIT/SonoffLAN и выберите тип “Интеграция”.
  4. Найдите появившийся компонент Sonoff LAN в поиске HACS и нажмите Установить.
  5. Перезагрузите Home Assistant для применения установленных файлов.

WARNING

Перед установкой интеграции убедитесь, что на сервере установлено точное системное время. Расхождение времени более чем на 5 минут с серверами eWeLink может привести к ошибке авторизации при первичном получении локальных ключей шифрования.

Шаг 3. Настройка интеграции в configuration.yaml

Для работы интеграции в локальном режиме внесем конфигурационный блок в главный файл настроек:

  1. Откройте файл configuration.yaml с помощью текстового редактора.
  2. Добавьте следующий блок настроек:
sonoff:
  username: "your_ewelink_email@example.com"
  password: "your_ewelink_password"
  mode: local
  1. Режим mode: local указывает интеграции использовать облако только при запуске для обновления списка устройств и скачивания локальных ключей. Управление приборами и опрос их состояния будут осуществляться исключительно по локальной сети.
  2. Сохраните изменения и выполните перезапуск сервера Home Assistant. После перезапуска все ваши реле Sonoff появятся в списке сущностей с префиксом switch.sonoff_.

Шаг 4. Настройка трансляции в Алису

После успешного добавления локальных переключателей Sonoff, настроим их передачу в Умный Дом Яндекса. Это делается аналогично тому, как выполняется локальная интеграция Tuya в Home Assistant.

Добавьте сущности в блок конфигурации yandex_smart_home:

yandex_smart_home:
  filter:
    include_entities:
      - switch.sonoff_1000abcdef
  entity_config:
    switch.sonoff_1000abcdef:
      name: "Люстра в спальне"
      room: "Спальня"
      type: devices.types.light

После сохранения файла выполните перезагрузку конфигурации Yandex Smart Home в панели управления сервером. Обновите список устройств в приложении «Дом с Алисой» на смартфоне. Теперь голосовые команды Алисы будут обрабатываться мгновенно через локальный веб-сокет вашего сервера Home Assistant, снижая пинг до 0.02-0.05 секунды.

Дополнительные аспекты безопасности и оптимизация связи

Локальный запуск позволяет полностью исключить риски блокировки серверов или внезапного прекращения поддержки старых линеек оборудования со стороны китайского вендора. Кроме того, вы можете заблокировать доступ в глобальный интернет для ваших реле на уровне брандмауэра роутера. Это предотвратит передачу лишней телеметрии на сервера производителя и повысит безопасность домашней сети.

При блокировке интернета устройства продолжат вещать mDNS в локальном сегменте, а интеграция Sonoff LAN будет считывать и отправлять команды напрямую. Обратите внимание, что при использовании беспроводных сетей диапазона 2.4 ГГц важно правильно выбрать свободный радиоканал Wi-Fi, чтобы минимизировать наложение сигналов от соседних сетей, поскольку высокий уровень интерференции может приводить к временному отключению локального сокета.

TIP

Если в будущем вы решите полностью отключить сервер Home Assistant от интернета, локальный контроль Sonoff продолжит работать. Ключи шифрования сохраняются локально в кэш-файле интеграции .sonoff.json, что обеспечивает абсолютную независимость от облака eWeLink.

Инструкция по настройке

1

Подготовка роутера и mDNS

Отключите изоляцию беспроводных клиентов (AP Isolation) на роутере, чтобы Home Assistant мог обнаруживать Sonoff по протоколу mDNS.

2

Установка интеграции Sonoff LAN

Добавьте кастомный репозиторий Sonoff LAN в HACS, установите плагин и выполните полную перезагрузку сервера Home Assistant.

3

Настройка авторизации и режима LAN

Добавьте учетные данные eWeLink в configuration.yaml с параметром mode: local для скачивания ключей шифрования устройств.

4

Настройка фильтра Yandex Smart Home

Внесите созданные локальные переключатели Sonoff в конфигурацию проброса в Яндекс и синхронизируйте устройства в приложении Алисы.