October 2

Wirenboard как проводное решение УД с мостом MQTT в Home Assistant.

У меня до сих пор есть утопичная идея - собрать наиболее надежный+простой в настройке умный дом. На себе уже и части клиентов испытал разные подходы, включая беспроводные решения - например на акаре и прочих zigbee устройствах. Я считаю такой подход максимально правильным и удобным - как в настройке, так и в эксплуатации. Понятное дело что все на серваке + Home Assistant, минимум wifi решений в управлении светом, отоплением, розетками. В принципе, если есть уже готовый ремонт + внешний вид готовых выключателей на Zigbee устраивает - то это лучшее на мой взгляд решение. Масштабирование в условиях zigbee сетей очень простое, менять что-то вообще супер легко и быстро - диван подвинул = выключатель “переклеил”.

Казалось бы, вот выходит уже 17 айфоний, беспроводные технологии бороздят просторы вселенной … а когда дело заходит про выключатели и дом то тут сразу активируется консерватизм. ¯\(ツ)/¯ Беспроводная зарядка и машина на автопилоте это норм, а розетки по радио это стрем. Есть даже видео где пытаются в течении секунды вкл/выкл такие выключатели и говорят - ну вот, задержка включения. И мой любимый вопрос - а что если не будет света? Вот ответ

https://youtu.be/u2_GcUmCLbg?si=KgQtphsZKEm7qb-F

Ок, если нужен провод, то мне нужно было найти стабильное и главное удобное решение. К Wirenboard я гонял на выставку, а потом и к ним на производство - мне их подход к делу понравился. Мне было не понятно, почему их котроллер такой дорогой и такой откровенно слабый по железу. Еще и технология из 80х прошлого века (Modbus) с подходом клиент-сервер. Ну ладно. Я запросил на тест оборудование и решил проверить насколько все удобно. Никто не выдавал оборудование со словами = о нас только хорошее или гони деньги. Просто выдали на тест что запросил.

Я уже частично подключал их оборудование напрямую через Home Assistant или через ESPhome - в качестве развлекухи пойдет, ну или если таких устройств совсем немного. Возился прилично, подбирая правильную конфигурацию через esphome и не всегда идиально. Для датчиков пойдет, а вот с диммером так и не добил нормальный отклик. https://teletype.in/@godisblind/TOPdtfzTfpu

Я тестировал контроллер + модули в течении недели, кнопка Вернуть к заводским настройкам - была всегда под рукой. Не то что бы ломал, просто всегда новые решения накатывать на чистую систему. Очень хорошо что можно скинуть в 0 и заново все установить. Только нужно чистить куки) Я пробовал разные интеграции и подходы.

Самое важное для меня это работа оборудования с Home Assistant - это обязательно. Поэтому все тестирование крутилось вокруг НА, контроллер я рассматривал как дополнительный MQTT сервер для устройств Modbus, а так же проверил как развернуть полноценный сервер с ХА. https://teletype.in/@godisblind/F-3V9VCngZd

Забегая вперед, я для себя выбрал использовать контроллеры как отдельный сервер для умных проводных устройств совместимых с WB. Сторонние модбас устройства которые не поддерживаются через WB я лучше подключу через ESP home и модули вроде Kincony. Для кастомных решений точно буду брать Esphome, так как можно городить любую сложность. А вот счетчик электричества можно взять и от WB, диммеры и датчики температуры точно от WB.

Тест у меня будет в форме подключения от “голой системы” до готового Home Assistant сервера с Zigbee устройствами. Настрою устройства под использования, без глубинного разбора = главное что бы работало. Прокину все на тестовый сервер, а потом уже будет установка НА на сам WB контроллер + esphome и прочее для полноценного сервера. Все пойдет по порядку.

Многие установки после НННого количества установок я перегнал в скрипты и сделал отдельный репозиторий - https://github.com/smirnowegor/ESP-WB описание readme в процессе.

Тест был на прошивку wb-2507

Железо

Wiren Board 8.5 https://wirenboard.com/ru/product/wiren-board-8/ + модуль расширения zigbee WBE2R-R-ZIGBEE v.2 + антенна https://wirenboard.com/ru/product/WBE2R-R-ZIGBEE-v2/


Диммер с Modbus RTU WB-MDM3 https://wirenboard.com/ru/product/WB-MDM3/ есть у меня адаптация для ESPhome https://github.com/smirnowegor/ESP-WB/blob/main/WB-MDM3 и статья по настройке через EspHome https://teletype.in/@godisblind/TOPdtfzTfpu

Ссылка на диммер в моей базе https://smart4you.notion.site/WB-MDM3-24e8751588a580348563e51549561444?pvs=74


WB-MAP12E Для технического учёта по четырём трёхфазным нагрузкам

Учет по четырём трёхфазным нагрузкам WB

Ссылка на актуальную БД https://smart4you.notion.site/WB-26c8751588a58045870ddf01ff09844d?pvs=74

Настенный комбинированный датчик WB-MSW-ZIGBEE v.4 с полным набором сенсоров Температура, влажность, освещённость, шум, уровень CO2 и VOC, движение, ИК-передатчик. https://teletype.in/@godisblind/K7Z0QBQ-vHo


Примерно такой же датчик без ZIgbee и проще набор - температура и влажность.

https://teletype.in/@godisblind/YysSEBdCzDL

Датчик 1-wire просто для теста.

Бонусм подключение реле стороннего и счетчик Меркурий 230 (он есть в базе интеграций WB) https://wiki.wirenboard.com/wiki/Mercury_230

Вот прям понравилось (что важно для меня). Общее

ВСЕ ПОДПИСАНО!!! Есть интрукции и даже наклейки для линий счетчика) Это очень удобно. Хорошая документация https://wiki.wirenboard.com/wiki/Wiren_Board_8.5

Большая база подключаемых устройств, свои устройства вообще автоопределяются. Так я нашел модуль для своего счетчика https://wiki.wirenboard.com/wiki/Supported_devices В принципе, если планировать проект и в нем будет такое оборудование из списка - то время настройки сильно сокращается, по сравнению с написанием на Esphome.

Там и моя вент система есть, правда для пробы нужно подключить по Modbus RTU и для этого нужно подобраться кабелем. Как будет время я попробую напрямую покдлючить к своей вентиляции, но то что есть адаптация уже круто.

Старый добрый и хорошо знакомый Debian 11. Так как много возился с Supervised версией Home Assistant то уже и привык к нему. Все “интеграции” уже предустановлены и легно обновить через sudo apt update. Mqtt брокер тоже предустановлен и настроен. Свой репозиторий для zigbee2mqtt.

Офигенно что в контроллере выходы под 2 шины rs-485 и сразу в них удобно можно забрать питание. Его можно отключить при необходимости через интерфейс WB. 2 шины значит больше можно подключить устройств или устройства с другими настройками скорости.

Для тренировки тоже подходит, можно в любой момент сбросить до заводских и вернуть последнюю прошивку.

Может и ерунда, но крепление на din рейку удобно … а то мне приходится крепить orange pi как получится на стяжках где-то в щитке.

Не очень понравилось

Размер хранения rootfs который 2 гб. Я не сразу обнаружил проблему забитого рута, но когда уже прогонял компиляцю esphome сразу стало ясно (большими красными буквами). В чем проблема - что нужно адаптировать контенеры и все что ставишь на контроллер на большой раздел, так как по дефолту все ставится в рут. Я чуть помучился и собрал для себя скрипты и удобные образы под Portainer что б не мучиться.

Вот размер забитый roofts … хотя я старался все перенести в большой раздел.

Вот мой сервер тестовый на Арбиан и его “скромный” запас

Стоимость котроллера и датчиков - не скажу что большая, но когда смотрю что могу взять мощный orange pi 5 plus на гигов 32 оперативы с ускорителем для Frigate то становится как то неуютно. Однако, расположение на дин рейке и встроенные модули, да и сама начинка контроллера в купе с документацией и большим трудом по разному оборудованию стоит своих денег.

Слабая поддержка сторонних систем, например Home Assistant. Черт ногшу смомит в разных репозиториях и адаптациях к WB под HA, но я нашел вроде как официальны. Мне бы WB Engine сделать бы более удобным и добавить бы функций какие параметры отправлять. Я столкнулся с тем что некоторые параметры от диммера нельзя передать в HA. Может я чего не нашел как настроить.

Что хотелось бы попробовать

Работу с KNX, но под рукой не было оборудования - может в дальнейшем. Много обращений от клиентов со старыми система ушедших из России knx производителей.

Предварительная настройка и связь со сторонним Home Assistant через MQTT

Тут настроим сам контроллер, обновим и добавим устройства. Потом все это прокинем в Home Assistant на другой машине. Идея такая - сделать WB контроллер чисто под управление умными устройствами, а HA уже как главный хаб управления. Так мы можем не сильно напрягать контроллер WB и повысить стабильность умного дома.

Zigbee2mqtt тоже установим и направим на другую машину, так как штатный способ передавать устроства от WB контроллера в HA немного так сказать неудобный. Через такой способ будем передавать устройства работающие по modbus.

Особенности подключения и настройки тут WirenBoard 8 контроллер

Многие вещи взял из оф инструкции https://wiki.wirenboard.com/wiki/Wiren_Board_8.5

Первое подключение

Оба Ethernet порта контроллера настроены на получение IP-адреса по DHCP, поэтому вам понадобится роутер с настроенной раздачей IP-адресов — обычно это любые роутеры, стоящие в квартире или офисе:

  1. Возьмите патчкорд с коннекторами RJ-45 и установите его одной стороной в свободный порт роутера, а другой в один из портов контроллера.
  2. Зайдите в настройки вашего роутера и посмотрите, какой IP-адрес он выдал контроллеру. Другие способы узнать IP-адрес.
  3. Откройте на компьютере, подключённому к тому же роутеру, что и контроллер, веб-браузер и введите IP-адрес из предыдущего пункта.

Очень важно поменять права доступа.

Для изменения настроек контроллера вам нужен уровень доступа Администратор, который можно выставить в разделе НастройкиПрава доступа. Без этого ничего дальше настроить не получится.

Обновим прошивку

Прошивку через веб-интерфейс удобно использовать, если на компьютере нет интернета и вы используете только встроенное в контроллер ПО. Способ подходит для обновления внутри веток stable или testing, а также для перехода со stable на testing.

При обновлении сохраняются пользовательские файлы и настройки только в /mnt/data, но стороннее ПО будет удалено. Рекомендуем сделать резервную копию.

Cсылка для скачивания FIT-файлов в веб-интерфейсе контроллера Wiren Board

Вам понадобится fit-файл прошивки для вашей версии контроллера:

Также в свежих релизах FIT-файл можно скачать по ссылке в веб-интерфейсе: НастройкиСистема При загрузке прошивки через веб-интерфейс имя файла не имеет значения.

У нас такой экран в устройствах, 1 wire нашелся автоматически и уже показывает данные.

Дополнительное обновление через командную строку

Вход через ssh для доступа к командной строке подключитесь к контроллеру по протоколу SSH или через отладочный порт. Включение прав администратора Логин и пароль по умолчанию root/wirenboard.

Обновляем всю эту систему:

sudo apt update && apt upgrade -y

Установи правильный часовой пояс, чтобы логи и расписания работали корректно.

dpkg-reconfigure tzdata

Следуй инструкциям на экране. Тебе нужно будет выбрать Europe, а затем Moscow (или другой подходящий для тебя часовой пояс).

Установить VS code для удобства

Не обязательно, но очень удобно в дальнейшем работать с файлами и конфигурациями. Скрипт адаптирован под перенос на большую память что бы не забивать rootfs.

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/smirnowegor/HA_Container/main/vscodeoneclick.sh)"

После установки нам предложат адрес и переходим по предложенному адресу. Открываем папку через “/” и будет доступна вся система.

Установка происходит на /mnt/data и не забивает rootfs

==============================================
root@wirenboard-A4DURUYC:~# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/root      ext4      2.0G  747M  1.1G  41% /
devtmpfs       devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs          tmpfs     2.0G  4.0K  2.0G   1% /dev/shm
tmpfs          tmpfs     787M  1.3M  786M   1% /run
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
/dev/mmcblk0p6 ext4       55G  1.1G   51G   2% /mnt/data
tmpfs          tmpfs     394M     0  394M   0% /run/user/0
root@wirenboard-A4DURUYC:~# lsblk -f
NAME         FSTYPE FSVER LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINT
mmcblk0
├─mmcblk0p1
├─mmcblk0p2  ext4   1.0   rootfs1 53108673-ae75-4681-8b39-5780e6a8e8ce    1.1G    38% /
├─mmcblk0p3  ext4   1.0   rootfs2 1230e5bc-0fa4-4d87-b7b0-f088703ebeef
├─mmcblk0p4
├─mmcblk0p5  swap   1             c6489b97-e46e-446e-8738-9428774a380b                [SWAP]
└─mmcblk0p6  ext4   1.0   data    20e1d3ce-b157-4346-9f2e-4194196129ea   50.9G     2% /mnt/data
mmcblk0boot0
mmcblk0boot1

Найдем и подключим устройства

Подготовим и проверим оборудование.

Настройки - Конфигурационные файлы - Настройка драйвера Serial-устройств

Тут можем найти все устройства автоматически, ну почти все… счетчик сторонний сам не нашелся.

Счетчик можно добавить из шаблонов

Все устройства прокинулись, их нужно предварительно настроить. Это нужно сделать до того как полетят в Home Assistant. Я настрою в отдельных статьях

Немого про фейл, у меня скакнуло электричество во время обновления и пришлось восстанавливать прошивку датчика https://wiki.wirenboard.com/wiki/Wb-mcu-fw-updater#Восстановление_(recover) . Я подумал что хана датчику, но нет, он восстановился.

Обновление устройств идет по воздуху, что отлично

Установка Wb-Engine для публикации в Home Assistant и настройка моста mqtt брокеров.

Установка Wb-Engine на WB.

Wb-Engine устанавливается на сам контроллер WB и “отправляет” выбранные сущности в броке с автоопределением для Home Assistant. Кто его потом заберт - свой локальный HA или через мост на другой брокер mqtt в другой HA не так важно.

Установка и настройка wb-engine на Wiren Board

  1. Подключись по SSH к устройству WB.
  2. Установи wb-engine, чтобы автоматически создать виртуальные устройства и экспортировать их в Home Assistant:
wget https://github.com/4mr/wb-engine/releases/latest/download/wb-engine_arm64.deb
dpkg -i wb-engine_arm64.deb
rm wb-engine_arm64.deb

Вот наш интерфейс

Мост из Home Assistant mosquitto брокера в WB

Теперь можно прокинуть в Home Assistant устройства от WB. На этом шаге будем перекидывать информацию c WB на сервер на другой машине, вернее забирать с другого сервера.

Внимание! По дефолту при установке моста устройства от Wb перелетают на сервер HA, но и с сервера HA перетают на WB. Можно включить только от WB но тогда HA не сможет переключать выключатели так как связь односторонняя.

Вот тут прям насыпало от моего домашнего сервера.

В принципе, если использовать двухстороннюю связь при учете работы WB как Modbus и Zigbee2mqtt сервер - то все будет нормально. TBD найти более практичный способ связи что бы не грузить WB лишними сущностями.

Мост для Home Assistant container

ПОСЛЕ НАСТРОЙКИ ИЛИ ВНЕСЕНИЯ ПРАВОК - нужно перезагружать Mosquitto

С контейнерной версии Home Assistant все очень просто, находим наш mosquitto конфиг и добавляем мост. Можно сделать через VS Code редактор. Нужно сделать что бы один HA смотрел на WB контроллер. 192.168.2.39:1883 - это мой WB

Для этого добавляем мост и рестартим контейнер.

# --- ваши текущие настройки ---
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

allow_anonymous true

listener 1883
protocol mqtt

listener 9001
protocol websockets

# --- начало настроек моста (двухсторонняя связь) ---
connection ha_to_wb
address 192.168.2.39:1883

# client id'ы (уникальные)
local_clientid local.ha-wb-bridge
remote_clientid ha-wb-bridge-192168239

# сессии и совместимость
cleansession false
try_private false
bridge_protocol_version mqttv311
start_type automatic
keepalive_interval 60

# если требуется аутентификация на удалённом брокере
#remote_username your_wb_username
#remote_password your_wb_password

# пересылаем всё в обе стороны
topic # both 0 "" ""

# # пересылаем из локального брокера на удалённый (out)
# topic # out 0 "" ""

# # пересылаем из удалённого брокера в локальный (in)
# topic # in 0 "" ""

В HA добавляем свой сервер, а мост автоматически покдлючится

Мост в Home Assistant Operating System

В Home Assistant OS чуть проблемнее, но все же. Я использую File Editor и снимаю ограничения на папки - снимаем галку Enforce Basepath (If set to true, access is limited to files within the /config directory.)

В аддоне Mosquitto активировать возможность кастомной конфигурации в UI Home Assistant:

customize:
  active: true
  folder: mosquitto

Это позволит Mosquitto читать конфигурационные файлы из папки /share/mosquitto/. (Home Assistant Community)

Создать папку mosquitto в директории share (она общедоступна для аддонов). Например:

/share/mosquitto/

В этой папке создать файл конфигурации моста, например mosquitto_bridge.conf. В него поместить настройки bridge:

Пример :

# --- bridge to WB ---
connection ha_to_wb
address 192.168.2.39:1883  #адрес WB

# уникальные id (убираем шанс на конфликт)
local_clientid local.ha-wb-bridge
remote_clientid ha-wb-bridge-192168210

# старт сразу и автоматически
start_type automatic

# session: сохраняем (чтобы не терять подписки)
cleansession false

# не использовать mosquitto private bridge extension (совместимость с другими брокерами)
try_private false

# выставить явную версию MQTT (mqttv311 обычно рабочая)
bridge_protocol_version mqttv311

# keepalive — не слишком маленький
keepalive_interval 60

# уведомления от моста (необязательно) — отключим, чтобы убрать лишние сообщения
notifications false

# если требуется аутентификация на удалённом брокере
#remote_username your_wb_username
#remote_password your_wb_password

# --- выбери один вариант и раскомментируй ---
# пересылаем всё в обе стороны
topic # both 0 "" ""

# пересылаем из локального брокера на удалённый (HA → WB)
# topic # out 0 "" ""

# пересылаем из удалённого брокера в локальный (WB → HA)
# topic # in 0 "" ""
# --- конец блока ---

Убедиться, что основной mosquitto.conf (тот, который стартует брокер в аддоне) включает в себя директиву подключения каталога include_dir на папку /share/mosquitto. Обычно аддон сам содержит строку вроде:

include_dir /share/mosquitto

Если настроен customize: active: true, должно быть активировано. (Home Assistant Community)

Перезапустить аддон Mosquitto Broker через UI/Ha OS. После перезагрузки в логах брокера должна быть информация, что мост установился: Bridge connecting…, подписка и т.д. (Home Assistant Community)


Вот подключился мост и это видно в логах.

Возвращаемся в WB и переходим в конфиги WB Engine Configuration. Выбираем какие сущности хотим иметь в HA и отправляем туда. Немного неудобно по одному добавлять, но как есть. При добавлении нажимаем запись и сразу появляется в HA, не надо перезагружать брокера или сам HA.

Сразу появился на HA Container

И видно на HA OS

Установка Zigbee2mqtt на WB и трансляция на серверы HA.

У меня стоит модуль с zigbee, в слоте 1.

Его нужно сначала включить в настройках

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

Дальше через терминал запустить мой скрипт, который сам найдет нужный модуль и заполнит конфигурацию. Дополнительно установит wb-zigbee2mqtt/ Следим за установкой, потому что будут вопросы для подтвержения и выбора.

bash <(curl -L https://raw.githubusercontent.com/smirnowegor/ESP-WB/refs/heads/main/fastZ2MWB.sh)

После успешной установки видим

[INFO] Сервис Zigbee2MQTT успешно запущен! ✅
---------------------------------------------------------
Веб-интерфейс: <http://192.168.2.39:8080>
MQTT сервер: mqtt://localhost
Конфиг: /mnt/data/root/zigbee2mqtt/data/configuration.yaml
---------------------------------------------------------

[INFO] Проверка места на rootfs:
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       2.0G  931M  897M  51% /

У нас все установлено. Теперь добавляя устройства через интерфейс они сразу окажутся в наших двух серверах HA на которых настроили мост.

Можно конечно сразу настроить на отправку на нужный сервер в конфигурации zigbee2mqtt, но пусть лучше обработкой будет заниматься WB. Логику и автоматизации и прочее грузанем на другой сервер. Если вдруг нужно то конфиг у zigbee2mqtt будет такой:

homeassistant:
  enabled: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://192.168.2.17:1883 #указываем наш брокер на другой машине 
  
serial:
  port: /dev/ttyMOD1
  adapter: zstack
  rtscts: false
advanced:
  last_seen: epoch
  pan_id: GENERATE
  ext_pan_id: GENERATE
  network_key: GENERATE
frontend:
  enabled: true
  port: 8080
  host: 0.0.0.0
permit_join: true
version: 4

После первой загрузки и добавлении устройств конфигурация zigbee2mqtt поменяется. Менять ее уже будет нельзя иначе устройства пропадут. Это касается вот этой части:

  pan_id: GENERATE
  ext_pan_id: GENERATE
  network_key: GENERATE

Он превратится в примерно конфигурацию. Сама конфигурация находится по адресу - root/zigbee2mqtt/data/configuration.yaml

homeassistant:
  enabled: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: /dev/ttyMOD1
  adapter: zstack
  rtscts: false
advanced:
  last_seen: epoch
  pan_id: 5200
  ext_pan_id:
    - 62
    - 213
    - 22
    - 170
    - 206
    - 8
    - 81
    - 735
  network_key:
    - 172
    - 14
    - 180
    - 215
    - 103
    - 76
    - 197
    - 1
    - 183
    - 5
    - 36
    - 144
    - 68
    - 23
    - 120
    - 10
frontend:
  enabled: true
  port: 8080
  host: 0.0.0.0
permit_join: true
version: 4
devices:
  '0x00158d00022ab350':
    friendly_name: Я прямо на WB
  '0xf84477fffe19e3f4':
    friendly_name: WB Комбинированный датчик

На HA OS

И на HA Container

Прикольно, при добавлении новых устройст в Z2m они прокидываюются в карточки и получается в систему на wb … вот только это розетка и я не вижу переключателя вкл/выкл.

Итого

Мне понравился контроллер и я по возможности буду его использовать, особенно при заказах на проводные умные дома. В остальных случаях мне проще использовать Orange Pi под контейнер, а Raspberry Pi под HAOS.

Настройка полноценного сервера Home Assistant Container на WB

https://teletype.in/@godisblind/F-3V9VCngZd


Способ 1 Поддержать автора

Способ 2 https://donate.stream/yoomoney410013774736621

Способ 3 телеграм https://t.me/tribute/app?startapp=dvHM

или через криптокошелёк (Только USDT) TCHekdJZFndXpDrHZGuTmqFNcqhWBTTzPr


Связаться со мной. (Консультации, проектирование и обучение)

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

Мой телеграм канал, там все быстрее обновляется телеграм.

Сайт smart4home.ru и альтернативный Умный дом на любом этапе

Соц сети: RuTube канал Удобный дом / You Tube канал Удобный дом Яндекс Дзен: Удобный дом / InGram

Платформы специалистов: Авито / Профи.ру / Яндекс Услуги https://uslugi.yandex.ru/profile/EgorSmirnov-2294380?from=telek