Интеграция контроллера Wiren Board в Дом с Алисой

From Wiren Board
This is the approved revision of this page, as well as being the most recent.


Описание

Приложение Дом с Алисой

Доступно в релизе testing

Дом с Алисой — это облачная платформа и мобильное приложение для управления устройствами умного дома.

Все добавленные устройства будут видны в мобильном приложении, что позволит вам управлять ими удалённо со смартфона, умных колонок с Алисой, Яндекс.Модуля и т.п.

Интеграция доступна только при использовании русского языка в веб-интерфейсе контроллера.

Если пакет не установился на контроллере после обновления, попробуйте обновиться следующим образом:
apt update && apt full-upgrade

Архитектура

Интеграция состоит из следующих частей:

  • навык и авторизация на серверах Яндекса;
  • шлюз между «Умным домом» Яндекса и контроллером Wiren Board;
  • клиентская часть, предустановленная на контроллере - пакет wb-mqtt-alice.

wb-mqtt-alice

Это пакет предустановленный на контроллере, который состоит из двух сервисов:

  • wb-mqtt-alice-config - конфигуратор устройств;
  • wb-mqtt-alice-client - клиент обеспечивающий работу интеграции.

Безопасное соединение

Привязка контроллера и обмен данными между контроллером и нашим сервером-шлюзом происходит по ключу, хранящемся в чипе ATECCx08.

Привязка контроллера

В общем случае контроллер привязывается так:

  1. В веб-интерфейсе контроллера выберите ИнтеграцииЯндекс Алиса.
  2. Нажмите Активировать.Появится предупреждение: Контроллер не привязан. Привяжите контроллер.
  3. Нажмите Привязать контроллер через Яндекс ID. Если вы не были авторизованы, появится сообщение с просьбой войти в учетную запись, нажмите log in.
  4. Авторизуйтесь с помощью Яндекс ID.
  5. При появлении сообщения Сервис ещё не верифицирован нажмите Продолжить.
  6. На странице входа выберите аккаунт Яндекс ID для привязки контроллера, после этого откроется личный кабинет сервера alice.wirenboard.com.
  7. Снова откройте в веб-интерфейсе контроллера ИнтеграцииЯндекс Алиса и нажмите Привязать контроллер через Яндекс ID. Появится сообщение об успешной привязке контроллера.
  8. Для перехода на страницу статуса привязки нажмите Back to Dashboard. Обновление статуса может занять до 30 с. Если этого не произошло, то вернитесь в интерфейс контроллера, обновите страницу и Активируйте интеграцию еще раз. Контроллер также не перейдет в статус онлайн, если у указанного пользователя не добавлен навык.
  9. После подключения контроллера к серверу можно переходить к настройке устройств.

Добавление навыка

  1. В мобильном приложении "Дом с Алисой" войдите под своим аккаунтом.
  2. Перейдите в "Устройства умного дома".
  3. Найдите и добавьте навык "Wiren Board".
  4. Завершите добавление навыка.

Отвязка контроллера

Для отвязки контроллера перейдите на страницу проверки статуса или личного кабинета сервера alice.wirenboard.com и нажмите на красный крестик рядом с серийным номером отвязываемого контроллера.

Или введите в терминале самого контроллера команду:

wb-mqtt-alice unlink-controller

При корректном выполнении команды в терминале можно наблюдать такие сообщения:

Current link status: linked
Unlink action result: successful

Отключение интеграции

Для отключения интеграции переведите переключатель Активировать в положение выключено

Настройка устройств

Конфигуратор устройств

В разделе ИнтеграцииЯндекс Алиса можно перейти к конфигуратору устройств и настраивать устройства. Реализована возможность добавления комнат и устройств.

Доступные умения:

  • on_off
  • color_setting (цвет (rgb) или температура цвета)
  • range

Доступные свойства:

  • float
  • event

Особенности настройки устройств:

  1. Если добавленное устройство уже прокинуто в приложении Дом с Алисой, то его переименование в нашем конфигураторе не приведет к изменениям в приложении. Это особенность реализации со стороны Яндекса.
  2. В качестве MQTT-топика нельзя использовать топик с типом pushbutton, т.к. они без флага retained.

Добавление интеграции в Яндексе

  1. В приложении Дом с Алисой в правом верхнем углу нажать + и выбрать Устройство умного дома.
  2. В поле поиска найти навык Wiren Board. Выбрать его.
  3. Обновить список устройств.

Удаление интеграции

Если не нужна интеграция с Алисой, то можно ее удалить.

  1. Отвяжите контроллер. На странице привязанных контроллеров нажмите на красный крестик в плашке нужного контроллера.
  2. Удалите пакет:
    apt purge wb-mqtt-alice
    
  3. Запретите автоустановку при обновлении:
    apt-mark hold wb-mqtt-alice
    

Если интеграцию необходимо вернуть, то снимаем блокировку и устанавливаем пакет:

  1. apt-mark unhold wb-mqtt-alice
    
  2. apt install wb-mqtt-alice
    

Сервис клиента

Посмотрите и проанализируйте возможные сообщения об ошибках в логах сервиса клиента - wb-mqtt-alice-client

Сервис конфигуратора

Посмотрите и проанализируйте возможные сообщения об ошибках в логах сервиса конфигуратора - wb-mqtt-alice-config

Примечание

Пароль на nginx

Для работы интеграции не используйте пароль на nginx. Для авторизованного доступа в веб-интерфейсу контроллера используйте стандартный метод из документации.

Особенности работы с УДЯ

Умение color_settings

При добавлении умения color_seting, выбора модели управления цветовой температурой и диапазона температур от 2700 до 6500 наблюдается странное поведение в приложении - невозможно выбрать "Холодный белый". Для выбора данной цветовой температуры необходимо нажимать правее самого виджета, т.е. по сути на виджет "Плюса".

Cобытия

События (Event) в Умном доме Яндекса — это сигналы от датчиков или устройств (обнаружение движения, открытие двери, нажатие кнопки), указывающие, что их состояние поменялось. Они выступают триггерами в сценариях, запуская автоматические действия без участия пользователя.

Приложение УДЯ фиксирует историю срабатываний датчика, но не отображает его статус в реальном времени. Алиса может сообщить какое событие с датчиком было последним.

Для полноценной работы большинству событий требуется несколько mqtt топиков, в этом случае каждому топику соответствует определенное значение события. Например, для обработки события button нужно 3 топика, которые соответствуют значениям click — одиночное нажатие, double_click — двойное нажатие, long_press — долгое нажатие. Но есть события, которым это не обязательно, они могут менять свое значение на основе данных одного топика, это: open, motion и water_leak.

Список событий
Событие Описание
vibration Физическое воздействие
(tilt — переворачивание, fall — падение, vibration — вибрация)
open Открытие/Закрытие дверей, окон и др.
(opened — открыто, closed — закрыто)
button Нажатие кнопки
(click — одиночное нажатие, double_click — двойное нажатие, long_press — долгое нажатие)
motion Движение в области действия датчика
(detected — обнаружено, not_detected — не обнаружено)
smoke Дым в помещении
(detected — обнаружено, not_detected — не обнаружено, high — высокий уровень)
gas Газ в помещении
(detected — обнаружено, not_detected — не обнаружено, high — высокий уровень)
battery_level Заряд батареи
(low — низкий, normal — нормальный)
food_level Уровень корма
(empty — пустой, low — низкий, normal — нормальный)
water_level Уровень воды
(empty — пустой, low — низкий, normal — нормальный)
water_leak Протечка воды
(dry — нет протечки, leak - протечка)

Особенности реализации события open

Событие open имеет два значения: Открыто и Закрыто, использовать его можно двумя способами:

  • один датчик, который передает в mqtt топик состояние контактов замкнуто/разомкнуто. Значения true, on, любое число > 0 — активируют выбранное значение события (например, Открыто), значения false, off, 0 — активируют противоположное значение события (например, Закрыто):
Выбрано событие Открыто
Выбрано событие Закрыто
  • два датчика, которые передают состояние контактов в два топика. Можно использовать, например, для автоматизации откатных ворот, где датчики фиксируют крайние положения. Оба датчика при сработке записывают в свой топик значения true, on или любое число больше 0. Событие Открыто или Закрыто активируется при сработке соответствующего датчика. При этом изменение значения топика с true на false у обоих датчиков игнорируется.
Выбраны оба события Открыто/Закрыто

Поиск и устранение неисправностей

Контроллер может соединиться с сервером, только если выполнены три условия:

  • включена интеграция (состояние флага Активировать установлено во включенное состояние);
  • контроллер привязан к нашему серверу Wiren Board;
  • пользователь уже имеет связанный навык WirenBoard в приложении УДЯ.

Проверка сервиса конфигуратора

$ systemctl status wb-mqtt-alice-config

Ожидаемый ответ:

Active: active (running) since...

Если сервис не активен, запустите его командой:

$ systemctl start wb-mqtt-alice-config

Проверка сервиса клиента

$ systemctl status wb-mqtt-alice-client

Ожидаемый ответ:

Active: active (running) since...

Если сервис не активен, запустите его командой:

$ systemctl start wb-mqtt-alice-client

Проверка файла /etc/wb-mqtt-alice-client.conf

Убедитесь, что в поле client_enabled установлено значение True

Проверка подключения к интернету

ping 8.8.8.8 -c 4

Ожидаются: успешные ответы. Если нет — проверьте подключение к интернету.

Проверка доступности сервера

curl -v http://localhost:8042/socket.io/?EIO=4

ответ:

\* Connected to localhost (127.0.0.1) port 8042 (#0)
...

\* Connection #0 to host localhost left intact

0{"sid":"x0WN3fm5TAGTls0_AAcF","upgrades":["websocket"],"pingTimeout":30000,"pingInterval":60000}

Если ответа нет, перезагрузите контроллер.

Просмотр Системного журнала

Часто о сути какой-либо проблемы можно узнать из логов соответствующих сервисов. В веб-интерфейсе логи доступны с помощью инструмента «Системный журнал».

Известные неисправности

Ошибки/особенности, обнаруженные при использовании интеграции.

Альтернативные варианты

Кроме нашей интеграции вы можете использовать сторонние решения:

Полезные ссылки

Поддерживаемые контроллером Wiren Board системы верхнего уровня, приложения, способы программирования, протоколы и устройства
Протоколы
Опрос датчиков и работа с устройствами (в базовой комплектации) 1-WireDLMS/COSEM Modbus RTU/TCP Master ГОСТ МЭК 61107 СПОДЭС (ГОСТ Р 58940-2020)
Опрос датчиков и работа с устройствами (с помощью модулей расширения) KNXeBUSOpenThermZ-WaveZigbee
Опрос контроллера из систем верхнего уровня и с других устройств KNX Modbus RTU/TCP SlaveMQTTOPC UASNMPZabbix МЭК 104SmartWeb (Гидролого)
Через шлюзы DALILoRaWAN
Системы верхнего уровня
Системы мониторинга и SCADA GrafanaHome Assistant IntraHouse IntraSCADASprut.hubMasterSCADANagiosSimpLight SCADARapid SCADASAYMONZabbix iRidium ServerAggreGate ТМИУС КПМажордом SCADA WebDisCo
Приложения
Управление с телефона MQTT DashiRidiumHome Assistant Apple HomeДом с АлисойСалют! Умный домМажордом
Голосовые помощники Siri Салют Алиса
Способы программирования
Языки программирования ПЛК FBD, ST, LD, SFC (МЭК 61131-3)
Визуальное программирование Node-RED
Упрощённый текстовый движок правил wb-rules
Сценарии автоматизации без программирования wb-scenarios
Стандартное программирование Python C++ Go Node.js
Протестированные устройства сторонних производителей
Адаптеры протоколов ECODim DALI GW2 Arlight DALI-LOGIC-LITE-PS-x1Lavritech L1 Lite LoRaWAN
Аудиоресиверы сетевые URRI A1Skirell-Sound
Датчики климата DS18B20 и клоныKvadro 1WIRE-RS485Wellpro WP3066ADAMДаджет MT8057/MT8057SРД MSU21РД MSU24РД MSU34+TLPРД MSU34+THLPЭксис ИВТМ-7 М 3
Датчики присутствия MTDХ62-MB (MTD062-MB, MTD262-MB)
Датчики уровня ЭСКОРТ ДБ-2
Универсальные датчики TESLiOT (BLE)
Диммеры DALI Philio PAD07-RU Uniel UCH-M131RC/0808 Uniel UCH-M141RC/0808 РД DDL04R РД DDL24 РД DDM845R Demid.Net
Домофоны Домофоны координатного типа: VIZIT (ВИЗИТ), Элтис, Цифрал, Техком, Метаком, Beward и др.
Источники питания и ИБП MEAN WELL DRS Series
Кондиционеры

Haier YCJ-A002 Z-Wave ИК-передатчик PAR01-RU • Hisense (ONOKOM-AIR-HS-3-MB-B, ONOKOM-AIR-HS-5-MB-B, ONOKOM-AIR-HS-6-MB-B) • Daikin (ONOKOM-AIR-DK-1-MB-B, ONOKOM-AIR-DK-5-MB-B) • Mitsubishi Electric (ONOKOM-AIR-ME-1-MB-B) • AUX (ONOKOM-AIR-AUX-1-MB-B) • GREE (ONOKOM-AIR-GR-1-MB-B, ONOKOM-AIR-GR-3-MB-B) • MDV (ONOKOM-AIR-MD-1-MB-B, ONOKOM-AIR-MD-3-MB-B) • VRF (ONOKOM-AIR-MD-VRF-MB-B) • TCL (ONOKOM-AIR-TCL-1-MB-B, ONOKOM-AIR-TCL-3-MB-B) • Haier (ONOKOM-AIR-HR-1-MB-B)

Рекуператоры / вентиляция VAKIO City Air 250/500 Komfovent Breezart Lux / Aqua VENTMACHINE Colibri 650 GTC
Контроллеры вентиляции и климата Тепломаш КЭВ-БЛОК-МКDrivent V2
Контроллеры холодильного оборудования Carel BASIC(PYEZ)/EASY(PJEZ) Danfoss EKC 204A1/AK-CC 210 Danfoss EKC 202B Danfoss EKC 202D Danfoss ERC 211/ERC 213/ERC 214 Eliwell IDPlus 974
Метеостанции Сокол-М
Модули ввода-вывода Wellpro WP8026ADAM Wellpro WP8027ADAM Wellpro WP8028ADAM Wellpro WP9038ADAM
Модули реле РД DRB88 Rubetek TZ78 ICP DAS tM-P3R3 ICP DAS LC-103 Uniel UCH-M111RX/0808 Uniel UCH-M121RX/0808
Моторы для штор/Электрокарнизы Akko AM82 Dooya DM35EQ Dooya DT82 WinDeco Somfy SDN (Sonesse и Glydea Series) SunFlower KT82TV Somfy RS485 RTS transmitter Беспроводные Dooya/Somfy Dauerhaft CM5 Dauerhaft Roll 35/45 A-OK AM68 (LM100) A-OK AM35
Панели управления Cityron ПУ-3 (Modbus) Sonoff NSPanel (fw NXPanel) EKF PRO-Screen Skirell Panel
Системы защиты от протечек KAPLESTOP Ensystec Leak Protect
Считыватели карт (для СКУД) Wiegand
Счётчики воды Пульсар Пульсар-М Счётчики с импульсным выходом
Счётчики тепла Пульсар
Счётчики электроэнергии CSQ PD561Z-9SY Peacefair PZEM-016 Eastron SDM120M Eastron SDM220M Меркурий 200 Меркурий 201 Меркурий 203.2T Меркурий 206 Меркурий 230 Меркурий 231 Меркурий 234 Меркурий 236 Милур 104 Милур 105 Милур 107 Милур 305 Милур 307 Нева МТ 113 Нева МТ 123 Нева МТ 124 Нева МТ 323 Нева МТ 324 Энергомера CE301 Энергомера CE102M Энергомера CE303 Энергомера CE308
Термостаты BAC-002ALN BAC-6000ALN BAC-6000ELNW BHT-6000 Series BHT-006 Series Heatit Z-TEMP2 Siemens RDF302 Ridan Greencon-R Welrok az ENGO EFAN
Управление двигателями (преобразователи частоты) Vacon/Danfoss 10 Danfoss VLT Microdrive FC51 T13-400W-12-H/T13-750W-12-H
Управление шаговыми двигателями Овен (Meyertec) MST-24 Rtelligent NT60
Прочее TasmotaESPHome
Устройства с аналоговым или цифровым выходом
Низковольтная нагрузка Реле с управляющим напряжением 12–24 В Светодиоды Низковольтные вентиляторы Низковольтные сигнальные лампы
Датчики с аналоговым выходом Датчики температуры, давления и другие, имеющие на выходе ток или напряжение
Счётчики с импульсным выходом Счётчики электроэнергии, воды, тепла и другие с импульсным выходом
Устройства с выходом «открытый коллектор» Устройства с выходом «открытый коллектор»
Устройства с питанием 220 В Лампы Контакторы и другое оборудование с питанием от 220 В

Поддерживаемые , но непроверенные в лаборатории Wiren Board устройства сторонних производителей (шаблоны от сообщества)
Адаптеры протоколов HDL KNX-DALI Gateway M/DALI.1
Датчики климата RLDA NL-3DPAS-M RLDA NL-1S111Рэлсиб ДВТ-05 XY-MD03/XY-MD04
Датчики расстояния WitMotion WT53R-485
Диммеры РД DDL84R-V
Источники питания и ИБП ИБП Импульс Мультиплекс
Конвекторы Varmann QTherm
Рекуператоры / вентиляция Рекуператор VAKIO Base Smart ПВУ Royal Clima Soffio Primo RCS-350-PRoyal Clima VENTO Systemair Corrigo
Метеостанции Netatmo Urban Weather Station
Коллекторы датчиков R4DCB08
Контроллеры вентиляции и климата Mautomatics JL204C5 (Breezart 550 Lux) GTC (General Thermo Controllers) Syberia 5.0 SystemAir VR 300 Royal Clima MACS-RC-420MB
Модули реле R4D3C32
Счётчики воды Элехант СВД-15 Элехант СВД-20
Счётчики электроэнергии Меркурий 204 Меркурий 208 Меркурий 238 ABB SCU100
Счетчики тепла ВИС.Т2-ТС Тепловычислитель ТМК-Н
Термостаты Hessway
Увлажнители CAREL Humisonic Xiaomi Humidifier
Прочее DIYShelly UNI