ESPHome
ESPHome — инструмент, который превращает недорогой модуль на чипе ESP32 или ESP8266 в устройство для Home Assistant: пишете конфигурацию, ESPHome собирает из неё прошивку и заливает её на модуль. Дальше это уже не «плата с проводками», а полноценное устройство с собственными сущностями в интерфейсе.
Когда готовое устройство не подходит
Розница закрывает самые массовые сценарии — розетка, лампа, датчик движения стандартной формы. Но как только нужна нестандартная комбинация — например, показания конкретного промышленного датчика давления, управление нестандартным клапаном, реле, встроенное в самодельный щиток, — готового продукта под неё чаще всего просто не существует. ESPHome закрывает этот разрыв: берётся дешёвый модуль с нужным набором выводов, к нему по GPIO подключается любой совместимый по электрическим параметрам датчик или исполнительное устройство, а логику того, что откуда читать и чем управлять, вы описываете сами.
Всё устройство целиком — один YAML-файл
Конфигурация ESPHome — это один файл, где описано буквально всё: имя устройства, параметры домашней Wi-Fi-сети, к каким выводам что подключено, как называются получившиеся сущности, с какой периодичностью опрашивать датчик. Пример конфигурации датчика температуры-влажности с одним реле:
esphome:
name: koridor-datchik
esp32:
board: esp32dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Коридор Температура"
humidity:
name: "Коридор Влажность"
update_interval: 60s
switch:
- platform: gpio
pin: GPIO5
name: "Коридор Реле"
Секреты (пароль от Wi-Fi, ключ шифрования API) в реальном проекте
выносятся в отдельный файл secrets.yaml, а не пишутся прямо в
конфигурации устройства, — так один и тот же файл устройства можно
спокойно хранить и переиспользовать, не боясь показать лишнее.
Прошивка своими руками
Первая заливка прошивки на новый модуль всегда идёт по проводу: модуль подключается по USB к компьютеру, на котором стоит ESPHome, инструмент собирает прошивку из конфигурации и записывает её через последовательный порт. После этого первого шага модуль появляется в сети как самостоятельное устройство и обновляется дальше уже без кабеля.
Обновления по воздуху — только внутри домашней сети
После первой заливки по проводу последующие обновления прошивки происходят по Wi-Fi: ESPHome находит устройство по его адресу в домашней сети и передаёт новую прошивку напрямую, без USB-кабеля. Это работает только пока компьютер с ESPHome и само устройство находятся в одной домашней сети — это тот же принцип, что обновление любой другой техники у себя на столе, без какой-либо связи с миром за пределами дома.
Что это даёт по сравнению с готовым устройством
Главное отличие — прошивка целиком ваша. Логика устройства не зависит от того, что решит поставлять производитель в следующем обновлении: если завтра вендор какого-нибудь готового устройства перестанет его поддерживать или изменит логику работы, устройство на ESPHome продолжит делать ровно то, что написано в его собственном файле конфигурации, потому что этот файл — не чужой, а ваш, и лежит у вас же. Обратная сторона — за это платят временем: нужно самому разобраться в GPIO-выводах модуля, электрических параметрах датчика и синтаксисе конфигурации, а не просто достать устройство из коробки.