Прошу поставить лайк авансом и подписаться. Это помогает продвижению и развитию канала. Если статья не понравится - это легко отменить. Спасибо!
Всем привет. В данной статье я хотел бы рассказать о том, как я устанавливал и настраивал Zigbee2mqtt и MQTT-брокер, и добавлял их в HomeAssistant.
Предыстория
В тот момент, когда я решил переехать с RaspberryPi на более мощный сервер и установить туда ProxMox, я задумался об изоляции некоторых инструментов в отдельные контейнеры. Что бы они не зависели от других программ. Изучая ProxMox я наткнулся на очень интересный сайт - хелпер для ProxMox. Там есть все необходимые скрипты для установки контейнеров и виртуальных машин.
Таким образом я развернул в ProxMox 2 отдельных контейнера - Zigbee2mqtt и MQTT-брокер.
Установка
Вся установка сводится к тому, что бы запустить в оболочке shell вашего сервера скрипт для установки, который прописан на сайте. Можно задать дополнительные параметры, такие как IP адрес, количество памяти, процессоров и прочего, в момент установки, нажав кнопку Advanced в предложенном меню установки.
Настройка
MQTT
Настройка MQTT после установки описана на сайте, но я повторю и тут. Нужно зайти в контейнер командой "pct enter 101", где 101 - номер контейнера, и в терминале ввести следующее:
mosquitto_passwd -c /etc/mosquitto/passwd <user>
chown mosquitto:mosquitto /etc/mosquitto/passwd
systemctl restart mosquitto
<user> - имя пользователя для вашего брокера. Можно задать любое. После запуска первой команды вам будет предложено задать пароль для вашего пользователя. Его необходимо запомнить.
Zigbee2MQTT
После установки Zigbee2MQTT нужно прокинуть ваш координатор в контейнер, если он подключен по USB, а не сетевой. Для этого зайдём на сервер и отредактируем файл конфигурации "/etc/pve/lxc/103.conf" и добавить в конец следующие строки
lxc.mount.entry: /dev/serial/by-id dev/serial/by-id none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
Указать вместо ttyUSB0 ваше устройство. Узнать его можно командой
ls -la /dev/serial/by-id
После этого нужно перезапустить контейнер.
Затем переходим в контейнер и редактируем файл "/opt/zigbee2mqtt/data/configuration.yaml". Содержимое файла можно найти по ссылке ниже:
После этого нужно перезапустить Zigbee2mqtt командой "systemctl restart zigbee2mqtt.service".
Теперь переходим в браузере по IP адресу вашего контейнера и порту 9442, откроется интерфейс Zigbee2mqtt. Добавляем устройства, настраиваем имена, в общем начинаем работать.
HomeAssistant
После установки и запуска MQTT-брокера, в HomeAssistant в разделе интеграций должна автоматически появиться интеграция MQTT. Если нет - добавляем вручную из списка. В настройках указываем логин и пароль, который вы задавали при настройке. И всё, интеграция должна работать. И подтягивать устройства из Zigbee2mqtt.
Итоги
В итоге у нас работают 2 независимых друг от друга контейнера. А так же не зависимых от HomeAssistant. И при перезагрузке виртуальной машины с HomeAssistant эти контейнеры продолжат работать и собирать/передавать данные.
В комментариях прошу указать на ошибки в статье, может что-то у вас не получилось, советы по оформлению. Отвечу всем и как можно быстрее.
Всем спасибо за чтение, за интерес, комментарии. Ссылка на добровольные донаты. Никого не заставляю, но буду благодарен.
Подписывайтесь на мой канал в телеграме https://t.me/kai_zer_ru_public