ESPHome - работа из командной строки

Установка

Установите пакет python3-pip (если не установлен):

sudo apt install python3-pip

Рекомендуется устанавливать ESPHome в домашнюю директорию пользователя. Для установки ESPHome достаточно выполнить команду:

pip3 install --user esphome

Проект ESPHome будет установлен в директорию $HOME/.local/.

Необходимо добавить путь к исполняемым файлам ESPHome в переменную окружения $PATH:

export PATH=$PATH:$HOME/.local/bin

Чтобы не настраивать переменную окружения $PATH каждый раз после перезагрузки компьютера выполните:

echo 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc

Создание файлов конфигурации

Для сборки проектов ESPHome создайте отдельную директорию в которой будет выполняться сборка прошивки, например:

mkdir ~/esphome
cd ~/esphome

Для пошагового создания нового файла конфигурации можно воспользоваться командой с пошаговым выполнением, например:

esphome e1-test.yaml wizard

В качестве имени платформы для контроллеров JetHub E1 укажите nodemcu-32s. После выполнения данной команды будет создан файл конфигурации e1-test.yaml на основе которого будет скомпилирована прошивка для микроконтроллера ESP32.

Подсказка

Можно также создать файл конфигурации в текстовом редакторе.

Пример минимального файла конфигурации ESPHome для процессорного модуля E1-CPU:

Примечание

Укажите правильный ssid и password для подключения контроллера к сети Wi-Fi.

esphome:
  name: e1-test
  platform: ESP32
  board: nodemcu-32s

wifi:
  ssid: "***"
  password: "***"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "E1-Test Fallback Hotspot"
    password: "wDZE2YhcmW89"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

В данном примере будет настраиваться подключение контроллера по Wi-Fi (секция wifi), интеграция с Home Assistant (секция api) и настроено обновление прошивки по сети (секция ota).

Примечание

Обратите внимание на поле name в секции esphome. Оно задает имя контроллера, отображается в сети и должно быть уникальным.

В данном примере имя контроллера - e1-test.

Запись прошивки

Перед прошивкой подключите контроллер кабелем MicroUSB к компьютеру.

Сборка и прошивка ПО может быть выполнена одной командой:

esphome e1-test.yaml run

При прошивке контроллер будет автоматически переведен в режим загрузки ПО, кнопку на корпусе нажимать не нужно. При выборе способа прошивки ПО выберите последовательный порт, который соответствует подключенному контроллеру, например: Serial port /dev/ttyUSB0.

Пересборка и запись прошивки необходима после внесения изменений в файл конфигурации.

Возможные проблемы при прошивке

Нет доступа к последовательному порту

Предупреждение

Пользователь под которым производится работа (прошивка контроллера) должен входить в группу dialout.

Чтобы добавить текущего пользователя в группу dialout выполните команду:

sudo usermod -a -G dialout $USER

После чего необходимо заново выполнить вход в систему.

Проблема на Ubuntu 22.04

На Ubuntu 22.04 может возникнуть проблема с доступом к порту из-за конфликта с BRLTTY (поддержка для дисплеев Брайля).

См.также

Описание проблемы: Unable to use USB dongle based on USB-serial converter chip.

Одно из решений - удалить данный пакет из системы:

sudo apt remove brltty

После чего необходимо перезагрузить систему.