Настройка автоматизации Xiaomi/Aqara wireless switch в Home Assistant (Update)

Обе кнопки выглядят так.

научимся каким образом мы будем с помощью их добавлять автоматизацию в нашем доме. Конфигурация будет находится в папке \automation\ваш_файл_автоматизации.yaml. Создайте любой файл с расширением .yaml и в кодировке UTF-8 и скопируйте код в этот файл. Измените ваши entity_id устройства на актуальные. Несколько примеров c пояснением автоматизации этих кнопок

с версии 0.83.x в HomeAssistant заменены event_type с :

было motion  стало  xiaomi_aqara.motion
было click  стало  xiaomi_aqara.click
было cube_action  стало  xiaomi_aqara.cube_action

код подправляю.

Включение кнопки Xiaomi по одинарному клику.

# ----- Включение по одинарному клику ----- #
- alias: Bathroom-2 Switch Click Single 
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d00010d5068
        click_type: single
  condition:
    - condition: state
      entity_id: switch.plug_158d00010ada98
      state: 'off'
  action:
    - service: switch.turn_on
      entity_id:
        - switch.plug_158d00010ada98

Суть кода такова (он аналогичен и следующим примерам ниже): мы анализируем статус (trigger) кнопки. Пока кнопка (binary_sensor.switch_158d00010d5068) не нажата – ничего не происходит, статус ее не меняется, ничего не выполняется. Как только мы нажмем единожды на нее, статус кнопки в HA изменится на single, и далее начинается работать condition

null -> single (last_action это последнее его состояние) (все это можно посмотреть в Home Assistant -> State (http://ваш_IP_адрес_сервера:8123/dev-state)

далее проверка по condition: если при нажатии кнопки статус (триггер) поменялся ее на single и при этом сетевой фильтр Xiaomi с entity_id: switch.plug_158d00010ada98 (или любое другое устройство из категории розеток/выключателей (они имеют название в HA как switch.plug_xxxxxx)) выключено т.е. off, то выполняется уже какое-то действие action: в нашем случае switch.turn_on включает эти устройства с switch.plug_158d00010ada98 (для ламп например, будет не switch.turn_on, а light.turn_on, но об этом мы поговорим позднее). Т.е. логика здесь проста.

Выключение кнопки Xiaomi по двойному клику

# ----- Выключение по двойному клику ----- #
- alias: Bathroom-2 Switch Click Double 
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d00010d5068
        click_type: double
  condition:
    - condition: state
      entity_id: switch.plug_158d00010ada98
      state: 'on'
  action:
    - service: switch.turn_off
      entity_id:
        - switch.plug_158d00010ada98

если при нажатии кнопки статус (триггер) поменялся ее на double и при этом сетевой фильтр Xiaomi с entity_id: switch.plug_158d00010ada98  включен т.е. off, то выполняется уже какое-то действие action: в нашем случае switch.turn_off выключает эти устройства с switch.plug_158d00010ada98.Включение/

Выключение по одинарному клику (toggle)

Здесь сценарий можно сократить и сэкономить нам комбинации для double (двойное нажатие). Ну а если мы будем хотим щелкать по кнопке единожды последовательно, то устройство также будет последовательно включаться или выключаться.

- alias: Bathroom-2 Switch Click ON/OFF Toggle
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d0001a66b29
        click_type: single
  action:
    - service: switch.toggle
      entity_id: switch.wifi_room2

Долгое нажатие кнопки (long_press)

пример включение подсветки контроллера Xiaomi если долго жать на кнопку

- alias: Bathroom-2 Switch Click Longpress
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d0001a66b29
        click_type: long_click_press
  action:
    - service: light.turn_on
      entity_id: light.gateway_light_7811dcb7ed9e

Как варианты работают еще вот такие автоматизации. Угадайте логику включения.выключения ? 🙂

# ----- Включение света по одинарному клику ----- #
- alias: Cherdak Switch Click Single 
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000110c5bc
        click_type: single
  condition:
    - condition: state
      entity_id: light.yeelight_room11
      state: 'off'
  action:
    - service: light.turn_on
      entity_id:
        - light.yeelight_room11

- alias: Cherdak Switch Click Single 
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000110c5bc
        click_type: single
  condition:
    - condition: state
      entity_id: light.yeelight_room11
      state: 'on'
  action:
    - service: light.turn_off
      entity_id:
        - light.yeelight_room11

Если мы посмотрим на этот код (ниже) он будет идентичен коду (выше) :

- alias: Cherdak Switch Click Single 
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000110c5bc
        click_type: single
  action:
    - service: light.toggle
      entity_id:
        - light.yeelight_room11

Чувствуем разницу ? 🙂

Ну и еще несколько сложных автоматизаций выдранных в инете для изучения вам.

# ----- Включение света по одинарному клику ----- #
- alias: Bedroom Switch Click Light On
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
        click_type: single
  condition:
    - condition: state
      entity_id: light.bedroom
      state: 'off'
  action:
    - service: light.turn_on
      entity_id:
        - light.bedroom
      data_template:
        brightness_pct: >-
          {% set h = now().hour | int %}
          {% if h >= 21 and h < 22 %}
            10
          {% elif h >= 22 and h < 6 %}
            1
          {% elif h >= 6 and h < 8 %}
            10
          {% elif h >= 8 and h < 21 %}
            100
          {% endif %}
        kelvin: 4000

# ----- Выключение света по одинарному клику ----- #
- alias: Bedroom Switch Click Light Off
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
        click_type: single
  condition:
    - condition: state
      entity_id: light.bedroom
      state: 'on'
  action:
    - service: light.turn_off
      entity_id:
        - light.bedroom

# ----- Включение 25% яркости по двойному клику ----- #
- alias: Bedroom Switch Doble Click Light 25
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
        click_type: double
  action:
    - service: light.turn_on
      entity_id:
        - light.bedroom
      data_template:
        brightness_pct: 25
        kelvin: 3900

# ----- Включение 4500К по длинному нажатию ----- #
- alias: Bedroom Switch Long Click Light Max
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
        click_type: long_click_press
  action:
    - service: light.turn_on
      entity_id:
        - light.bedroom
      data_template:
        brightness_pct: 100
        kelvin: 4500

# ----- Запуск таймера. Выключение автоматизации по любому нажатию ----- #
- alias: Bedroom Motion Off
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
  condition:
    - condition: state
      entity_id: input_boolean.bedroom_motion_status
      state: 'on'
  action:
    - service: timer.start
      entity_id: timer.bedroom
    - service: input_boolean.turn_off
      entity_id: input_boolean.bedroom_motion_status

# ----- Сброс, и запуск нового таймера по любому нажатию ----- #
- alias: Bedroom Reset Timer
  trigger:
    - platform: event
      event_type: xiaomi_aqara.click
      event_data:
        entity_id: binary_sensor.switch_158d000104efc8
  condition:
    - condition: state
      entity_id: input_boolean.bedroom_motion_status
      state: 'off'
  action:
     - service: timer.cancel
       entity_id: timer.bedroom
     - service: timer.start
       entity_id: timer.bedroom

# ----- Включение автоматизации после остановки таймера ----- #
- alias: Bedroom Motion On
  trigger:
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.bedroom
  action:
     - service: input_boolean.turn_on
       entity_id: input_boolean.bedroom_motion_status

# ----- Включение / Выключение автоматизации переключателем ----- #
- alias: Bedroom Automation ON_OFF
  trigger:
    - platform: state
      entity_id: input_boolean.bedroom_motion_status
  action:
    service_template: >
      {% if states.input_boolean.bedroom_motion_status.state == 'on' %}
        automation.turn_on
      {% else %}
        automation.turn_off
      {% endif %}
    entity_id:
      - automation.bedroom_motion
      - automation.bedroom_no_motion

и еще

- alias: Кнопка Короткое нажатие - вкл Настольную лампу
  trigger:
    platform: event
    event_type: click
    event_data:
      entity_id: binary_sensor.switch_1234567 (имя кнопки)
      click_type: single
  action:
    service: light.toggle
    data:
      entity_id: light._ (имя лампы)

- alias: Кнопка Двойное нажатие - вкл лампу Philips
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_1234567 (имя кнопки)
      click_type: double
  action:
    service: light.toggle
    data:
      entity_id: light._ (имя лампы)

- alias: Кнопка Длительное нажатие - вкл zigbee розетку 
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_1234567 (имя кнопки)
      click_type: long_click_press
  action:
    service: switch.toggle
    data:
      entity_id: switch.plug_7654321 (имя розетки)
5 3 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
1 Комментарий
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
-----
-----
29.12.2021 20:24

А если кнопка подключена к стику zigbee, а не к шлюзу aqara/xiaomi, то какой код надо написать, чтобы кнопка заработала?

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x