вторник, 14 января 2020 г.

Прошивка eWeLink RF на ESPHome и подключение к Home Assistant


       Небольшой обзор, прошивка на ESPHome и подключение к системе умный на базе Home Assistant двухканального модуля с управлением по радиоканалу и WIFI и совместимого с eWeLink. Производителя найти не удалось, но данный модуль очень похож на один из модулей Sonoff. Не знаю имеет ли Itead к нему отношение, но модуль выполнен добротно.  


Ссылка на модуль: https://aliexpress.ru/item/32933362215.html (версия «90-250V with RF»)
Ссылка на магазин: https://aliexpress.ru/store/4481111


Данные со страницы продавца:
     Модуль приходит в комплекте с пультом. Для подключения пульта необходимо удержать кнопку «RF Pairing» несколько секунд и после того, как загорится синий светодиод в модуле – нажать кнопку на пульте. После этого пульт подключен и ним можно пользоваться.

     Управление происходит через облако, доступ возможен с любой точки мира:

       Одним приложением или пультом можно управлять несколькими модулями и наоборот, одним модулем можно управлять с нескольких пультов или телефонов с приложениями:

    Возможные схемы подключения, рекомендуемые производителем:

    Фото платы модуля eWeLink 2Ch RF
    Дальше привожу несколько фотографий платы крупным планом для того, чтобы можно было лучше идентифицировать модуль. Т.е. если есть такая же плата – то прошивка, приведенная ниже, должна подойти.




Расположение светодиодов на плате:


Схема подключения и подключение к USB адаптеру:



ПРОФИЛЬ ESPHOME И ЕГО ОПИСАНИЕ
Алгоритм работы:
     При включении в сеть нагрузка выключена, светодиод не горит. При нажатии на кнопку 1, кнопку 2 или включении по сети через веб интерфейс или из меню Home Assistant включается через соответствующее реле нагрузка и плавно зажигается светодиод. При повторном нажатии (или выключении по сети) реле отключает соответствующую нагрузку и светодиод плавно тухнет. Также по сети можно отдельно управлять свечением светодиода независимо от состояния реле.
     В прошивке есть сенсоры, отображающие уровень сигнала WIFI, время работы eWeLink 2ch RF, состояния реле и светодиода и дата последней перепрошивки. Также есть доступ к к выключателю по вебу используя его IP адрес:

      Используемые GPIO eWeLink 2ch RF:

      Профиль для ESPHome:


esphome:
  name: ewelink_2ch_rf
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "dream2"
  password: "********"
    # Static IP
  manual_ip:
    static_ip: 192.168.1.126
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ewelink 2Ch Rf 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: "ewelink dual rf Button 1"
    on_press:
      - switch.toggle: mybutton_1

  - platform: gpio
    pin:
      number: GPIO9
      mode: INPUT_PULLUP
      inverted: True
    name: "ewelink dual rf Button 2"
    on_press:
      - switch.toggle: mybutton_2
 
switch:
# Реакция на кнопки
  - platform: template
    name: "Ewelink Dual RF Relay 1"
    optimistic: true
    id: mybutton_1
    turn_on_action:
    - switch.turn_on: relay_1
    - light.turn_on: led
    turn_off_action:
    - switch.turn_off: relay_1
    - light.turn_off: led

  - platform: template
    name: "Ewelink Dual RF Relay 2"
    optimistic: true
    id: mybutton_2
    turn_on_action:
    - switch.turn_on: relay_2
    - light.turn_on: led
    turn_off_action:
    - switch.turn_off: relay_2
    - light.turn_off: led

# Назначение выхода на реле
  - platform: gpio
    id: relay_1
    pin: GPIO12

  - platform: gpio
    id: relay_2
    pin: GPIO05

# ---------------------------------------->
# Monochromatic Light
# Плавное зажигание светодиода
output:
  - platform: esp8266_pwm
    id: ewelink_red_led
    pin:
      number: GPIO13
      inverted: True


light:
  - platform: monochromatic
    name: "Ewelink Dual RF RED LED"
    output: ewelink_red_led
    id: led
# ----------------------------------------<

sensor:
#  WiFi Signal Sensor
#  Датчик отображающий уровень сигнала Wifi
  - platform: wifi_signal
    name: "Ewelink Dual RF WiFi Signal"
    update_interval: 60s
#  Uptime Sensor
#  Датчик отображающий время работы
  - platform: uptime
    name: "Ewelink Dual RF WiFi Signal"
  
text_sensor:
#  Version Text Sensor
#  Датчик отображающий версию прошивки
  - platform: version
    name: "Ewelink Dual RF ESPHome Version"


Добавляется в Home Assistant через меню Настройки-Интеграции:

3 комментария:

  1. А чтобы управлять инверсионным мотором (как на первой картинке), какие должны быть настройки реле?
    И режим интерлок надо включать?

    ОтветитьУдалить
    Ответы
    1. Реле должны быть в разных состояниях. Т.е. при relay_1 - ON, relay_2 - OFF - двигатель крутится в одну сторону, при relay_1 - OFF, relay_2 - ON - в другую. Если relay_1 = relay_2 - ON или OFF - двигатель не крутится.
      Блокировки включений не нужны.

      Удалить