Умный дверной звонок на базе Mi Wireless Switch [WXKG01LM]

Беспроводная кнопка Xiaomi Mi Smart Home Wireless Switch – беспроводной, компактный, выключатель для удаленного контроля за домашними приборами, который можно использовать как дверной звонок.

Размер3,60 х 3,60 х 1,15 см
Вес50 г
МатериалПластик
БатареяCR1632
Рабочая температура:0° – 40° C

Добавляем автоматизацию, теперь при нажатии на кнопку (одинарное, двойное, долгое) будет приходить пуш на телефон.

- alias: zvonok
  trigger:
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_button
  action:

  - service: notify.mobile_app_m2101k6g
    data:
      title: Дом
      message: Звонок в дверь!


На этом можно было бы и закончить, но мы сделаем наш звонок немного умнее. Добавим возможность ввода секретной комбинации нажатий на кнопку.

Для этого нам потребует текстовая переменная:

input_text:
  ring_pass:
    name: ring_pass
    min: 0
    max: 8

Таймер, для обнуления текстовой переменной:

timer:
  time_password:
    duration: "00:00:10"

При одиночном нажатии на кнопку мы прибавляем к текстовой переменной ring_pass «1» и перезапускаем таймер:

- alias: zvonok_code
  trigger:
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_button
  action:
  - service: input_text.set_value
    target:
      entity_id: input_text.ring_pass
    data:
      value: "{{ states('input_text.ring_pass') +'1' }} " 
  - service: timer.cancel
    entity_id: timer.time_password  
  - service: timer.start
    entity_id: timer.time_password

При двойном нажатии на кнопку мы прибавляем к текстовой переменной ring_pass «2» и перезапускаем таймер:

- alias: zvonok_duble_code
  trigger:
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_button
  action:
  - service: input_text.set_value
    target:
      entity_id: input_text.ring_pass
    data:
      value: "{{ states('input_text.ring_pass') +'2' }} " 
  - service: timer.cancel
    entity_id: timer.time_password  
  - service: timer.start
    entity_id: timer.time_password

При долгом нажатии на кнопку мы прибавляем к текстовой переменной ring_pass «-» и перезапускаем таймер:

- alias: zvonok_long_code
  trigger:
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_button

  action:
  - service: input_text.set_value
    target:
      entity_id: input_text.ring_pass
    data:
      value: "{{ states('input_text.ring_pass') + '-' }} " 
  - service: timer.cancel
    entity_id: timer.time_password  
  - service: timer.start
    entity_id: timer.time_password 

По истечении таймера time_password обнуляем переменную ring_pass и :

- alias: code_timer_finished
  initial_state: true
  trigger:
    platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.time_password
  action:
  - service: input_text.set_value
    target:
      entity_id: input_text.ring_pass
    data:
      value: "" 
  - service: timer.cancel
    entity_id: timer.time_password   

Осталось только отслеживать состояние переменной ring_pass и при нужном нам значении выполнять действие. Например пусть секретный код будет 3 коротких 1 долгое нажатие :

- alias: code_entered
  initial_state: true
  trigger:
    platform: state
    entity_id: input_text.ring_pass
    to: '111-'
  action:
  - service: notify.mobile_app_m2101k6g
    data:
      title: Дом
      message: Кодовый звонок в дверь

Умный звонок готов!

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.