Skip to content

Instantly share code, notes, and snippets.

@freakshock88
Created January 3, 2021 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save freakshock88/1f4c349d9123114f821ce7a4e03bad52 to your computer and use it in GitHub Desktop.
Save freakshock88/1f4c349d9123114f821ce7a4e03bad52 to your computer and use it in GitHub Desktop.
blueprint:
name: Zigbee2MQTT - OSRAM Smart+ switch mini (AC0251100NJ/AC0251700NJ) actions
description: >
Define actions for your OSRAM Smart+ switch mini using Zigbee2MQTT.
For your button entity, choose the right sensor with your button name and the entity id which ends with '_action', e.g. 'sensor.kitchen.switch_action'
domain: automation
input:
button_sensor:
name: OSRAM Smart+ switch mini sensor entity
description: Sensor for OSRAM Smart+ switch mini to use (Use sensor with entity_id ends with _action)
selector:
entity:
domain: sensor
remote_button_up:
name: Up Press
description: Action to run on up press
default: []
selector:
action:
remote_button_up_hold:
name: Up Hold
description: Action to run on up hold
default: []
selector:
action:
remote_button_up_release:
name: Up Release
description: Action to run on up release
default: []
selector:
action:
remote_button_circle:
name: Circle Press
description: Action to run on circle press
default: []
selector:
action:
remote_button_circle_hold:
name: Circle Hold
description: Action to run on circle hold
default: []
selector:
action:
remote_button_circle_release:
name: Circle Release
description: Action to run on circle release
default: []
selector:
action:
remote_button_down:
name: Down Press
description: Action to run on down press
default: []
selector:
action:
remote_button_down_hold:
name: Down Hold
description: Action to run on down hold
default: []
selector:
action:
remote_button_down_release:
name: Down Release
description: Action to run on down release
default: []
selector:
action:
mode: restart
max_exceeded: silent
# Each option is explicitly defined as a trigger because sensor reports empty values as well.
# Not defining explicit triggers causes the automation to show up in the log multiple times per button press.
trigger:
- platform: state
entity_id: !input button_sensor
to: 'up'
- platform: state
entity_id: !input button_sensor
to: 'up_hold'
- platform: state
entity_id: !input button_sensor
to: 'up_release'
- platform: state
entity_id: !input button_sensor
to: 'circle_click'
- platform: state
entity_id: !input button_sensor
to: 'circle_hold'
- platform: state
entity_id: !input button_sensor
to: 'circle_release'
- platform: state
entity_id: !input button_sensor
to: 'down'
- platform: state
entity_id: !input button_sensor
to: 'down_hold'
- platform: state
entity_id: !input button_sensor
to: 'down_release'
action:
- variables:
action: "{{ trigger.to_state.state }}"
- choose:
- conditions: "{{ action == 'up' }}"
sequence: !input remote_button_up
- conditions: "{{ action == 'up_hold' }}"
sequence: !input remote_button_up_hold
- conditions: "{{ action == 'up_release' }}"
sequence: !input remote_button_up_release
- conditions: "{{ action == 'circle_click' }}"
sequence: !input remote_button_circle
- conditions: "{{ action == 'circle_hold' }}"
sequence: !input remote_button_circle_hold
- conditions: "{{ action == 'circle_release' }}"
sequence: !input remote_button_circle_release
- conditions: "{{ action == 'down' }}"
sequence: !input remote_button_down
- conditions: "{{ action == 'down_hold' }}"
sequence: !input remote_button_down_hold
- conditions: "{{ action == 'down_release' }}"
sequence: !input remote_button_down_release
@SublimePotato
Copy link

Exactly what i needed 👌
This isn't compatible with the "highly recommended" legacy: false configuration since the button actions are different.
-> https://www.zigbee2mqtt.io/devices/AC0251100NJ_AC0251700NJ.html
image

For example circle_click with legacy: false will result in these MQTT messages:
image

Same press on the circle button without legacy: false:
image

Not sure why it's highly recommended to use legacy: false, I was hoping to fix the switches disconnecting when not used for a while (they reconnect when power cycling them), but then all my automations broke 😅

Improving this blueprint to also support the non legacy mode seems like a good idea.

@freakshock88
Copy link
Author

Okay I can look into that.
Has the disconnecting behavior improved for you when using legacy: false?

@SublimePotato
Copy link

I have just configured one of them to use legacy: false but it's too soon to say if it solves the problem.
The switches that are used daily work perfectly, just the ones that are not used for a week or two become unresponsive until i powercycle them. I can test again in about 2 weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment