68 lines
2.3 KiB
YAML
68 lines
2.3 KiB
YAML
blueprint:
|
|
name: IKEA Bilresa - High-Performance Wheel Control
|
|
description: Optimized control for the IKEA Bilresa wheel focusing on speed and
|
|
MG24/Ember stability.
|
|
domain: automation
|
|
input:
|
|
controller_name:
|
|
name: Remote MQTT Name
|
|
description: The name of the device in Zigbee2MQTT (e.g., Bilresa_Wheel)
|
|
default: Bilresa Wheel
|
|
action_on:
|
|
name: 'On'
|
|
description: Action to perform when the top button is pressed.
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
action_off:
|
|
name: 'Off'
|
|
description: Action to perform when the bottom button is pressed.
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
action_right:
|
|
name: Turn Right
|
|
description: 'Action for clockwise rotation. Recommended: light.turn_on with
|
|
brightness_step_pct: 10 and transition: 0.1'
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
action_left:
|
|
name: Turn Left
|
|
description: 'Action for counter-clockwise rotation. Recommended: light.turn_on
|
|
with brightness_step_pct: -10 and transition: 0.1'
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
source_url: https://gist.githubusercontent.com/patt110/4eda20da78422b8989b3b6686264e2ac/raw/a80245848aea86d29668015fc014b13d032569f0/Bilresa_Scrollwheel_Z2M_en.yaml
|
|
mode: restart
|
|
trigger:
|
|
- platform: mqtt
|
|
topic: zigbee2mqtt/{{ (controller_name if controller_name else 'Bilresa Wheel')
|
|
}}
|
|
action:
|
|
- variables:
|
|
payload: '{{ trigger.payload_json }}'
|
|
action_val: '{{ payload.action if ''action'' in payload else '''' }}'
|
|
- choose:
|
|
- conditions: '{{ action_val == ''on'' }}'
|
|
sequence: !input action_on
|
|
- conditions: '{{ action_val == ''off'' }}'
|
|
sequence: !input action_off
|
|
- conditions: '{{ action_val == ''brightness_move_to_level'' }}'
|
|
sequence:
|
|
- variables:
|
|
is_max: '{{ payload.action_brightness_delta is none and payload.action_level
|
|
is none }}'
|
|
is_min: '{{ payload.action_brightness_delta == 0 and payload.action_level
|
|
== 1 }}'
|
|
delta: '{{ payload.action_brightness_delta | int(0) if payload.action_brightness_delta
|
|
is not none else 0 }}'
|
|
- choose:
|
|
- conditions: '{{ delta > 0 or is_max }}'
|
|
sequence: !input action_right
|
|
- conditions: '{{ delta < 0 or is_min }}'
|
|
sequence: !input action_left
|
|
- delay:
|
|
milliseconds: 30
|