Skip to content

Instantly share code, notes, and snippets.

@thatdoogieguy
Created April 24, 2022 10:49
Show Gist options
  • Save thatdoogieguy/fe6852325cb195cc0a35c1199bf91bff to your computer and use it in GitHub Desktop.
Save thatdoogieguy/fe6852325cb195cc0a35c1199bf91bff to your computer and use it in GitHub Desktop.
Sync Three Switches in Home Assistant
blueprint:
name: Sync three switch entities
description: Mirror three switches by updating the status of the other linked switches to match the triggered switch state
# Credit to https://github.com/bmaehr for original script logic
domain: automation
input:
switch_object1:
name: Switch 1
selector:
entity:
domain: switch
switch_object2:
name: Switch 2
selector:
entity:
domain: switch
switch_object3:
name: Switch 3
selector:
entity:
domain: switch
variables:
switch_object1: !input switch_object1
switch_object2: !input switch_object2
switch_object3: !input switch_object3
switch_object12:
- !input switch_object1
- !input switch_object2
switch_object13:
- !input switch_object1
- !input switch_object3
switch_object23:
- !input switch_object2
- !input switch_object3
trigger:
- platform: state
entity_id:
- !input switch_object1
- !input switch_object2
- !input switch_object3
from: 'on'
to: 'off'
- platform: state
entity_id:
- !input switch_object1
- !input switch_object2
- !input switch_object3
from: 'off'
to: 'on'
condition: "{{ trigger.to_state.context.parent_id == none }}"
action:
- wait_template: "{{ (as_timestamp(now()) - as_timestamp(this.attributes.last_triggered | default(0)) | int > 2) }}"
timeout: 2
- service_template: >
{% if trigger.to_state.state == 'on' %}
switch.turn_on
{% elif trigger.to_state.state == 'off' %}
switch.turn_off
{% endif %}
data_template:
entity_id: >
{% if trigger.entity_id == switch_object1 %}
{{ switch_object23 }}
{% elif trigger.entity_id == switch_object2 %}
{{ switch_object13 }}
{% elif trigger.entity_id == switch_object3 %}
{{ switch_object12 }}
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment