Skip to content

Instantly share code, notes, and snippets.

@yasalmasri
Last active January 7, 2026 03:15
Show Gist options
  • Select an option

  • Save yasalmasri/4e0d5673e5d44307c980fd66f877a8a7 to your computer and use it in GitHub Desktop.

Select an option

Save yasalmasri/4e0d5673e5d44307c980fd66f877a8a7 to your computer and use it in GitHub Desktop.
Light Notifications
blueprint:
name: Light Notifications
description: Turn a light on based on boolean helpers.
domain: automation
input:
target_light:
name: Target Light Entity
selector:
entity:
domain: light
number_of_triggers:
name: Number of Triggers to Use
selector:
select:
options:
- label: "1 Trigger"
value: "1"
- label: "2 Triggers"
value: "2"
- label: "3 Triggers"
value: "3"
- label: "4 Triggers"
value: "4"
default: "1"
trigger_1:
name: Trigger 1 Entity
selector:
entity:
color_1:
name: Trigger 1 Color
selector:
color_rgb:
default: [255, 0, 0]
brightness_1:
name: Trigger 1 Brightness
selector:
number:
min: 0
max: 255
step: 1
default: 255
trigger_2:
name: Trigger 2 Entity
selector:
entity:
color_2:
name: Trigger 2 Color
selector:
color_rgb:
default: [255, 0, 0]
brightness_2:
name: Trigger 2 Brightness
selector:
number:
min: 0
max: 255
step: 1
default: 255
trigger_3:
name: Trigger 3 Entity
selector:
entity:
color_3:
name: Trigger 3 Color
selector:
color_rgb:
default: [255, 0, 0]
brightness_3:
name: Trigger 3 Brightness
selector:
number:
min: 0
max: 255
step: 1
default: 255
trigger_4:
name: Trigger 4 Entity
selector:
entity:
color_4:
name: Trigger 4 Color
selector:
color_rgb:
default: [255, 0, 0]
brightness_4:
name: Trigger 4 Brightness
selector:
number:
min: 0
max: 255
step: 1
default: 255
variables:
target_light_entity: !input target_light
num_triggers: !input number_of_triggers
trigger_1_entity: !input trigger_1
trigger_2_entity: !input trigger_2
trigger_3_entity: !input trigger_3
trigger_4_entity: !input trigger_4
target_light_name: "{{ target_light_entity.split('.')[1] }}"
is_on: ['on', 'open', 'detected', 'home', 'unlocked']
trigger_1_active: "{{ (trigger_1_entity | default('')) != '' and states(trigger_1_entity) in is_on and num_triggers | int >= 1 }}"
trigger_2_active: "{{ (trigger_2_entity | default('')) != '' and states(trigger_2_entity) in is_on and num_triggers | int >= 2 }}"
trigger_3_active: "{{ (trigger_3_entity | default('')) != '' and states(trigger_3_entity) in is_on and num_triggers | int >= 3 }}"
trigger_4_active: "{{ (trigger_4_entity | default('')) != '' and states(trigger_4_entity) in is_on and num_triggers | int >= 4 }}"
any_notification_active: "{{ trigger_1_active or trigger_2_active or trigger_3_active or trigger_4_active }}"
trigger:
- platform: state
entity_id: !input trigger_1
- platform: state
entity_id: !input trigger_2
- platform: state
entity_id: !input trigger_3
- platform: state
entity_id: !input trigger_4
action:
- choose:
- conditions:
- "{{ any_notification_active }}"
sequence:
- choose:
- conditions:
- "{{ states('light.' ~ target_light_name ~ '_trigger_1') != 'on' and
states('light.' ~ target_light_name ~ '_trigger_2') != 'on' and
states('light.' ~ target_light_name ~ '_trigger_3') != 'on' and
states('light.' ~ target_light_name ~ '_trigger_4') != 'on' }}"
sequence:
- service: scene.create
data:
scene_id: "light_notification_snapshot_{{ target_light_name }}"
entities:
"{{ target_light_entity }}":
state: "{{ states(target_light_entity) }}"
brightness: "{{ state_attr(target_light_entity, 'brightness') | default(None) }}"
rgb_color: "{{ state_attr(target_light_entity, 'rgb_color') | default(None) }}"
- choose:
# TRIGGER 1
- conditions:
- condition: state
entity_id: !input trigger_1
state:
- "on"
sequence:
- service: light.turn_on
data:
rgb_color: !input color_1
brightness: !input brightness_1
target:
entity_id: "{{ target_light_entity }}"
# TRIGGER 2
- conditions:
- condition: state
entity_id: !input trigger_2
state:
- "on"
sequence:
- service: light.turn_on
data:
rgb_color: !input color_2
brightness: !input brightness_2
target:
entity_id: "{{ target_light_entity }}"
# TRIGGER 3
- conditions:
- condition: state
entity_id: !input trigger_3
state:
- "on"
sequence:
- service: light.turn_on
data:
rgb_color: !input color_3
brightness: !input brightness_3
target:
entity_id: "{{ target_light_entity }}"
# TRIGGER 4
- conditions:
- condition: state
entity_id: !input trigger_4
state:
- "on"
sequence:
- service: light.turn_on
data:
rgb_color: !input color_4
brightness: !input brightness_4
target:
entity_id: "{{ target_light_entity }}"
default:
- service: scene.turn_on
target:
entity_id: "scene.light_notification_snapshot_{{ target_light_name }}"
default:
- service: scene.turn_on
target:
entity_id: "scene.light_notification_snapshot_{{ target_light_name }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment