qord.tech

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-выводах модуля, электрических параметрах датчика и синтаксисе конфигурации, а не просто достать устройство из коробки.