Skip to content

Instantly share code, notes, and snippets.

@benasse
Last active January 12, 2021 22:24
Show Gist options
  • Select an option

  • Save benasse/44902f8141af22ececa919d39e83edf9 to your computer and use it in GitHub Desktop.

Select an option

Save benasse/44902f8141af22ececa919d39e83edf9 to your computer and use it in GitHub Desktop.
MQTT - Philips Hue Dimmer - bis
blueprint:
name: MQTT - Philips Hue Dimmer
description: 'Control lights with a Philips Hue Dimmer Switch.
The top "on" button will turn the lights on to the last set
brightness.
Dim up/down buttons will change the brightness using predefined
step and can be pressed and hold until the brightness is
satisfactory.
The bottom "off" button will turn the lights off.
Long Off or On press will set brightness to the maximum or to the
minimum.
'
domain: automation
input:
dimmer:
name: Philips Hue dimmer action sensor
description:
'This must be an "action" sensor provided by zigbee2mqtt. For
example "sensors.living_dimmer_action"
'
selector:
entity:
domain: sensor
light:
name: Target light
selector:
entity:
step:
name: Dimming step in percent
default: 25
selector:
number:
min: 0.0
max: 50.0
mode: slider
step: 1.0
unit_of_measurement: "%"
lowest_brightness:
name: Lowest brightness level
description: 'Set this brightness level on long "Off" button press'
default: 3
selector:
number:
min: 1.0
max: 50.0
mode: slider
step: 1.0
unit_of_measurement: "%"
trigger:
platform: state
entity_id: !input dimmer
action:
- variables:
command: "{{ trigger.to_state.attributes.action }}"
step: !input step
negative_step: "{{ -1 * (step | int) }}"
- choose:
- conditions: "{{ command == 'on-press' }}"
sequence:
- service: light.turn_on
data_template:
entity_id: !input light
- conditions: "{{ command == 'off-press' }}"
sequence:
- service: light.turn_off
data_template:
entity_id: !input light
- conditions: "{{ command == 'down-press' or command == 'down-hold' }}"
sequence:
- service: light.turn_on
data_template:
entity_id: !input light
brightness_step_pct: "{{ negative_step }}"
transition: 1
- conditions: "{{ command == 'up-press' or command == 'up-hold' }}"
sequence:
- service: light.turn_on
data_template:
entity_id: !input light
brightness_step_pct: "{{ step }}"
transition: 1
- conditions: "{{ command == 'on-hold' }}"
sequence:
- service: light.turn_on
data_template:
entity_id: !input light
brightness: 255
transition: 1
- conditions: "{{ command == 'off-hold' }}"
sequence:
- service: light.turn_on
data_template:
entity_id: !input light
brightness_pct: !input lowest_brightness
transition: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment