Skip to content

Instantly share code, notes, and snippets.

@Blackshome
Last active January 4, 2024 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Blackshome/ca6be121c8d3e4404e33114fc88b599a to your computer and use it in GitHub Desktop.
Save Blackshome/ca6be121c8d3e4404e33114fc88b599a to your computer and use it in GitHub Desktop.
press-button-turn-on-off-entities.yaml
blueprint:
name: Press Button - Turn ON & OFF Entities
description: >
# 🧿 Press Button - Turn ON & OFF Entities
**Version: 1.0**
Let us know what you think of this blueprint and for community support including updates: [Click Here](https://community.home-assistant.io/t/press-button-turn-on-off-entities/634488)
**The Automation Process:**
- When you press the button it will turn ON the main entity input.
- When you press the button again it will turn OFF the main entity input.
- You have the option to input an alternating entity that will be the opposite state to the main entity.
**NOTE** - The button must have no state, like a button helper.
Required = *
Need help? See our FAQ: [Click Here](https://community.home-assistant.io/t/press-button-turn-on-off-entities/634488/2?u=blacky)
**If you like my blueprints, and would like to show your support or just say thank you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8) 🙂
domain: automation
input:
press_button:
name: Press Button *
description: The press button that controls the entities.
selector:
entity:
main_entity:
name: Main Entity *
description: The main entity that will be turned ON when the button is pressed.
selector:
entity:
multiple: true
alternating_entity:
name: Alternating Entity (optional)
description: The alternating entity that will be the opposite state to the main entity when the button is pressed.
default: []
selector:
entity:
multiple: true
variables:
press_button: !input press_button
main_entity: !input main_entity
alternating_entity: !input alternating_entity
trigger:
- platform: state
entity_id: !input press_button
action:
- choose:
- alias: "Check if any alternating entity are enter in"
conditions:
- "{{ alternating_entity == [] }}"
sequence:
- choose:
- alias: "Check any main entities are on"
conditions:
- condition: state
entity_id: !input main_entity
match: any
state: 'on'
sequence:
- alias: "Turn OFF the main entities"
service: homeassistant.turn_off
target:
entity_id: !input main_entity
- alias: "Check all main entities are off"
conditions:
- condition: state
entity_id: !input main_entity
match: all
state: 'off'
sequence:
- alias: "Turn ON the main entities"
service: homeassistant.turn_on
target:
entity_id: !input main_entity
default:
- choose:
- alias: "Check any main entities are on"
conditions:
- condition: state
entity_id: !input main_entity
match: any
state: 'on'
sequence:
- alias: "Turn ON the main entities"
service: homeassistant.turn_off
target:
entity_id: !input main_entity
- alias: "Turn ON the alternating entity entities"
service: homeassistant.turn_on
target:
entity_id: !input alternating_entity
- alias: "Check all main entities are off"
conditions:
- condition: state
entity_id: !input main_entity
match: all
state: 'off'
sequence:
- alias: "Turn OFF the main entities"
service: homeassistant.turn_on
target:
entity_id: !input main_entity
- alias: "Turn OFF the alternating entity entities"
service: homeassistant.turn_off
target:
entity_id: !input alternating_entity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment