Home Assistant – ESPHome
Одна из интеграций Home Assistant – ESPHome. ESPHome – что это?
С появлением плат ESP8266 и ESP32 нужны были инструменты для написания и загрузки программ. В частности сейчас можно писать программы в среде програмирования Arduino IDE, так же появились различные инструменты в том числе платные некоторые из которых вообще не требуют знания языков и принципов программирования. Например Tasmota, ESPEasy, WifiIot, ESPUrna. Большинство систем использует протокол связи MQTT, в то время как ESPHome разрабатывался специально для Home Assistant и для интеграции используется Native API.
То есть ESPHome это инструмент, который позволяет интегрировать в Home Assistant устройства, созданные на базе ESP8266 / ESP32.
В частности готовые конфигурации для загрузки можно найти на сайте проекта – esphome.io.
Так же еще одним преимуществом является то, что здесь для всех задач, в том числе и создании внутренних автоматизаций используется всего лишь один конфиг-файл, который использует YAML. Прежде всего я раскажу каким образом устанавливал ESPHome на одноплатный компьютер Orange Pi PC Plus на котором уже установлена и работает Home Assistant. Затем мы встроим Dashboard ESPHome в WEB интерфейс Home Assistant.
Установка ESPHome на Orange Pi PC+
Если нет прямого доступа к консоли, то подключаемся с помощью терминального клиента по SSH. Для подключения я пользуюсь программой Putty.
Обновляем систему до актуального состояния
sudo apt-get update
sudo apt-get upgrade -y
Устанавливаем pip
sudo apt install python3-pip
Проверить версию установленного pip можно набрав в терминале команду
pip --version
Далее: вводим команду установки ESPHome:
pip3 install esphome
Запасайтесь терпением, процесс не быстрый
Создание файла конфигурации
В ESPHome файл конфигурации можно создать двумя способами
- В терминале в командной строке
- В Dashboard
Создание файла конфигурации в терминале
Если нет прямого доступа к консоли, то подключаемся с помощью терминального клиента по SSH. Набираем команду:
esphome test.yaml wizard
test.yaml, это имя файла вашего проекта.
Далее шаг-1: Здесь пишем название проекта, например – test
Шаг-2: Здесь нужно указать какая плата используется ESP8266 или ESP32
На этом же шаге указываем какая у вас плата
Шаг-3. Указываем имя вашей WI-FI сети и затем пароль для доступа к ней.
Важно! Сервер на котором мы создаем файл конфигурации и сама плата ESP должны находится в одной сети.
Шаг-4. Вводим пароль для последующего обновления прошивки по воздуху. Если пароль не нужен, нужно просто нажать клавишу Enter.
ПРОШИВКА ПЛАТЫ
Поскольку на платах NodeMCU или Wemos уже распаян USB-UART преобразователь вам нужно соединить сервер с программируемой платой с помощью USB кабеля. Если вам надо прошить модуль типа ESP-01 или ESP-12, вам нужен преобразователь USB-UART позволяющий выставить напряжение 3.3 вольта, например такой FTDI FT232
Для перевода модуля ESP в режим прошивки – замыкаем GPIO-0 на землю. Подаем питание.
В консоли даем команду:
esphome test.yaml run
После запуска скачиваются недостающие библиотеки и происходит компиляция проекта.
В результате после завершения компиляции видим такое сообщение
INFO Successfully compiled program
Found multiple option, please choose one:
[1] /dev/ttyUSB0 (USB-Serial Controller)
[2] Over The Air (test.local)
(number):
Здесь предлагается способ прошивки: через TTL-конвертер или по “воздуху” через ОТА. Первая прошивка должна заливаться только через USB-UART преобразователь. Так что выбираем пункт [1] и жмем “Enter”. Впоследствии в терминале видим лог прошивки платы который закончится такими строчками:
INFO Successfully uploaded program
INFO Starting log output from /dev/ttyUSB0 with baud rate 115200
Перезагружаем ESP модуль замкнув ножку Reset на “землю” и в терминале мы увидим лог загрузки.
Создание файла конфигурации в Dashbord
Прежде всего устанавливаем Dashboard набрав в терминале команду
pip3 install tornado esptool
Далее, запустим Dashboard командой:
esphome config/ dashboard
После чего проверяем доступность установленного Dashboard набрав в браузере адрес:
http://ipAddress-OrangePi:6052
Где, “ipAddress-OrangePi“, это адрес сервера, на котором мы работаем с ESPHome
В браузере нас встречает вот такая форма:
Жмем на зеленую кнопку “+ NEW DEVICE” и видим следующее сообщение
Жмем “Continue” и начинаем создавать новый проект :
Указываем название проекта, имя и пароль для подключения к WI-FI сети. Жмем “NEXT” и далее попадаем на страницу на которой требуется выбрать тип вашей платы ESP
Выбираем тип платы и жмем “NEXT”. В итоге попадаем на страницу где уже есть наш проект “test” и окошко с Поздравлением
Данное сообщение
Конфигурация создана!
Теперь вы можете установить конфигурацию на свое устройство. В первый раз для этого требуется кабель. Как только устройство будет установлено и подключено к вашей сети, вы сможете управлять им по беспроводной сети.
Жмем “INSTALL” и видим предложение выбрать варианты подключения программируемого модуля
- Беспроводное – Через ОТА (Устройство должно быть онлайн)
- Подключено к этому компьютеру (через USB)
- Подключено к серверу на котором установлен Dashboard
- Ручная установка (через ESPHome WEB или другие инструменты)
Выбирайте тип подключения и жмите “NEXT”
ESPHome Dashboard в меню Home Assistant
Для быстрого доступа к ESPHome Dashboard добавим ссылку на левую панель Home Assistant . Открываем файл configuration.yaml :
sudo nano /home/homeassistant/.homeassistant/configuration.yaml
Далее добавляем в конфигурационный файл следующие строки:
panel_iframe:
configurator:
title: ESPHome
icon: mdi:square-edit-outline
url: http://ipAddress-OrangePi:6052
Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и затем Enter.
Далее идем в Home Assistant – Настройки – Общие, кликаем по кнопке “Проверить конфигурацию” и, если ошибок нет, перезагружаем Home Assistant (на этой же странице внизу Управление сервером – Перезагрузить). В итоге после перезагрузки в левом меню появится новый пункт “ESPHome”, кликаем по нему и после этого видим следующую картину:
Кроме того остальные статьи по теме умного дома Home Assistant можно посмотреть здесь..