Docker часть 8: ESPHome
Если вам нравится проектировать системы с микроконтроллерами ESP8266 и ESP32, обязательно загляните в раздел ESPHome, если вы еще этого не сделали.
С помощью этих небольших и бюджетных контроллеров, можно создавать свои собственные устройства. Вы ограничены только своей фантазией. Более подробную информацию можно почитать на официальном сайте.
Установка ESPHome контейнера
Расширяем наш docker-compose.yaml
конфигом для контейнера ESPHome.
version: '3.0'
services:
[...]
esphome:
container_name: esphome
image: esphome/esphome
restart: unless-stopped
privileged: true
ports:
- "6052:6052/tcp"
environment:
- TZ=Europe/Moscow
volumes:
- ./esphome/config:/config
- /etc/localtime:/etc/localtime:ro
Добавление в Home Assistant
Для удобства использования добавим ESPHome в боковую колонку, так же как мы делали с остальными интеграциями.
Открываем основной файл конфиграции Home Assistant configuration.yaml
и добавляем новую панель.
panel_iframe:
portainer: # часть 2
[...]
configurator: # часть 4
[...]
adminer: # часть 5
[...]
zigbee2mqtt: # часть 7
[...]
esphome:
title: ESPHome
icon: mdi:chip
url: "http://<ip>:6052"
require_admin: true
Далее перезагружаем Home Assistant и у нас появляется возможность зайти в web интерфейс.
Так как мы выставили privileged: true
для контейнера, то USB устройства будут автоматически доступны в панели.
Давайте попробуем добавить новое устройство со стандартным конфигом. В качестве железки будет выступать ESP32-WROOM-32, которая раньше не использовалась. Процесс прошивки мы опустим, для этого воспользуйтесь статьей прошивка ESP32/ESP8266.
ESP32 будет содержать всего один датчик, со статусом работы. Чтобы можно было отследить в Home Assistant.
binary_sensor:
- platform: status
name: ESPHome Hello World Status
Как видно Docker контейнер с ESPHome отрабатывает как надо. Теперь вы можете управлять и прошивать ваши устройства прямо из интерфейса Home Assistant.
Итоговая структура проекта
home-assistant
├── .env
├── docker-compose.yaml
├── esphome
│ └── ...
├── fileeditor
├── homeassistant
├── mosquitto
├── portainer
└── zigbee2mqtt