Home Assistant

Home Assistant – ESPHome

Одна из интеграций Home Assistant – ESPHome. ESPHome – что это?

С появлением плат ESP8266 и ESP32 нужны были инструменты для написания и загрузки программ. В частности сейчас можно писать программы в среде програмирования Arduino IDE, так же появились различные инструменты в том числе платные некоторые из которых вообще не требуют знания языков и принципов программирования. Например TasmotaESPEasyWifiIotESPUrna. Большинство систем использует протокол связи 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 можно посмотреть  здесь..