Найти в Дзене
Удобный дом!

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

Готовый и рабочий сервер должен тянуть на себе полностью Home Assistant и дополнительные программы типа EspHome. Конечно, нагружать такаие не очень мощные платы компиляцией тяжелого кода от ESPHome кажется бессмысленным, но вдруг нужно поправить прям с объекта. Я ставлю все контейнеры через Portainer - мне так удобнее, экономить ресурсы в этом я точно не хочу. Сама модульность контроллера и вшитые порты это огонь, очень удобно. Все это сопровождается хорошей проработкой дров и адаптацией на уровене софта. Модули расширения https://wirenboard.com/ru/catalog/wb-extensions/ На удивление, мне плата показалась шустрой, а компиляция кода в ESPhome даже быстрее чем на orange pi 3b. Точно можно на небольшую квартиру или дом сделать полноценный удобный сервер в электрощит. Я сделал такой мини набор приложений которые позволят удобно обустроить УД на Home Assistant. На многое у меня готовы скрипты/образы на гитхабе. Они специально адаптированы что бы не забивать и без того малый раздел rootfs, а
Оглавление

Готовый и рабочий сервер должен тянуть на себе полностью 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-адрес из предыдущего пункта.

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

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

-2
-3

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

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

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

не забудем про Поддержать автора - любая помощь поможет закупить и протестировать новые гаджеты! спасибо! Способ поддержать через телеграм https://t.me/tribute/app?startapp=dvHM

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

-4

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

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

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

-5
-6

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

-7

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

Вход через 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)"

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

-8

Установка происходит на /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-устройств

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

-9

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

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

-10

Счетчик электричества 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

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

-11

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

-12

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

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

Установка Docker

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

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

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

-13
-14

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

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

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

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

-15

Установка Home Assistant

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

-16

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

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

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

-17

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

-18

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

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

-19
-20

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

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

-21

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

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

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

-22

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

В HA добаляем MQTT

-23

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

-24
-25

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

-26
-27

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

Matter сервер

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

MatterWB.yaml

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

-28

Whats up docker

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

Создать сеть в терминале вбиваем

docker network create homeiot_internal

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

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)"

-29

Далеко не отходим и установим удобную штуку для размещения ссылок на контейнеры прямо в 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

-30

Теперь перезагружаем 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

-31

Установка 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

-32

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

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

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

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

-33

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

-34

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

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

-35

Внутри HA

-36

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

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

-37

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

-38

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

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

-39

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

-40
-41

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

-42
-43

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

-44
-45

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

-46
-47

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

-48

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

-49
-50

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

-51
-52

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

-53

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

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 немного забит из-за тестов).

-54
-55

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

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

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

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

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

-56

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

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

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

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

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

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