Last active
January 7, 2026 03:15
-
-
Save yasalmasri/4e0d5673e5d44307c980fd66f877a8a7 to your computer and use it in GitHub Desktop.
Light Notifications
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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