Esp home что это
Знакомство с ESPHome. Настройка ds18b20 на esp8266. Интеграция ESPHome в Home Assistant.
В этом примере используются:
ESPHome – это система для управления вашим ESP8266 / ESP32 с помощью простых, но мощных файлов конфигурации и удаленного управления ими через системы домашней автоматизации.
Основное преимущество ESPHome от просто написания кода. Это то, что ESPHome заточен работать как умный дом и у него существует интеграция с Home Assistant. По этому разработка очень сильно упрощается. И очень просто добавить любой датчик с помощью ESPHome и контроллера esp в Home Assistant.
В этой статье покажу Вариант установки ESPHome непосредственно на сервер Home Assistant. И с него прошивать будем микроконтроллер ESP.
Чтоб установить ESPHome в Home Assistant необходимо зайти в Supervisor далее Add-ONs и там найти ESPHome и установить его.
После установки, включим ползунок “Показывать на боковой панели”
Теперь зайдем в ESPHome и там увидим пустое поле. И только значек “+” в правом нижнем углу.
Нажав его мы начнем создавать устройство. Создание устройства состоит из 5 пунктов:
Первый пункт – это приветствие
Второй пункт – это имя нашей ноды которую мы создаем выполняя 5 этих пунктов.
Третий пункт – это выбор устройства которое мы будем прошивать.
Четвертый пункт – тут указываются SSID и Пароль от wifi сети. И также устанавливается пароль на прошивку по воздуху OTA. ESPHome сразу поддерживает прошивку по воздуху. После того как установим первый раз его.
Ну и пятый пункт – где мы просто соглашаемся и нажимаем готово.
Итак устройство создано. И если мы нажмем теперь edit на нем. То попадем в окно где можно писать конфиг.
А писать для примера мы будем код, для работы с датчиком температуры от компании dallas. Это ds18b20.
Для этого открываем вкладку edit и видим следующее:
Эти параметры создались автоматически на основе тех данных которые мы ввели при создании данной ноды.
Чтоб настроить датчик ds18b20. Ниже нужно дописать следующее:
dallas:
pin: D4
update_interval: 360s
где D4 это пин к которому подключается датчик. И загружаем получившийся код подключив контроллер к серверу Home Assistant. Выбрав в верхнем углу ком порт к которому подключен микроконтроллер. И нажать кнопку UPLOAD.
После этого откроется окно консоли и начнет загружаться программа с помощью PlatformIO.
После окончания загрузки у нас в консоли произойдет подключение к WI-fi сети которую мы указали. В случае успешного подключения к сети. Начнется опрос датчика ds18b20 и покажется в консоли его адрес. Этот адрес нужно скопировать и сохранить пока.
Ну а теперь дописываем код следующим образом:
А так будет выглядеть код с Выводом значений температуры на дисплей m5stack:
Все. После этого сохраняем конфиг и загружаем в контроллер. Теперь можно выбрать даже метод OTA. ESPHome сам поймет какой адрес у устройства и прошьет его по воздуху.
На этом настройка устройства закончена. Теперь давайте его добавим в Home Assistant.
Здесь у нас запросит пароль. Пароль нужно вводить тот который вы указали в конфиге созданной ноды в блоке Api
После этого создастся новый сенсор с именем sensor.”имя которое указали в блоке sensor при создании ноды”
На этом все. Интеграция в Home Assistant закончена.
Все данные шаги я проделал в видео ниже. Если что-то непонятно в статье, то советую посмотреть его:
Программирование микроконтроллеров ESP8266/ESP32 написанием YAML конфиг файлов
Будучи поклонником системы управления «умным домом» Home Assistant я недавно открыл для себя интересный инструмент, тесно с HA интегрированный и ранее на Хабре не освещенный — ESP Home (ранее ESPhomeYAML).
ESP Home представляет собой набор библиотек и инструментов, генерирующих прошивку для микроконтроллеров ESP8266 и ESP32 из созданного пользователем конфиг файла в формате YAML. Это значительно упрощает написание прошивок малого и среднего уровня сложности в особенности для тех, кто не силен в программировании под Arduino и сильно сокращает количество строк кода/конфигурации для тех, кто силен.
Для удобства настройки поддерживается обновление прошивки по воздуху.
ESP Home поддерживает устройства на базе ESP8266 и ESP32, очень популярных среди любителей домашней автоматизации и прочих самоделкиных, а также несколько десятков сенсоров и различную периферию — дисплеи, сетевые карты и т.д. Для обмена данными с запрограммированным устройством поддерживаются MQTT, UART, I2C, SPI и API, интегрированное с Home Assistant.
Ниже короткий пример установки ESP Home и простой настройки устройства на примере выключателя Sonoff T1, который представляет из себя ESP8266 с одним реле, одной кнопкой и одним управляемым светодиодом. В примере будут шаги установки одновременно для чистого Python и Docker.
Установка
Python 2.7 (из-за зависимостей Platformio)
Docker из готового образа
Создание конфигурационного файла
ESP Home включает в себя визард, который помогает создать начальный конфигурационный файл.
Эти же шаги можно проделать в WEB интерфейсе ESP Home, про который написано в конце статьи.
Для начала нужно указать:
Результатом работы визарда будет файл switch.yaml в текущей папке примерно такого вида:
Этого достаточно, чтобы скомпилировать прошивку и дальнейшие изменения производить по воздуху.
Первая прошивка
Теперь, если подключить контроллер к компьютеру по USB (NodeMCU) или через программатор можно заливать прошивку.
ESP Home проверит, что в файле конфигурации нет ошибок, скомпилирует и загрузит прошивку. Кроме того в текущей папке появится новая папка с именем вашего устройства и проектом platformio внутри.
Если программатор/устройство не подключены к компьютеру можно выполнить команду:
и скомпилированный файл прошивки появится в папке switch/.pioenvs/switch/firmware.bin
Docker
На Linux или MacOS можно добавить в —device=/dev/ttyUSB0 Docker-команду — адрес устройства программатора или серийного порта.
Аналогично команде esphome в результате запуска контейнера появится папка switch/.pioenvs/switch/firmware.bin
Бинарный файл прошивки можно загрузить на контроллер через Arduino IDE.
После этого устройство можно отключить от USB и дальнейшие обновления прошивки будут проходить автоматически по воздуху.
Настройка выключателя
Дальше можно добавлять необходимые компоненты:
Рубрика: ESPhome
ESPHome покорила меня, и остальных ее поклонников, своей простотой и лёгкостью в освоении ещё за долго до появления в ней api для Home Assistant. Теперь же это топовая прошивка №1 для esp8266. Всячески ее рекомендую.
Перепрошивка SP501E на ESPHome
Процесс перепрошивки и конфиг для ESPHome.
Подключение датчика жестов APDS9960 к ESP8266
Подключение датчика жестов APDS9960 к esp8266 или esp32 с прошивкой ESPHome и интеграция в Home Assistant.
Подключение датчика освещенности TSL2561 к ESP8266
Подключение датчика освещенности TSL2561 к esp8266 или esp32 с прошивкой ESPHome.
Умная кормушка для животных Petoneer Nutri Smart Pet Feeder
Обзор автоматической кормушки для животных Petoneer Nutri Smart Pet Feeder, а так же перепрошивка ESPHome и интеграция в Home Assistant.
2 релейных модуля с esp8266. Конфиг для ESPHome
Попали мне в руки два модуля с esp8266, поделюсь конфигами для ESPHome
WiFi гирлянда от Zemismart в Home Assistant
Как обычно — прошьем ESPHome для управления из Home Assistant.
Обзор WiFi удлинителя ZLD-44EU-W с 4 розетками и USB портами зарядки
Очень интересный вариант удлинителя — с esp8266, возможностью контролировать каждую розетку и usb порты зарядки. Прошьем ESPHome и подключим к Home Assistant
Обзор и прошивка розетки J28 с мониторингом энергопотребления
Разберем и перепрошьем ESPHome, подключим к Home Assistant
Подключение датчика температуры, влажности и давления BME280 к ESP8266
Схема подключения BME280 к ESP8266 или ESP32
Контроль протечки воды с краном Zemismart SM-AW713 и Home Assistant
Перепрошьем ESPHome и научим Home Assistant закрывать кран при срабатывании датчика протечки.
Очень часто меня просят исправить какой-то надоедливый баг в Home Assistant или добавить поддержку нового сенсора в ESPHome. В этом цикле статей я хотел бы рассказать о разработке под эти системы от А до Я и показать, что имея базовые знания в программировании, в этом нет ничего сложного.
В этой статье расскажу как начать разработку под ESPHome от начала и до публикации ваших изменений в релиз.
Подготовка
Для начала нужно установить Docker. Не буду заострять на этом внимание, на сайте всё расписано и установка сводится к «далее-далее», ну или «apt-get install». Примем как данность, что с этим вы справитесь.
Далее было бы неплохо получить исходный код ESPHome. Он живёт на Github и скачать репозиторий очень просто. В правом верхнем углу есть зеленая кнопка «Clone or download» за которой прячется ссылка «Download ZIP». Качаем, распаковываем.
Однако, можно пойти другим путём (все равно придется работать в терминале) и использовать Git :
Первый запуск
Теперь запустим наш локальный ESPHome. Мы не будем собирать docker-образ из исходных кодов, а просто возьмем готовый и заменим в нем исходные коды на скачанные с github. Предполагается, что вы находитесь в директории с исходниками. Предварительно создадим каталог для конфигурационных файлов:
Немного разберу что делает эта команда:
Переходим по адресу http://127.0.0.1:6052 и видим дашборд запущенного локально ESPHome. Бинго!
Постановка задачи
Вот и подошли к самому вкусному. Для примера, давайте сделаем что-то полезное. Например, ESPHome поддерживает вставку текста из файла secrets.yaml в конфиги, но редактировать этот файл из дашборда нельзя. Давайте исправим это недоразумение.
Для того, чтобы внести наши изменения в репозиторий ESPHome, нужно создать Pull Request (запрос на добавление). Для того, чтобы его создать, нужно сделать fork репозитория (копию репозитория ESPHome).
Делаем хорошо
Повторяем шаги с самого начала (предварительно удалив старые исходные коды, чтобы не путаться), но уже из нашего репозитория:
Чик-чик и в продакшен
Далее нам нужно закоммитить изменения в нашу ветку и запушить их на сервер:
Вот он, момент истины. Pull request создан. Осталось дождаться когда пройдут тесты:
Осталось дождаться когда разработчики примут ваши изменения (или напишут вам что нужно исправить) и после этого ваш код будет принят и смержен в основной репозиторий ESPHome. Потрогать ваши изменения вы сможете в следующем релизе.
Что-то ты недоговариваешь.
Конечно, это лишь базовая информация. Если изменения более сложные, то нужно написать тесты, написать документацию (для сайта esphome.io) и, возможно долго и упорно проходить ревью. Но об этом я расскажу в следующих статьях. А еще расскажу как разрабатывать под Home Assistant. С радостью отвечу на все вопросы.
Отличная статья! Жду продолжение.
очень ждем разбора написания компонента на основе S8.
буду тестировать в дев ветке!
Сложно, но интересно!
у меня есть Senseair S8 на Wemos под тасмотой с добавленным к нему SI7021. Могу перешить. Но в идеале бы хотелось вообще получить мультисенсор под ESPHome
освещенность, температура+влажность, уровень шума, CO2 и возможно движение. На базе NodeMCU
правда под это надо дособрать компонентов, но это дело уже тестов. Главное понять куда это все присобачить :)))
Senseair S8 где-то в пути из Китая. Поддержку добавлю
Толковая статья, спасибо за труды. Но.. Вот вам полезная затравка на которую начинающему адепту esphome не найти ответа ни в рунете ни в англоязычных форумах. Суть такова, что ESPhome отлично зашивает контроллер RGBW лентой, добавляется отличная карточка в Lovelace с выбором цвета и балансом белого. Но. использование осложняется, тем что скажем с Node-Red никак это дело не вызвать (кроме как включить-выключить с тем цветом и балансом что был предварительно выставлен в ручную) и я уже третий день ковыряюсь по форумам, никто толком ответить не может. Можно ли как-то сразу зашивать режимы, пусть предустановленные, хотя бы отдельно палитра или цвет, яркость и потом как-то их вызывать через Call service (в Node-red есть такая нода)? Вот кто-бы взял на себя великое дело разобраться и объяснить все неофитам, как это работает и может управляться. Повторюсь, RGB(W) ленты дешевле адресных и у многих уже нагорожено подсветок на них, контроллер типа MagicHome или PhilipsHue стоит копейки, отлично перешивается под ESPHOME но. вот бы кто-то обьяснил как этим пользоваться. Заранее благодарю всех, кому эта делема показалась интересной.
Начните с чтения документации. Там есть все, что вы ищете.
То, что вы за неё не платите, не значит, что она бесплатная. Не надо передергивать
Отличная статья спасибо, для тех кто как я вдруг захотел использовать dev ветку в докере можно простоу указать на тэг dev(бывают фичи которые еще не дошли до мастера):
В этом нет смысла, вы все равно подменяете исходники
Здравствуйте! Прошу помочь советом
Есть плата esp32 ttgo прошита esphome
Прошивал через веб интерфейс, но на хабре есть статья прошивки через терминал
Есть два интересных мне репозитория т.к задействован мой дисплей.
Собственно вопрос, каким образом заливать прошивки включающие в себя папки, как в репах выше?
Использование ESPHome в связке с Home Assistant
ESPHome. Вникаем. Пользуемся.
Часть I. Вводная.
Небольшое вступление
Полная и достаточно внятная поддержка ESPHome в Home Assistant пришла к нам с обновлением 0.85.
Если коротко, то это инструмент, который позволяет интегрировать в Home Assistant устройства, созданные на базе ESP8266 / ESP32.
Конечно, есть масса других проектов для подобных задач, таких как Tasmota, ESPEasy, WifiIot, ESPUrna, но основное их отличие от ESPHome заключается в том, что все они, для интеграции с любыми системами, используют MQTT, а вот ESPHome разрабатывался специально для Home Assistant и для интеграции используется Native API.
Я ни в коем случае не призываю отказываться от MQTT, но в связке ESPHome Home Assistant он просто не нужен.
Так же, нужно добавить, что еще одним преимуществом является то, что здесь мы имеем для всех задач, в том числе и создании внутренних автоматизаций, всего лишь один конфиг-файл, который использует YAML.
P.S. И в завершение краткого описания хочу сказать, если честно, проникся я этой системой, зацепила она меня. Вот уж действительно, в ней всё по-настоящему «Easy».
P.P.S. Статья будет большая, дабы не упустить важные моменты и показать максимум возможностей на старте.
Итак, в данной статье мы рассмотрим следующее: