Сенсорные выключатели для штор и ESPHome

08 октября 2021, 10:28
У одного из наших товарищей @Indig0_prophecy, были сенсорные выключатели для управления шторами под EweLink. Проблема с этими выключателями в том, что они то недокручивают шторы, то перекручивают, и настройке это не поддается. Ну и сложно интегрировать это дело в Home assistant. Он предложил мне эти выключатели для опытов. Возможно ли их перешить на EspHome? 

Сначала сделаю небольшой обзор этих выключателей.

1600x_image.png?1633627075

Внешность выключателей достаточно стандартная, такого рода сенсорных девайсов много на алиэкспресс. Пластик качественный, передняя панель стеклянная. Собраны плотно, ничего не люфтит и не скрипит. У меня внешне точно такие же выключатели света Girier.

1600x_image.png?1633627076

Корпус под стандартный круглый подрозетник. Сзади красуется название фирмы King Art и минимальные характеристики. А также предупреждение, что надо электричество отключать при установке, ну и лучше это доверить профессионалам.

1600x_image.png?1633627090

Внутреннее устройство тоже распространенное, состоит из двух плат: силовой и управляющей. На управляющей плате разведен ESP8285, в качестве WiFi моста, контроллер Nuvoton, отвечающий за логику работы. Есть светодиод состояния сети в левом верхнем углу, и каждый сенсор подсвечен двумя светодиодами: синим и красным.

1600x_image.png?1633627092

С другой стороны платы ещё один контроллер, заведующий сенсорными кнопками. Зачем такой винегрет - одним китайцам известно. Со всем этим справилась бы и Еспха. Одно радует, что выведены пины TX RX GPIO0, подписанный как SW.

1600x_image.png?1633627087

Силовая плата содержит импульсный неизолированный источник питания на 5 вольт. Силовые дорожки дополнительно залужены.

1600x_image.png?1633627087

Также на плате силовые реле на 10 А. Контакты для зажима проводов. Причем эта плата, скорее всего, устанавливается и в обычных выключателях света.

Ну что ж, подключим USB-UART переходник к подписанным дорожкам, и пробуем прошить. ЕСП входит в режим прошивки и стартует, но постоянно отваливается на середине прошивки где то. Это происходит потому, что второй контроллер Nuvoton постоянно шлет посылки в COM порт. Для того, чтобы этот контроллер не мешал, замыкаем площадку RES1 на землю и тормозим контроллер. Дальше дело пошло. Стал пробовать залить интеграцию Tuya MCU. Но эта интеграция ничего не увидела, что естественно, протоколы у Tuya и Ewelink разные. Попробовал интеграцию UART устройств. Нашел, что скорость обмена 19200, и посылки представляют из себя текстовые AT команды. Но что-то ничего не получилось. Пробовал и Tasmota - там нашел библиотеку, переделанную от диммера KingArt. Нифига не работает нормально. В процессе этих мытарств дошла мысль, что даже если получится что-то, но время открытия и закрытия зашито в контроллере Nuvoton и, соответственно, это изменить никак не получится. Обсудив с хозяином выключателей, решил выковырять контроллер Nuvoton. Контроллер, который отвечает за сенсорные кнопки, выдает постоянно высокий уровень, а при касании сенсора - низкий. Очень удобно использовать GPIO0 GPIO2. Тем более они рядом.

1600x_image.png?1633632329

Удалил контроллер. Взял тонкий обмоточный провод и подпаялся к GPIO4, GPIO0, GPIO2 и GPIO12, GPIO14, благо они все на одной стороне и рядом нет элементов. Светодиод состояния висит на GPIO13.

1600x_image.png?1633632328

Проложил эти провода по краю платы и подпаялся к выводам отсутствующего контроллера. Индикацией сенсоров пришлось пожертвовать. Так как я уже прошил EspHome, то адаптер не нужен, перепрошивка по воздуху.

Дальше накидал прошивку. Использовал компонент Time based cover. Мне кажется, что он лучше всего подходит. Время открытия и закрытия можно точно подобрать. Сделал бинарные сенсоры на кнопки, и два свича для управления реле. Обнаружился небольшой косяк. Если, допустим, нажать открытие и сразу же нажать закрытие, включенными получаются оба реле. Поэтому в свичах включил interlock, чтоб исключить эту ситуацию. GPIO0 на среднем сенсоре. Если перешивать по проводу, то нужно коснуться середины.

esphome:
  name: cover
  platform: ESP8266
  board: esp8285

logger:
  baud_rate: 0 #disable logging over uart

wifi:
  ssid: "WiFi"
  password: "Password"

  ap:
    ssid: "Captive"
    password: "1234567890"
     
captive_portal:

web_server:

status_led:  
  pin: GPIO13

# Enable Home Assistant API
api:
  password: "1"

ota:
  password: "1"
  
cover:
  - platform: time_based
    name: "Time-Based Cover"
    id: cover_1

    open_action:
      - switch.turn_on: open_cover_switch
    open_duration: 30sec #время открытия   

    close_action:
      - switch.turn_on: close_cover_switch
    close_duration: 30sec #время закрытия

    stop_action:
      - switch.turn_off: open_cover_switch
      - switch.turn_off: close_cover_switch  

switch:
  - platform: gpio
    pin: GPIO12
    id: open_cover_switch #реле открытия
    interlock: [close_cover_switch]
    
  - platform: gpio
    pin: GPIO14
    id: close_cover_switch #реле закрытия
    interlock: [open_cover_switch]
    
binary_sensor:  #сенсорные кнопки
  - platform: gpio
    pin:
      number: GPIO4
      inverted: true  
    id: open_1      
    on_press:
      then:
        - cover.open: cover_1

  - platform: gpio
    pin:
      number: GPIO0
      inverted: true  
    id: stop_1 
    on_press:
      then:
        - cover.stop: cover_1

  - platform: gpio 
    pin:
      number: GPIO2
      inverted: true  
    id: close_1      
    on_press:
      then:
        - cover.close: cover_1

Побаловался по-разному с выключателем, работает четко. Никаких проблем. В НА залетел сразу, веб морда тоже работает. Решил побаловаться с подсветкой. Светодиоды подключены так, что при подаче высокого уровня горит синий светодиод, при подаче низкого - красный. Подключил к выходам транзисторных ключей. Ключи по схеме открытого коллектора. Соответственно, для включения реле они замыкают на землю. Подсветка клавиш заработала. Соответственно, пока реле включено - горит красным, потом - синим. Средний сенсор подключил на 3.3 вольт. Только синий получается. В таком варианте единственная проблема - этой подсветкой никак нельзя управлять. В общем вдохнул новую жизнь в выключатели. Теперь можно все гибко регулировать. Сейчас отправлю выключатели обратно хозяину, думаю, позже в комментах он отпишется.


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (yudaevvalera)
    (yudaevvalera) 14 дней назад

    Ильмир, гигантское спасибо за проделанную работу!!! Как придут и поставлю на место - обязательно сниму видео работы из ХА и вживую.

    Спасибо что есть такие люди как ты.

К списку статей

Устройства в материале

Zemismart Energy Saving EU WiFi Curtain Switch

Производитель: Zemismart

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
29 октября 2019, 07:59
Умный домофон на базе nodeMCU с прошивкой ESPHome.
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
20 января 2019, 15:09
Использование ESPHomeLib в связке с Home Assistant
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit