Hey all, I finally got my hands on an Aqara H1 Rotary Dimmer Switch, a ZigBee device that makes for a neat remote.
Using an existing blueprint as a reference, I was able to put together a blueprint that allows you to trigger different actions for the five different controls on the device (single press, double press, long press, rotate left, rotate right).
NOTE: This device is not currently supported in ZHA, and requires a custom quirk (available here: Custom ZHA quirk for Aqara H1 Knob Wireless · GitHub) until official support is added.
Blueprint
# This blueprint allows you to map actions to the different controls on an Aqara H1 Rotary Dial (https://homekitnews.com/2020/11/02/aqara-reveal-smart-rotary-dimmer-switch/)
# 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
blueprint:
name: Aqara H1 Rotary Dial - Remote
description: >-
This automation allows using an Aqara H1 Rotary Dial (ZigBee) to trigger actions.
Requires a custom quirk if using with ZHA.
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
single:
name: Single Press
description: The action to perform on a single press of the dial button
selector:
action:
default: []
double:
name: Double Press
description: The action to perform on a double press of the dial button
selector:
action:
default: []
long:
name: Long Press
description: The action to perform on a long press of the dial button
selector:
action:
default: []
left:
name: Left Turn
description: The action to perform on rotating the dial to the left
selector:
action:
default: []
right:
name: Right Turn
description: The action to perform on rotating the dial to the right
selector:
action:
default: []
mode: restart
max_exceeded: silent
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input dial
action:
- choose:
# Single press on the button
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "1_single" }}'
sequence: !input single
# Double press on the button
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "1_double" }}'
sequence: !input double
# Long press on the button
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "1_hold" }}'
sequence: !input long
# Rotate dial to the left
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "stop_rotation" and trigger.event.data.args.rotation_direction == -1 }}'
sequence: !input left
# Rotate dial to the right
- conditions:
- condition: template
value_template: '{{ trigger.event.data.command == "stop_rotation" and trigger.event.data.args.rotation_direction == 1 }}'
sequence: !input right
# Any other event will cancel the repeat loops.
default: []
Setup
Credit
- @niro1987 for his IKEA remote blueprint, the basis of this blueprint
- @oxc for his ZHA quirk to get the Aqara H1 working with ZHA
Hopes this helps!
EDIT: 08-10-2023
A few days ago, I noticed that some aspects of this automation were no longer working, and discovered that my devices were now set into COMMAND mode rather than EVENT mode, which changes the triggers available for processing.
Supposedly, you can switch between COMMAND and EVENT mode by clicking the button on the device 5 times quickly, although I have been unable to switch my devices back into EVENT mode. I suspect a firmware update for these devices may have altered this behind-the-scenes.
If you also face the same issue, I have made a variant of this blueprint that works in COMMAND mode, which can be imported below:
The key difference between the two is that, in COMMAND mode, a single press is not registered. As a result, single press is unavailable in this blueprint. I would suggest using the original EVENT mode variant above if possible.