빌레사 스크롤 휠로 커튼과 선풍기의 열림 또는 속도 단계 올리고 내리는 자동화.
휠을 돌린만큼 이벤트 타입이 multi_press_1부터 8까지 생성되는 걸 이용해 현재위치에서 스텝*상수를 더하거나 빼는 방식으로 컨트롤.
- id: Wheel 1st/Bedroom
alias: Wheel 1st/Bedroom
mode: restart
triggers:
- trigger: state
entity_id:
- event.bilresa_wheel_1st_button_1
- event.bilresa_wheel_1st_button_2
- event.bilresa_wheel_1st_button_3
- event.bilresa_wheel_1st_button_4
- event.bilresa_wheel_1st_button_5
- event.bilresa_wheel_1st_button_6
- event.bilresa_wheel_1st_button_7
- event.bilresa_wheel_1st_button_8
- event.bilresa_wheel_1st_button_9
to: ~
conditions:
- "{{ trigger.from_state.state != 'unavailable' }}"
actions:
- choose:
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_1' }}"
sequence:
- variables:
step: >
{{ trigger.to_state.attributes.event_type.split('_')[-1] | int }}
current: >
{{ state_attr('cover.be_curtain', 'current_position') | int(0) }}
target: >
{{ [current + (step * 5), 100] | min }}
- action: cover.set_cover_position
target:
entity_id: cover.be_curtain
data:
position: "{{ target }}"
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_2' }}"
sequence:
- variables:
step: >
{{ trigger.to_state.attributes.event_type.split('_')[-1] | int }}
current: >
{{ state_attr('cover.be_curtain', 'current_position') | int(100) }}
target: >
{{ [current - (step * 5), 1] | max }}
- action: cover.set_cover_position
target:
entity_id: cover.be_curtain
data:
position: "{{ target }}"
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_3' }}"
- "{{ trigger.to_state.attributes.event_type == 'multi_press_1' }}"
sequence:
- action: cover.toggle
entity_id: cover.be_curtain
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_4' }}"
sequence:
- variables:
step: >
{{ trigger.to_state.attributes.event_type.split('_')[-1] | int }}
current: >
{{ state_attr('fan.mi_smart_fan', 'percentage') | int(0) }}
target: >
{{ [current + (step * 10), 100] | min }}
- action: fan.set_percentage
target:
entity_id: fan.mi_smart_fan
data:
percentage: "{{ target }}"
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_5' }}"
sequence:
- variables:
step: >
{{ trigger.to_state.attributes.event_type.split('_')[-1] | int }}
current: >
{{ state_attr('fan.mi_smart_fan', 'percentage') | int(0) }}
target: >
{{ [current - (step * 10), 1] | max }}
- action: fan.set_percentage
target:
entity_id: fan.mi_smart_fan
data:
percentage: "{{ target }}"
- conditions:
- "{{ trigger.entity_id == 'event.bilresa_wheel_1st_button_6'}}"
- "{{ trigger.to_state.attributes.event_type == 'multi_press_1' }}"
sequence:
- action: fan.toggle
entity_id: fan.mi_smart_fan