Обе кнопки выглядят так.
научимся каким образом мы будем с помощью их добавлять автоматизацию в нашем доме. Конфигурация будет находится в папке \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 (имя розетки)
А если кнопка подключена к стику zigbee, а не к шлюзу aqara/xiaomi, то какой код надо написать, чтобы кнопка заработала?