Skip to content

Instantly share code, notes, and snippets.

@andiaa734
Last active November 22, 2023 13:15
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 andiaa734/4cdf5086fdbc3455dfc6e646d75b51e2 to your computer and use it in GitHub Desktop.
Save andiaa734/4cdf5086fdbc3455dfc6e646d75b51e2 to your computer and use it in GitHub Desktop.
HA_Sync_brightness_lights.yaml
blueprint:
name: Link brightness of Multiple lights
description: |
## Link brightness of Multiple lights v1.0.0
Select multiple entities to link their on/off state. If any selected entity is turned on or off, the other selected entities will be sent a matching on or off command.
You can select any entity, but only entities supported by the `homeassistant.turn_on` or `homeassistant.turn_off` service calls will work.
### Requirements
* All selected entities MUST suport `homeassistant.turn_on` and `homeassistant.turn_off` or errors will be logged and the blueprint will not work.
* Requires Home Assistant 2022.5.0 or newer.
### Credits
* [@adchevrier](https://community.home-assistant.io/u/adchevrier) for the [initial blueprint](https://community.home-assistant.io/t/synchronize-the-on-off-state-of-2-entities/259010)
* [@hebus](https://community.home-assistant.io/u/hebus) for [this fantastic template](https://community.home-assistant.io/t/synchronize-the-on-off-state-of-2-entities/259010/38)
domain: automation
homeassistant:
min_version: 2022.5.0
input:
linked_entities:
name: Entities to link
selector:
entity:
multiple: true
mode: queued
max_exceeded: silent
variables:
linked_entities: !input 'linked_entities'
trigger:
- platform: state
entity_id: !input 'linked_entities'
attribute: brightness
condition:
- condition: template
value_template: '{{ trigger.to_state.brightness != trigger.from_state.brightness }}'
- condition: template
value_template: '{{trigger.to_state.context.parent_id is none or (trigger.to_state.context.id != this.context.id and trigger.to_state.context.parent_id != this.context.id) }}'
action:
- choose:
- conditions:
- condition: state
entity_id: |-
{{ expand(linked_entities) | selectattr("entity_id", "!=",
trigger.entity_id) | map(attribute="entity_id") | list }}
state: "off"
sequence:
- service: homeassistant.turn_off
target:
entity_id: '{{ expand(linked_entities) | selectattr("entity_id", "!=", trigger.entity_id) | map(attribute="entity_id") | list }}'
- conditions:
- condition: state
entity_id: |-
{{ expand(linked_entities) | selectattr("entity_id", "!=",
trigger.entity_id) | map(attribute="entity_id") | list }}
state: "on"
sequence:
- service: homeassistant.turn_on
target:
entity_id: '{{ expand(linked_entities) | selectattr("entity_id", "!=", trigger.entity_id) | map(attribute="entity_id") | list }}'
data:
brightness: '{{ trigger.to_state.attributes.brightness }}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment