ESPHome - простой способ создать IoT устройство для вашей системы умного дома. Не обязательно придумывать устройство самому, достаточно взять ESP и найти в интернете готовое устройство, например на сайте ESPHome
ESPHome - это система для управления вашим ESP8266 / ESP32 с помощью простых, но мощных файлов конфигурации и удаленного управления ими через системы домашней автоматизации.
ESPHome - идеальное решение для создания пользовательских прошивок для ваших плат ESP8266 / ESP32. В этом руководстве мы рассмотрим, как настроить базовый «узел» за несколько простых шагов.
Установить ESPHome очень просто. Все, что вам нужно сделать, это установить Python и через него установить скрипт консоли pip3.
Для установки ESPHome 1.18.0 или более поздней версии требуется Python 3.7 или выше.
pip3 install esphome
В качестве альтернативы есть также образ Docker, доступный для простой установки (образ концентратора Docker доступен для AMD64, ARM и ARM64 (AARCH64) прямо сейчас; если у вас другая архитектура, установите ESPHome pipили используйте надстройку Home Assistant :
docker pull esphome/esphome
Теперь давайте настроим файл конфигурации. К счастью, в ESPHome есть удобный мастер настройки, который проведет вас через создание вашего первого файла конфигурации. Например, если вы хотите создать файл конфигурации с именем livingroom.yaml
:
esphome wizard livingroom.yaml # On Docker: docker run --rm -v "${PWD}":/config -it esphome/esphome wizard livingroom.yaml
В конце этого шага у вас будет готов первый файл конфигурации YAML. Он пока мало что делает и только подключает ваше устройство к сети Wi-Fi, но все же это первый шаг.
Итак, теперь у вас должен быть файл с именем livingroom.yaml(или аналогичный). Откройте этот файл в любом редакторе, и давайте добавим в наше приложение простой переключатель GPIO .
switch: - platform: gpio name: "Living Room Dehumidifier" pin: 5
Будем надеяться, что формат конфигурации сразу же покажется вам похожим. ESPHome постарался максимально приблизить его к configuration.yaml
схеме Home Assistant . В приведенном выше примере мы просто добавляем переключатель, который называется «Осушитель в гостиной» (действительно может управлять чем угодно, например, светом) и подключается к контакту GPIO5
. Хорошая вещь в ESPHome заключается в том, что он также автоматически пытается перевести для вас номера контактов на основе платы. Например, в приведенной выше конфигурации, если вы используете плату NodeMCU, вы могли бы точно так же установить D1
в качестве pin:
опции.
Первая загрузка
Теперь вы можете продолжить и добавить еще несколько компонентов. Как только вы почувствуете, что хотите загрузить что-то на свою плату ESP, просто подключите устройство через USB и введите следующую команду (заменив ее livingroom.yaml
файлом конфигурации):
esphome run livingroom.yaml
Вы должны увидеть, как ESPHome проверяет конфигурацию и сообщает вам о потенциальных проблемах. Затем ESPHome приступит к компиляции и загрузке кастомной прошивки. Вы также увидите, что ESPHome создал новую папку с именем вашего узла. Это новый проект PlatformIO, который вы можете потом изменить и поэкспериментировать.
Если вы используете docker в Linux, вы можете добавить –device=/dev/ttyUSB0
в свою команду docker для сопоставления локального USB-устройства.
docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB0 -it esphome/esphome run livingroom.yaml
Теперь, когда вы переходите к экрану «Интеграции» Home Assistant (на панели «Конфигурация»), вы должны увидеть, что устройство ESPHome отображается в обнаруженном разделе (хотя это может занять до 5 минут). Кроме того, вы можете добавить устройство вручную, щелкнув «КОНФИГУРИРОВАТЬ» при интеграции ESPHome и введя «<NODE_NAME> .local» в качестве хоста.
После первой загрузки вам, вероятно, больше не понадобится использовать USB-кабель, поскольку все функции ESPHome также доступны удаленно. Больше не нужно открывать скрытые коробки, хранящиеся в труднодоступных местах. Ура!
Добавление двоичного датчика Затем мы собираемся добавить очень простой двоичный датчик, который периодически проверяет, находится ли конкретный вывод GPIO высоким или низким - двоичный датчик GPIO.
binary_sensor: - platform: gpio name: "Living Room Window" pin: number: 16 inverted: true mode: input: true pullup: true
Это расширенная функция ESPHome. Почти все выводы могут дополнительно иметь более сложную схему конфигурации с опциями для инверсии и pinMode - [[https://esphome.io/guides/configuration-types.html#config-pin-schema|схему]] выводов.
На этот раз при загрузке вам не нужно снова подключать устройство через USB. Загрузка произойдет волшебным образом «по воздуху». Используя ESPHome напрямую, это то же самое, что и с USB-кабеля, но для докера вам необходимо указать дополнительный параметр:
esphome livingroom.yaml run # On docker docker run --rm -v "${PWD}":/config -it esphome/esphome run livingroom.yaml
ESPHome имеет панель управления, которую вы можете использовать для легкого управления своими узлами из приятного веб-интерфейса. Он был в первую очередь разработан для надстройки Home Assistant , но также работает с простой командой на машинах * nix (извините, без окон).
Чтобы запустить панель управления ESPHome, просто запустите ESPHome с помощью следующей команды ( config/
указав каталог, в котором вы хотите сохранить свои конфигурации)
# Install dashboard dependencies pip install tornado esptool esphome dashboard config/ # On Docker, host networking mode is required for online status indicators docker run --rm --net=host -v "${PWD}":/config -it esphome/esphome # On Docker with MacOS, the host networking option doesn't work as expected. An # alternative is to use the following command if you are a MacOS user. docker run --rm -p 6052:6052 -e ESPHOME_DASHBOARD_USE_PING=true -v "${PWD}":/config -it esphome/esphome
После этого вы сможете получить доступ к панели управления через localhost:6052
.
ESPHome - идеальное решение для создания кастомной прошивки для ваших плат ESP8266 / ESP32. В этом руководстве мы рассмотрим, как настроить базовый «узел» с помощью ESPHome Dashboard, установленного как надстройка Home Assistant.
Но сначала, вот очень быстрое введение в то, как работает ESPHome: ESPHome - это инструмент, который призван максимально упростить управление вашими платами ESP. Он считывает файл конфигурации YAML (как и Home Assistant) и создает специальную прошивку, которую устанавливает на ваше устройство ESP. Устройства или датчики, добавленные в конфигурацию ESPHome, будут автоматически отображаться в пользовательском интерфейсе Home Assistant.
ESPHome Dashboard можно установить как надстройку Home Assistant, которую вы можете найти в магазине надстроек на панели Supervisor. Откройте его, используя следующую кнопку, затем нажмите УСТАНОВИТЬ:
После этого немного подождите, пока он установится (это может занять некоторое время). Нажмите «Пуск», а затем «Открыть веб-интерфейс». Если вы видите «502: Bad Gateway», значит, он запускается, и вы можете обновить страницу через пару секунд.
Теперь вас должен приветствовать красивый мастер введения, который проведет вас через создание вашей первой конфигурации.
Мастер проведет вас через создание вашей первой конфигурации и, в зависимости от вашего браузера, установит ее на вашем устройстве ESP. Вам нужно будет назвать свою конфигурацию и ввести настройки беспроводной сети, чтобы устройство ESP могло подключиться к сети и обмениваться данными с Home Assistant.
Самая сложная часть настройки нового устройства ESPHome - это первоначальная установка. Для установки необходимо, чтобы ваше устройство ESP было подключено кабелем к компьютеру. Более поздние обновления можно установить по беспроводной сети. Если вы используете Microsoft Edge или Google Chrome , вы сможете установить начальную конфигурацию, подключив устройство ESP к компьютеру, который вы используете для просмотра панели управления ESPHome. Чтобы это работало, вам необходимо получить доступ к панели управления ESPHome через HTTPS. Это требование браузеров для доступа к вашему устройству ESP, чтобы мы могли записывать правильные данные. Если вы используете другой браузер, вам нужно будет подключить устройства ESP к машине, на которой запущены ESPHome Dashboard и Home Assistant. Если последовательный порт не отображается, возможно, у вас не установлены необходимые драйверы. Эти драйверы работают с большинством устройств ESP:
Предполагая, что вы создали свой первый файл конфигурации с помощью мастера, давайте кратко рассмотрим интерфейс ESPHome Dashboard.
На первой странице вы увидите все конфигурации для созданных вами узлов. Для каждого файла вы можете выполнить три основных действия:
УСТАНОВИТЬ : это скомпилирует микропрограмму для вашего узла и установит ее. Установка происходит без проводов, если вы включили компонент обновления OTA в своей конфигурации. Кроме того, вы можете установить его из браузера или через устройство, подключенное к машине, на которой запущена панель управления ESPHome.
ПОКАЗАТЬ ЖУРНАЛЫ : с помощью этой команды вы можете просмотреть все журналы, которые выводит узел. Если USB-устройство подключено, оно попытается использовать последовательное соединение. В противном случае он будет использовать встроенные журналы OTA.
COMPILE : эта команда компилирует прошивку и дает вам возможность загрузить сгенерированный двоичный файл, чтобы вы могли установить его самостоятельно со своего компьютера с помощью ESPHome-flasher .
Файлы конфигурации для ESPHome можно найти и отредактировать в разделе <HOME_ASSISTANT_CONFIG>/esphome/
. Например, конфигурацию узла на картинке выше можно найти в /config/esphome/livingroom.yaml
.
Теперь продолжайте и используйте одно из руководств по устройствам, чтобы расширить свою конфигурацию.
Добавление некоторых (основных) функций
Итак, теперь у вас должен быть файл с именем /config/esphome/livingroom.yaml
(или аналогичный). Откройте этот файл (в любом текстовом редакторе) и добавьте в конфигурацию простой переключатель GPIO, например:
switch: - platform: gpio name: "Living Room Dehumidifier" pin: 5
В приведенном выше примере мы просто добавляем переключатель, который называется «Осушитель в гостиной» (действительно может управлять чем угодно, например, светом), и подключается к контакту GPIO5.
Подключение вашего устройства к Home Assistant После того, как ваша конфигурация будет установлена на вашем устройстве ESP и подключена к сети, она будет автоматически обнаружена Home Assistant и предложена для настройки на экране интеграции:
Кроме того, вы можете добавить устройство вручную, щелкнув «КОНФИГУРИРОВАТЬ» при интеграции ESPHome и введя «<NODE_NAME> .local» в качестве хоста.
После первой установки вам, вероятно, больше не понадобится использовать USB-кабель, поскольку все функции ESPHome также доступны удаленно.
Затем мы собираемся добавить очень простой двоичный датчик, который периодически проверяет вывод GPIO, чтобы увидеть, насколько он активен, - двоичный датчик GPIO.
binary_sensor: - platform: gpio name: "Living Room Window" pin: number: 16 inverted: true mode: input: true pullup: true
На этот раз при установке вам не нужно снова подключать устройство через USB. Загрузка будет происходить по беспроводной сети ( «по воздуху» ).