October 1

Полноценный сервер с Home Assistant Container на Wirenboard 8

Готовый и рабочий сервер должен тянуть на себе полностью Home Assistant и дополнительные программы типа EspHome. Конечно, нагружать такаие не очень мощные платы компиляцией тяжелого кода от ESPHome кажется бессмысленным, но вдруг нужно поправить прям с объекта. Я ставлю все контейнеры через Portainer - мне так удобнее, экономить ресурсы в этом я точно не хочу.

Сама модульность контроллера и вшитые порты это огонь, очень удобно. Все это сопровождается хорошей проработкой дров и адаптацией на уровене софта. Модули расширения https://wirenboard.com/ru/catalog/wb-extensions/

На удивление, мне плата показалась шустрой, а компиляция кода в ESPhome даже быстрее чем на orange pi 3b. Точно можно на небольшую квартиру или дом сделать полноценный удобный сервер в электрощит. Я сделал такой мини набор приложений которые позволят удобно обустроить УД на Home Assistant.

  • VS code для более удобного копания в конфигурациях.
  • Docker для загрузки Portainer.
  • Wb-Engine плагин для отправки подключаемых устройства сразу с WB на Home Assistant.
  • Zigbee2mqtt настроенный на локальный Home Assistant через встроенный Mosquitto.
  • Matter сервер, так как таких устройств становится все больше.
  • HACS понятное дело, без него HA не полноценная система.
  • ESPHome как очень крутой инструмент добавления и настройки кастомных устройств.
  • Whats up docker для контроля контейнеров и получение информации по необходимости обновления прямо в HA.
  • Duplicati как резервное копирование, так как теперь бекапы HA не полноценные в контейнере.

На многое у меня готовы скрипты/образы на гитхабе. Они специально адаптированы что бы не забивать и без того малый раздел rootfs, а писать сразу на большой раздел. Пришлось немного погонять скрипты, так что если вылезет ошибка - сообщите. https://github.com/smirnowegor/ESP-WB/tree/main

Это будет полная установка от чистой системы до полноценного сервера, некоторые шаги будут повторяться с настройками Это основная статья где подробно про мосты с другими HA и тестированием оборудования от WB.

В конце будет бонус раздел, в котором после (почти) каждого элемента будет скринт из таблицы состояния системы (htop). Понять насколько какой элемент добавляет нагрузки и съедает ресурсы.

Процесс установки HA на Wirenboard 8 (2507 stable).

Установка прошивки и начальные настройки.

Многие вещи взял из оф инструкции 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. Порт лучше выбрать 9091, так как дефолтный 8080 может быть занят Zigbee2mqtt

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://teletype.in/@godisblind/8iFvMlHuuSU

Диммер https://smart4you.notion.site/WB-MDM3-24e8751588a580348563e51549561444?pvs=74

Датчик температуры и влажности https://smart4you.notion.site/WB-Modbus-20e8751588a580a9b57cf0f4cc1b5621?pvs=74

WB Комбинированный датчик (темп, движения, СО2…) + Zigbee https://smart4you.notion.site/WB-2-Zigbee-26c8751588a580eaa1a5e6c80cd3e7a8?pvs=74

Счетчик Меркурий 230 как бонус https://smart4you.notion.site/3-2009-26d8751588a58085920fdf5f6d759fa7#26d8751588a58085920fdf5f6d759fa7

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

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

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

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

  1. Подключись по SSH к устройству WB (192.168.2.39).
  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

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

Через Engine не все перелетают параметры в MQTT сразу, те что не опрашиваются то отображатся для передачи в HA не будут. Нужно сначала настроить опрос = “включить” параметр, а потом его уже можно будет передать в НА.

Не все параметры судя по всему можно отправить … например настройки скорости затемнения и прочих. Входы выбор действий списком…. но я и в Устройствах на дашборде тоже не вижу в WB - а вот и ответ.

Сейчас в WB Engine действительно есть ограничение: он в MQTT и, соответственно, в HA отдает только те параметры, которые помечены как контролы (controls) в описании устройства. Конфигурационные параметры драйвера (вроде «Кривая диммирования») туда не попадают автоматически — это сделано сознательно, чтобы не засорять MQTT служебными настройками.

Установка Docker

Что бы работали контейнеры нужнен докер) оно и понятно. Тут главное отправить докер именно на большую память, а также что бы все контейнеры и тяжелые образы были на большой памяти. Скрипт автоматический, но следить нужно.

curl -fsSL https://raw.githubusercontent.com/smirnowegor/ESP-WB/main/fastDockerWb.sh | bash

После установки докера выглядит так, тут важно конечно следить за ресурсами.

Устанавливаем Portainer

Теперь нам нужна приложуха для установки контейнеров, хотел бы использовать Dockge, но он не работает в ингресс. Зальем тоже скриптом. В скрипте установка

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/smirnowegor/ESP-WB/refs/heads/main/fastPortainerWB.sh)"

После установки не сильно нагрузило систему

Установка Home Assistant

Теперь сам великий Home Assistant - идем в Portainer и устанавливаем в разделе Stacks. Репозиторий https://github.com/smirnowegor/ESP-WB

Репозиторий тот же, а название файла homeassistantWB.yaml организацию файла можно посмотреть в гите https://github.com/smirnowegor/ESP-WB/blob/main/homeassistantWB.yaml

Для входа адрес ВашIP:8123

При первом входе нашел кучу устройств из моей сети.

О, блутус тоже на базе сразу

Установка Zigbee2mqtt на WB и добавление в HA.

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

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

Находится в конфигурационных файлах в Модули расширения и порты

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

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

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

У нас все установлено.

В HA добаляем MQTT

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

Любые устройства подключенные через Z2M теперь залетают в Home Assistan. Можем добавить и устройства от самого контроллера через wb-engine который в веб интерфейсе WB, все тоже полетит автоматом в HA.

Теперь установим доп приложения.

Matter сервер

Matter сервер, пока мало им пользуюсь, но вдруг нужен будет. Установка как и выше через Portainer, репозиторий тот же https://github.com/smirnowegor/ESP-WB Имя образа

MatterWB.yaml

В HA в установке интеграций добавляем Matter. Адрес ставить не обязательно, можно просто согласиться.

Whats up docker

https://getwud.github.io/wud/#/?id=introduction Удобная приложуха для наблюдения за контейнерами и нормально отправляет данные через mqtt

Создать сеть

docker network create homeiot_internal

Последний контейнер - это наблюдатель за контейнерами) Whats up docker. имя

wudWB.yaml

и адрес http://192.168.2.39:3006/containers Ваш IP и порт 3006

Вот так можно следить за контейнерами. Портейнер использую старой версии что бы можно было добавить через Ingress

HACS очень нужен

Отличненько от предыдущего метода, быстро и удобно. Продолжаем.

Надо установить HACS - его установка должна быть в той же папке что и сам Home Assistant - иначе не встанет, скрипт должен сам найти нужную папку.

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

Далеко не отходим и установим удобную штуку для размещения ссылок на контейнеры прямо в HA как это происходит с аддонами. https://github.com/lovelylain/hass_ingress

Что бы было удобно все делать из боковых панелей мы сразу добавим VS Code. Для этого в этом сам vs code отправляемся и находим Home Assistant configuration.yaml (по скриптам тут /mnt/data/udobnidom/homeassistant/config) и вставляем следующее

ingress:
  vscode:
    work_mode: ingress
    title: VS Code
    icon: mdi:microsoft-visual-studio-code
    url: <http://192.168.2.39:9091/>  # Это адрес машины и порт который выбрали при установке VS code

Теперь перезагружаем Home Assistant и у нас в боковой панели удобный и знакомый по supervised VS Code.

Добавим и другие контейнеры (Не забываем менять адрес на свой!)

ingress:
  vscode:
    work_mode: ingress
    title: VS Code
    icon: mdi:microsoft-visual-studio-code
    url: <http://192.168.2.39:9091/>  # Это адрес машины и порт который выбрали при установке VS code
  esphome:
    work_mode: ingress
    title: ESPHome
    icon: mdi:chip # Подходящая иконка для ESPHome
    url: <http://192.168.1.74:6052/>

  zigbee2mqtt:
    work_mode: ingress
    title: Zigbee2MQTT
    icon: mdi:zigbee # Иконка Zigbee
    url: <http://192.168.1.74:8080/>

  portainer:
    work_mode: ingress
    title: Portainer
    icon: mdi:docker # Иконка Docker, так как Portainer управляет контейнерами
    url: <http://192.168.1.74:9000/>

Все удобно, а главное что работает и по внешним ссылкам без ошибки http-httpS

Установка ESPhome

Nехнически установить и запустить ESPHome (dashboard/CLI) на самом Wiren Board можно (через Docker или pip), но это не “путь по умолчанию” для сообщества WB. Официальная документация Wiren Board ориентирует на подключение ESPHome‑устройств по MQTT через конвертер esphome2wb, а не на хостинг ESPHome на контроллере. Это связано с ресурсами: сборки под ESP‑IDF требуют много места и RAM; на WB это часто выливается в ошибки “No space left on device”, если не вынести кэш и /tmp на большой раздел.

Долго шлифовал конфигурацию и можно загрузить адаптированную под WB. Установка через Portainer, репозиторий тот же https://github.com/smirnowegor/ESP-WB

espHomeWB.yaml

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

Бекапы через Duplicati

Я использую эту приложуху для установок HA в контейнере, значит и тут поможет. Самая хорошая фишка - загрузка в облако без танцев с бубном.

Мы лишь установим через адаптированный скрипт. В процессе будут введены настройки и пароли.

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/smirnowegor/ESP-WB/refs/heads/main/duplicatiFastWB.sh)"

Добавляем интеграцию в Home Assistant репозиторий нужно добавить в HACS https://github.com/txxa/hass-duplicati

Для этого в Добавить интеграции добавляем Diplicati и вбиваем http://localhost:8200 и наш пароль от входа в интерфейс (не ключ шифрования) . Будет работать только после создания первого бекапа, как его делать тут

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

Все можем контролировать из HA

Удаленный доступ можно настроить по аналогии

Как тут https://teletype.in/@godisblind/eALTwAArLCo

Работа системы

Все достатно шустро работает, по идее можно еще установить карту памяти что бы добить нужными приложениями… но надо ли. Например Frigate я даже и пробовать не буду ставить - он для другой машинки.

У меня все что нужно нашел внутри сети и сам даже добавил весы от сяоми.

Все что нужно есть

В принципе, если бы не цена то был бы мой любимчик - поставил в щит и забыл + ещё интерфейсов дофига. Возможностей тоже много - knx, opentherm и другое веселье) Куча модулей!!!!

Памяти осталось много свободной


Внутри HA

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

Сильно не перегревается, но у меня в тестовом варианте не сидит в шкафу.

Не все загрузил, но это тестовый вариант.

Загрузка системы с добавлением сервисов.

Чистая система

После обновления, vs code

Подключение устройств, wb-engine и docker

После установки Portainer

После установки Home Assistant

После установки Z2M

После установки WUD, Matter, HACS

После установки ESPHome

Компиляция сильно нагрузит процессоры. Вот при предыдущих пусках

По времени конечно мощно … понятно что лучше готовить на другой машине прошивки.

size.
RAM:   [=         ]  14.3% (used 46936 bytes from 327680 bytes)
Flash: [========= ]  86.9% (used 1594584 bytes from 1835008 bytes)
Building .pioenvs/plant-sensor/firmware.bin
Warning: DEPRECATED: 'esptool.py' is deprecated. Please use 'esptool' instead. The '.py' suffix will be removed in a future major release.
Creating ESP32C3 image...
Successfully created ESP32C3 image.
merge_factory_bin([".pioenvs/plant-sensor/firmware.bin"], [".pioenvs/plant-sensor/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: plant-sensor.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /build/plant-sensor/.pioenvs/plant-sensor/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0x195660 bytes to file '/build/plant-sensor/.pioenvs/plant-sensor/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /build/plant-sensor/.pioenvs/plant-sensor/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/plant-sensor/firmware.bin"], [".pioenvs/plant-sensor/firmware.elf"])
Copied firmware to /build/plant-sensor/.pioenvs/plant-sensor/firmware.ota.bin
======================== [SUCCESS] Took 1211.06 seconds ========================

Финальная система (может rootfs немного забит из-за тестов).

#сделайсам #обучение #настройка #планирование #wirenboard

Способ 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