Наиболее полное описание того, как прошить Sonoff basic прошивкой ESPHome и подключить его к Home Assistant.
Данная статья первая в моем блоге о прошивке китайских устройств на основе модуля esp82xx и замена родной прошивки на esphome для подключения их к умному дому Home Assistant. Для прошивки этих устройств в этой и последующих статьях будет приведена следующая информация:
1) Фото платы устройства – т.к. одни устройства могут быть клонами других, и с большой долей вероятности данные статьи могут быть применены и для прошивки устройств других производителей.
2) Схема подключения или распайка выводов для перепрошивки
3) Используемые выводы GPIO на микроконтроллере esp82xx
4) Профиль Esphome и описание работы прошивки
Плата Sonoff Basic имеет разъем для перепрошивки. Его надо только распаять (припаять гребенку):
Для соединения Sonoff с адаптером используется выводы Rx, Tx, GND и 3.3В. Причем Rx адаптера соединяется с Tx платы Sonoff, а Tx адаптера – соответственно с Rx платы Sonoff.
Sonoff RX -> TX UART
Sonoff TX -> RX UART
Sonoff VCC -> 3.3V UART
Sonoff GND -> GND UART
Также для прошивки Sonoff Basic необходимо при включении зажать кнопку (в этой модели она подключена на вход GPIO0). В других устройствах на ESP8266 нужно будет найти вывод GPIO0 и на время прошивки подключить его к «земле» (минусовому выводу питания).
GPIO12 – Relay
GPIO13 – Green LED (inverted)
Задаем название профиля:
Указываем используемый тип платы в Sonoff Basic:
Далее вводим название своей сети WIFI, пароль доступа к ней и пароль для OTA-обновлений и жмем «CONTINUE»:
Обязательно обновляем страницу. После нажимаем на «EDIT»:
Заменяем содержимое файла sonif_basic.yaml на мой профиль, который находися в конце статьи (не забыв прописать свое название сети WIFI (вместо моей «dream2») и свои пароли (вместо моих «********»).
Нажимаем «SAVE» и «CLOSE»:
Данная статья первая в моем блоге о прошивке китайских устройств на основе модуля esp82xx и замена родной прошивки на esphome для подключения их к умному дому Home Assistant. Для прошивки этих устройств в этой и последующих статьях будет приведена следующая информация:
1) Фото платы устройства – т.к. одни устройства могут быть клонами других, и с большой долей вероятности данные статьи могут быть применены и для прошивки устройств других производителей.
2) Схема подключения или распайка выводов для перепрошивки
3) Используемые выводы GPIO на микроконтроллере esp82xx
4) Профиль Esphome и описание работы прошивки
Фото платы и схема подключения
Фото платы и схема подключения Sonoff Basic к USB контроллеру уже были ранее описаны в статье Два способа сохранить оригинальную прошивку на примере Sonoff basic.Плата Sonoff Basic имеет разъем для перепрошивки. Его надо только распаять (припаять гребенку):
Для соединения Sonoff с адаптером используется выводы Rx, Tx, GND и 3.3В. Причем Rx адаптера соединяется с Tx платы Sonoff, а Tx адаптера – соответственно с Rx платы Sonoff.
Sonoff RX -> TX UART
Sonoff TX -> RX UART
Sonoff VCC -> 3.3V UART
Sonoff GND -> GND UART
Также для прошивки Sonoff Basic необходимо при включении зажать кнопку (в этой модели она подключена на вход GPIO0). В других устройствах на ESP8266 нужно будет найти вывод GPIO0 и на время прошивки подключить его к «земле» (минусовому выводу питания).
Используемые GPIO
GPIO0 – Button (inverted)GPIO12 – Relay
GPIO13 – Green LED (inverted)
Компилирование прошивки Sonoff Basic
Запускаем дополнение ESPHome в Home Assistant (где его взять читайте здесь). Добавляем новый профиль прошивки, для этого нажимаем на красный «+»:Задаем название профиля:
Указываем используемый тип платы в Sonoff Basic:
Далее вводим название своей сети WIFI, пароль доступа к ней и пароль для OTA-обновлений и жмем «CONTINUE»:
Обязательно обновляем страницу. После нажимаем на «EDIT»:
Заменяем содержимое файла sonif_basic.yaml на мой профиль, который находися в конце статьи (не забыв прописать свое название сети WIFI (вместо моей «dream2») и свои пароли (вместо моих «********»).
Нажимаем VALIDATE:
Если проверка успешна – жмем «CLOSE»:
Компилируем прошивку (кнопка Compile).
После компиляции нажимаем «DOWNLOAD BINARY» и скачиваем файл прошивки на ПК:
Загрузка прошивки в Sonoff Basic
Для первой заливки файла прошивки в Sonoff Basic из-под Windows я использую программу ESPHome Flasher. Скачать последнюю версию можно всегда на сайте разработчика. На взякий случай сохранил 64-битную версию флешера сюда.
Последовательность прошивки следующая:
1) Подключаем Sonoff Basic с зажатой кнопкой через USB адаптер к компьютеру.
2) Обязательно сохраняем оригинальную прошивку.
3) Отключаем адаптер от ПК и подключаем его снова (переподключаем).
4) Запускаем программу ESPHome Flasher:
5) В поле Serial port выбираем порт, к которому подключен адаптер с SonOff, а в поле Firmware указываем путь к скачанной прошивке с расширением *.bin
6) Нажимаем Flash ESP. Идет процесс прошивки, который должен закончиться радующей глаз фразой «Done! Flashing is complete»:
На этом прошивка Sonoff Basic окончена. Можно добавлять устройство в Home Assistant.
Добавляются в Home Assistant через меню Настройки-Интеграции:
Все последующие прошивки выполняются по ОТА.
При включении в сеть нагрузка выключена, светодиод не горит. При нажатии на кнопку или включении по сети через веб интерфейс или из меню Home Assistant реле включает через реле нагрузку и плавно зажигается светодиод. При повторном нажатии (или выключении по сети) реле отключает нагрузку и светодиод плавно тухнет. Также по сети можно отдельно управлять свечением светодиода независимо от состояния реле.
В прошивке есть сенсоры, отображающие уровень сигнала WIFI, время работы Sonoff Basic, состояния реле и светодиода и дата последней перепрошивки. Также есть доступ к к выключателю по вебу используя его IP адрес:
И напоследок привожу профиль для ESPHome:
Удачи и до новых встреч!
Последовательность прошивки следующая:
1) Подключаем Sonoff Basic с зажатой кнопкой через USB адаптер к компьютеру.
2) Обязательно сохраняем оригинальную прошивку.
3) Отключаем адаптер от ПК и подключаем его снова (переподключаем).
4) Запускаем программу ESPHome Flasher:
5) В поле Serial port выбираем порт, к которому подключен адаптер с SonOff, а в поле Firmware указываем путь к скачанной прошивке с расширением *.bin
6) Нажимаем Flash ESP. Идет процесс прошивки, который должен закончиться радующей глаз фразой «Done! Flashing is complete»:
На этом прошивка Sonoff Basic окончена. Можно добавлять устройство в Home Assistant.
Добавляются в Home Assistant через меню Настройки-Интеграции:
Все последующие прошивки выполняются по ОТА.
Профиль ESPHome и его описание
Алгоритм работы:При включении в сеть нагрузка выключена, светодиод не горит. При нажатии на кнопку или включении по сети через веб интерфейс или из меню Home Assistant реле включает через реле нагрузку и плавно зажигается светодиод. При повторном нажатии (или выключении по сети) реле отключает нагрузку и светодиод плавно тухнет. Также по сети можно отдельно управлять свечением светодиода независимо от состояния реле.
В прошивке есть сенсоры, отображающие уровень сигнала WIFI, время работы Sonoff Basic, состояния реле и светодиода и дата последней перепрошивки. Также есть доступ к к выключателю по вебу используя его IP адрес:
Используемые GPIO Sonoff Basic:
И напоследок привожу профиль для ESPHome:
esphome: name: sonoff_basic platform: ESP8266 board: esp01_1m wifi: # Логин и пароль к сети WIFI ssid: "dream2" password: "********" # Static IP # Статический IP адрес manual_ip: static_ip: 192.168.1.125 gateway: 192.168.1.1 subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Sonoff Basic Fallback Hotspot" password: "**********" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: "*********" ota: password: "********" web_server: port: 80 # GPIO Binary Sensor # Активация внутреннего подтягивания вывода и обозначение кнопки binary_sensor: - platform: gpio pin: number: GPIO0 mode: INPUT_PULLUP inverted: True name: "Sonoff Basic Button" on_press: - switch.toggle: mybutton switch: # - platform: template name: "Sonoff Basic Relay" optimistic: true id: mybutton turn_on_action: - switch.turn_on: relay - light.turn_on: led turn_off_action: - switch.turn_off: relay - light.turn_off: led # Назначение выхода на реле - platform: gpio id: relay pin: GPIO12 # ----------------------------------------> # Monochromatic Light # Плавное зажигание светодиода output: - platform: esp8266_pwm id: basic_green_led pin: number: GPIO13 inverted: True light: - platform: monochromatic name: "Sonoff Basic Green LED" output: basic_green_led id: led # ----------------------------------------< sensor: # WiFi Signal Sensor # Датчик отображающий уровень сигнала Wifi - platform: wifi_signal name: "Sonoff Basic WiFi Signal" update_interval: 60s # Uptime Sensor # Датчик отображающий время работы - platform: uptime name: "Sonoff Basic Uptime" text_sensor: # Version Text Sensor # Датчик отображающий версию прошивки - platform: version name: "Sonoff Basic ESPHome Version"
Удачи и до новых встреч!
Добрый день!
ОтветитьУдалитьУ меня Sonoff Basic прошит с использованием датчика DHT22.
Можно его добавить в прошивку?
Да, конечно. Добавьте после "sensor:" следующее (GPIO14 - вывод, куда подключен Ваш DHT22):
Удалить- platform: dht
pin: GPIO14
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 10s
Сейчас прошивка на Tasmota, хочу перейти на ESPHome
ОтветитьУдалитьПодскажите, можно ли как то средствами haas сохранить состояние espреле, если espреле был передернут по питанию?
ОтветитьУдалитьespреле и в haas было в on, перезапустили espреле - стало off и в hass стало off
RESTORE_DEFAULT_OFF включено и тут https://esphome.io/components/esphome.html#esp8266-restore-from-flash не рекомнд делать это средствами espреле.
Спасибо
аналогично как в Esppurna - Switch - Boot mode - Same as Before
УдалитьВам нужно чтобы после пропадания электричества реле всегда включалось в состоянии "OFF"?
УдалитьТогда в Esphome так и пишете:
- platform: gpio
id: relay
pin: GPIO12
restore_mode: ALWAYS_OFF
Другими словами добавляете строку "restore_mode: ALWAYS_OFF", которая задает состояние реле после включения. В Home Assistant состояние реле отобразится автоматически.
УдалитьЕсли хотите "Same as Before" то, только RESTORE_DEFAULT_ON
Удалить100000 сохранений это достаточно много много - например, если Вы будете включать реле по 20 раз каждый день - Вам его хватит почти на 7 лет
понял, спасибо. Решил средствами haas. В автоматизации которая включает бойлер ночью добавил триггер
Удалить- platform: state
entity_id: switch.heater_relay
from: unavailable
to: 'off'
то есть, если ночью пропадет ЭЭ, то hass включит реле после его переподключения и возврат к состоянию off. сам hass на упсе.
итого
- id: '1612430464787'
alias: Heater ON 23:31:00 - 07:30:00
description: ''
trigger:
- platform: state
entity_id: switch.heater_relay
from: unavailable
to: 'off'
- platform: time
at: '23:31:00'
condition:
- condition: time
after: '23:31:00'
before: 07:30:00
action:
- service: switch.turn_on
data: {}
entity_id: switch.heater_relay
mode: single
Уважаемый автор, подскажите пожалуйста, а как должен выглядеть мой конфиг, если я хочу, что бы при замыкании GPIO14 и GND - реле GPIO12 включалось и выключалось 1 раз в секунду, до тех пор пока GPIO14 и GND не разомкнуться?
ОтветитьУдалитьПримерно так:
Удалить....
turn_on_action:
- while:
condition:
lambda: 'return true;'
then:
- switch.turn_on: relay
- delay: 500ms
- switch.turn_off: relay
- delay: 500ms
turn_off_action:
- switch.turn_off: relay
Обсуждали подобное здесь: https://community.home-assistant.io/t/blinking-led-with-esphomeyaml/90472
УдалитьСпасибо!
Удалитьrestore_mode: ALWAYS_ON и RESTORE_DEFAULT_ON почему то отрабатывают, если реле восстанавливает соединение с сетью вай-фай, как сделать, чтобы после восстановления соединения, реле было в предыдущем состоянии?
ОтветитьУдалитьПо идее, если убрать вообще строку restore_mode - реле должно пытаться восстановить предыдущее состояние.
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьЕсть осушитель который не имеет ни вайфай, ни ИК порта, но на нём есть кнопки нажатия: вкл, меньше, больше. Получится ли его подключить используя свободные gpio,или gpoi с диодоми индикации?
ОтветитьУдалитьНе видя схемы тяжело что-либо сказать. Т.к. схему вы вряд-ли найдете, попробуйте сами нарисовать схему подключения кнопок осушителя.
Удалить