Пришло время переводить выключатели на ESPEasy в Home Assistant

Что имеем:

  • Home Assistant 0.70
  • Esp прошитый ESPEasy Mega
  • Реле
  • Переключатель

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

Подключаем ESP с прошивкой ESPEasy к реле следующим образом:

ESP пин 3v3 к VCC реле
ESP пин GND к GND реле
ESP пин D6 (Gpio-12)  к IN реле

В ESPEasy создаем переключатель Switch input — Switch для реле во вкладке Devices.

Приводим его к следующему виду:

Имя: relay
Enabled: — галочка
Internal PullUp: — галочка
Inversed Logic: — пусто
1st GPIO: GPIO-12 (D6)
Switch Type: Switch
Switch Button Type: Normal Switch
Send Boot state: — галочка
Send to Controller: — пусто
IDX: — номер Dummy переключателя в Domoticz (если активно Send to Controller)
Values Name: state

Сохраняем.

Управляется реле командой (192.168.0.23 это адрес ESPEasy):

Включить: http://192.168.0.23/control?cmd=GPIO,12,0 
Выключить: http://192.168.0.23/control?cmd=GPIO,12,1 

Включаем нулем если реле сделали нормально закрытым, и единицей, если нормально открытым

Выполнив переходы в браузере, реле сработает и выдаст ответ:

{ "log": "GPIO 12 Set to 0", "plugin": 1, "pin": 12, "mode": "output", "state": 0 }

или

{ "log": "GPIO 12 Set to 0", "plugin": 1, "pin": 12, "mode": "output", "state": 1 }

Мы будем управлять через MQTT.

Для этого переходив во вкладку Controllers и добавляем первым контроллером OpenHUB MQTT. Прописываем адрес брокера, порт и не меняя остальные настройки сохраняем.

Теперь создаем переключатель Switch input — Switch для переключателя во вкладке Devices:

Имя: button
Enabled: — галочка
Internal PullUp: — галочка
Inversed Logic: — пусто
1st GPIO: GPIO-14 (D5)
Switch Type: Switch
Switch Button Type: Normal Switch
Send Boot state: — пусто (если активировать, то при загрузке esp синхронизирует реле с выключателем: если был свет включен, то при загрузке тоже будет включен)
Send to Controller: — пусто
Values Name: state

Сохраняем.

Подключим обычный (любой) переключатель света:
от ESP пин GPIO-14 (D5 на NodeMCU) в разрыв переключателя и на GND ESP:

Включаем Rules в Tools> Advanced

Переходим на вкладку Rules и вставляем туда следующее:

//Изменение состояния реле переключателем
on button#state do
  if [button#state]=0
    gpio,12,0
      else
    gpio,12,1
      endif
endon

 

Теперь при физическом нажатии переключателя, будет меняться статус реле — включаться и выключаться.

В Home Assistant переходим в switches.yaml и добавляем следующее:

####################################################
#                   Выключатели                    #
####################################################
# Выключатель, спальня
- platform: mqtt
  name: bedroom_switch
  state_topic: "/esp_switch_bedroom/relay/state"
  command_topic: "/esp_switch_bedroom/gpio/12"
  payload_on: "0"
  payload_off: "1"
  qos: 1
  retain: true


Пояснения:
ESPEasy публикует и слушает данные в MQTT следующим образом:
/esp_switch_bedroom/gpio/12
esp_switch_bedroom — это название нашей esp, заданное во вкладке Main
gpio/12 — тут все ясно
и отправив 1 или 0 мы включим или выключим реле на ESPEasy

Статус:
/esp_switch_bedroom/relay/state


Так как мы русскоговорящие, названия устройств в Home Assistans нам хочется видеть тоже на русском. Но name: bedroom_switch обязательно должно быть на английском, так как от этого имени формируется название устройства в Dev, и именно это название из dev мы будем распределять по группам в будущем (- switch.bedroom_switch)

Если же поставить name: Выключатель, то в dev он примет вид  switch.__

Он будет работать, но ровно до тех пор, пока мы не решим добавить еще один выключатель, так как он получит точно же такое имя switch.__


 

Весь этот набор отлично вмещается в глубокие подрозетники

 

4
Оставить комментарий

avatar
2 Цепочка комментария
2 Ответы по цепочке
1 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
3 Авторы комментариев
kvvмаксимSerg.le Авторы недавних комментариев

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
новее старее большинство голосов
Уведомление о
Serg.le
Гость
Serg.le

>state_topic: «/esp_switch_bedroom/relay/state» >command_topic: «/esp_switch_bedroom/gpio/12» >payload_on: «0» > payload_off: «1» Такой вариант не работает в последних версиях espeasy mega. Теперь статус выдается только json’ом причем не совместимым с компонентом MQTT JSON Light. — platform: mqtt_template command_topic: «coil-kitchen/cmd» state_topic: «coil-kitchen/status» command_on_template: «gpio,13,1» command_off_template: «gpio,13,0» state_template: > {% if value_json.state == 1 and value_json.pin == 13 %} on {% if value_json.state == 0 and value_json.pin == 13 %} off {% endif %}

максим
Гость
максим

А блок питания к этому набору какой и куда его прятать ?