Skip to content

Instantly share code, notes, and snippets.

@thatdoogieguy
Created April 24, 2022 10:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save thatdoogieguy/94abf99f0e67b92af6423c9c7e0b5786 to your computer and use it in GitHub Desktop.
Save thatdoogieguy/94abf99f0e67b92af6423c9c7e0b5786 to your computer and use it in GitHub Desktop.
Sync Two Switches in Home Assistant
blueprint:
name: Sync two switch entities
description: Mirror two switches by updating the status of the other linked switch 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
variables:
switch_object1: !input switch_object1
switch_object2: !input switch_object2
trigger:
- platform: state
entity_id:
- !input switch_object1
- !input switch_object2
from: 'on'
to: 'off'
- platform: state
entity_id:
- !input switch_object1
- !input switch_object2
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_object2 }}
{% elif trigger.entity_id == switch_object2 %}
{{ switch_object1 }}
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment