Files
fresh-home/automations/rooms/blue_room/blue_room_lights_to_on.yaml
T
2024-04-14 14:08:56 -04:00

168 lines
5.7 KiB
YAML

alias: Blue Room Lights to On
id: automation_blue_room_lights_to_on
mode: single
# Hide warnings when triggered while in delay.
max_exceeded: silent
trigger:
- platform: state
id: mode_change
entity_id:
- input_select.blue_room_mode
- input_select.automatic_light_profile
- platform: state
id: occupied
entity_id:
- binary_sensor.blue_room_occupied
- input_boolean.blue_room_occupied
to: "on"
# - platform: state
# id: motion
# entity_id: group.blue_room_motion
# to: "on"
- platform: state
id: light_level
entity_id: binary_sensor.blue_room_naturally_lit
from: 'on'
to: 'off'
condition:
- alias: "Home is occupied"
condition: state
entity_id: input_boolean.home_occupied
state: "on"
- alias: "Check if light should turn on"
condition: or
conditions:
- alias: "Guest mode is on"
condition: state
entity_id: input_boolean.guest_mode
state: "on"
- alias: "Motion or occupancy were detected in a dim room"
condition: and
conditions:
- alias: "Light level below trigger amount"
condition: state
entity_id: binary_sensor.blue_room_naturally_lit
state: 'off'
- alias: "Motion or occupancy were detected"
condition: or
conditions:
- alias: "Motion was detected"
condition: trigger
id: "motion"
- alias: "Occupancy was detected"
condition: trigger
id: "occupied"
- alias: "A scene changed and the lights are already on"
condition: and
conditions:
- condition: trigger
id: "mode_change"
- condition: state
entity_id: input_boolean.blue_room_occupied
state: "on"
- alias: "The light level changed, the room is occupied, and the light is off"
condition: and
conditions:
- condition: trigger
id: light_level
- condition: state
entity_id: input_boolean.blue_room_occupied
state: 'on'
- condition: state
entity_id: light.blue_room_hue
state: 'off'
variables:
switch_name: switch.blue_room_motion_switch
light_name: blue_room_hue
mode_name: input_select.blue_room_mode
action:
- alias: "Make sure Z-Wave switch is turned on"
service: homeassistant.turn_on
target:
entity_id: "{{ switch_name }}"
- choose:
- alias: "If the room is set to manual, just turn the lights on"
conditions:
- alias: "Room set to manual"
condition: state
entity_id: input_select.blue_room_mode
state: Manual
sequence:
- service: light.turn_on
target:
entity_id: light.blue_room_hue
- alias: "If the room is set to auto, the lights are already on, and the room is dim, change to the Automatic Light Profile scene with a transition"
conditions:
- alias: "Room set to auto"
condition: state
entity_id: input_select.blue_room_mode
state: Auto
- alias: "Lights are on"
condition: state
entity_id: light.blue_room_hue
state: 'on'
- "{{ states('sensor.blue_room_multisensor_illuminance') | float(default=0) < states('input_number.blue_room_light_level_trigger') | float(default=0) }}"
sequence:
- service: scene.turn_on
data:
transition: "{{ states('input_number.light_scene_transition') }}"
target:
entity_id: "scene.{{light_name}}_{{states('input_select.automatic_light_profile').lower().replace(' ','_')}}"
- alias: "If the room is set to auto and the lights are off, change to the Automatic Light Profile scene without a transition"
conditions:
- alias: "Room set to auto"
condition: state
entity_id: input_select.blue_room_mode
state: Auto
- alias: "Lights are off"
condition: state
entity_id: light.blue_room_hue
state: 'off'
- "{{ states('sensor.blue_room_multisensor_illuminance') | float(default=0) < states('input_number.blue_room_light_level_trigger') | float(default=0) }}"
sequence:
- service: scene.turn_on
target:
entity_id: "scene.{{light_name}}_{{states('input_select.automatic_light_profile').lower().replace(' ','_')}}"
- alias: "If the room is not set to auto and the lights are on, change to the Blue Room Mode scene with a transition"
conditions:
- alias: "Room not manual or auto and lights are on"
condition: state
entity_id: light.blue_room_hue
state: 'on'
- "{{ states('sensor.blue_room_multisensor_illuminance') | float(default=0) < states('input_number.blue_room_light_level_trigger') | float(default=0) }}"
sequence:
- service: scene.turn_on
data:
transition: "{{ states('input_number.light_scene_transition') }}"
target:
entity_id: "scene.{{light_name}}_{{states(mode_name).lower().replace(' ','_')}}"
- alias: "If the room is not set to auto and the lights are on, change to the Blue Room Mode scene without a transition"
conditions:
- alias: "Room not manual or auto and lights are off"
condition: state
entity_id: light.blue_room_hue
state: 'off'
- "{{ states('sensor.blue_room_multisensor_illuminance') | float(default=0) < states('input_number.blue_room_light_level_trigger') | float(default=0) }}"
sequence:
- service: scene.turn_on
target:
entity_id: "scene.{{light_name}}_{{states(mode_name).lower().replace(' ','_')}}"
- delay: 1