2023-03-24 22:35:56 +00:00
# This blueprint allows you to control a media player with a Aqara H1 Rotary Dial (https://homekitnews.com/2020/11/02/aqara-reveal-smart-rotary-dimmer-switch/)
# This automation requires a boolean (toggle) helper to maintain state: https://www.home-assistant.io/integrations/input_boolean/
#
# This ZigBee device is not currently supported by ZHA, and requires a custom ZHA quirk: https://gist.github.com/oxc/754d6436ce62d92af660d3671acd9346
# This ZigBee device is already supported by Z2M: https://github.com/zigpy/zha-device-handlers/issues/2266
2023-08-10 22:33:01 +00:00
#
# # This automation is built for a device in EVENT mode rather than COMMAND mode. As there is some cross-over between the two modes, it is NOT recommended to use automations for both modes at the same time.
2023-03-24 22:35:56 +00:00
blueprint :
name : Aqara H1 Rotary Dial - Media Controls
2023-03-24 22:38:40 +00:00
source_url : https://raw.githubusercontent.com/nwithan8/configs/main/home_assistant/blueprints/automations/aqara_h1_rotary_dial_remote_media.yaml
2023-03-24 22:35:56 +00:00
description : >-
This automation allows using an Aqara H1 Rotary Dial to control a media player.
Requires a custom ZHA quirk until official ZHA support is added.
Requires a boolean (toggle) helper to store modes.
domain : automation
input :
dial :
name : Aqara H1 Rotary Dial
description : Select the rotary dial you wish to use
selector :
device :
integration : zha
manufacturer : LUMI
model : lumi.remote.rkba01
media_player :
name : Media Player
description : The media player to control
selector :
target :
entity :
domain : media_player
mode_helper :
name : Mode toggle helper
description : A boolean (toggle) helper to store the current mode in
selector :
entity :
domain : input_boolean
mode : restart
max_exceeded : silent
trigger :
- platform : event
event_type : zha_event
event_data :
device_id : !input dial
action :
- choose :
# Play/pause on single press
- conditions :
- condition : template
value_template : '{{ trigger.event.data.command == "1_single" }}'
sequence :
- service : media_player.media_play_pause
data : {}
target : !input media_player
# Toggle mode on double press
- conditions :
- condition : template
value_template : '{{ trigger.event.data.command == "1_double" }}'
sequence :
- service : input_boolean.toggle
data : {}
target :
entity_id : !input mode_helper
# Stop playback on long press
- conditions :
- condition : template
value_template : '{{ trigger.event.data.command == "1_hold" }}'
sequence :
- service : media_player.media_stop
data : {}
target : !input media_player
# Volume down / previous track on left turn
- conditions :
- condition : template
value_template : '{{ trigger.event.data.command == "stop_rotation" and trigger.event.data.args.rotation_direction == -1 }}'
sequence :
- if :
- condition : state
entity_id : !input mode_helper
state : "on"
then :
- service : media_player.media_previous_track
data : {}
target : !input media_player
else :
- service : media_player.volume_down
data : {}
target : !input media_player
# Volume up / next track on right turn
- conditions :
- condition : template
value_template : '{{ trigger.event.data.command == "stop_rotation" and trigger.event.data.args.rotation_direction == 1 }}'
sequence :
- if :
- condition : state
entity_id : !input mode_helper
state : "on"
then :
- service : media_player.media_next_track
data : {}
target : !input media_player
else :
- service : media_player.volume_up
data : {}
target : !input media_player
# Any other event will cancel the repeat loops.
default : [ ]