blueprint: name: Sensor Light description: "# \U0001F4A1 Sensor Light\n**Version: 6.5**\n\nYour lighting experience, your way - take control and customize it to perfection! \U0001F4A1✨\n\n**If you like my blueprints, and would like to show your support or just say thank you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8) \U0001F642\n\n
The Automation Process: - Click here to expand\n\n\n \ - **Trigger:**\n - You can choose any [binary sensors](https://www.home-assistant.io/integrations/binary_sensor/) or [schedules](https://www.home-assistant.io/integrations/schedule) to trigger the automation.\n - A trigger sensor, such as a Motion Sensor, will activate lights, switches, scenes, and scripts when the automation is triggered.\n - A time delay begins the turning OFF process after all triggers are clear. See [grouping](https://community.home-assistant.io/t/481048/34) sensors for more information.\n \ - If triggers are activated again before the time delay ends, the automation resets for continuous lighting.\n\n - **Scene and Script Integration:**\n - Scenes or scripts offer additional customization for your spaces.\n\n - **Light Control Options:**\n - Utilize \"Light Control\" to adjust brightness, colour temperature, and transition times.\n\n - **Dynamic Lighting Options:**\n - Opt for 'Dynamic Lighting' to continuously adjust brightness based on lux values or adapt colour temperature and brightness according to the sun's changing elevation.\n\n \ - **Manual Override:**\n - Use \"Bypass Options\" for manual bypassing of trigger sensors, providing manual control and additional customization.\n\n - **Sun Elevation Options:**\n - Implement \"Sun Elevation\" to restrict automation to darker conditions aligned with the sun's position.\n\n - **Ambient Light Sensing Options:**\n - Set up an Ambient Light Sensor for activation in low-light conditions, customizable with specified LUX values.\n\n - **Time-Based Options:**\n - Specify precise start and end times along with weekday selections to define when the automation should run.\n\n - **Device Tracker Options:**\n - Utilize \"Device Tracker\" to activate automation when home or within specified zones, preventing unnecessary activations. This feature is particularly useful to prevent unnecessary lighting activations when pets trigger sensors while no one is home.\n\n - **Night Lights Mode:**\n - Enable \"Night Lights\" for softer illumination during night time activities, automatically enabled based on conditions.\n\n - **HA Restart Safeguards:**\n - Benefit from built-in safeguards for Home Assistant restarts.\n \ \n - **Blueprint Add-On Integration:**\n - Sensor Light Add-On - Enhances media control automation. [Click Here](https://community.home-assistant.io/t/591824) to learn more.\n - Bathroom Humidity Exhaust Fan - Keeps the lights ON when showering. [Click Here](https://community.home-assistant.io/t/509992) to learn more.\n
\n\nThe Settings & Best Practice Guidelines: [Click Here](https://community.home-assistant.io/t/481048/345)\nNeed help? See our FAQ: [Click Here](https://community.home-assistant.io/t/481048/6)\nLet us know what you think of this blueprint and for community support including updates: [Click Here](https://community.home-assistant.io/t/481048)\n\nRequired = *\n" domain: automation input: motion_trigger: name: Trigger Sensor - Binary Sensors - Schedule * description: 'The trigger sensors are responsible for turning the lights, switches, scenes, and scripts ON and OFF. You can choose any [binary sensors](https://www.home-assistant.io/integrations/binary_sensor/) you prefer as triggers. Alternatively, if you prefer a time-based trigger, you can also add a [schedule helper](https://community.home-assistant.io/t/481048/1616). When using multiple trigger sensors, it''s advisable to group them together using a group helper. This ensures smoother automation execution and prevents conflicts. For more information on grouping your trigger sensors [Click Here](https://community.home-assistant.io/t/481048/34)' selector: entity: filter: - domain: - binary_sensor - schedule multiple: true light_switch: name: Lights - Switches - Scenes - Scripts * description: 'The lights, switches, scenes, and scripts that will be activated by the trigger sensor/s. If adding a scene or script, please refer to the ''Scenes & Scripts - Toggle Helper'' section and the ''Scenes - Scripts To Turn OFF'' section below. For more information on how to use scenes & scripts [Click Here](https://community.home-assistant.io/t/481048/1595) **NOTE** - You can only use entities. Areas and devices are not supported.' selector: target: entity: - domain: - light - switch - scene - script boolean_scenes_scripts: name: Scenes & Scripts - Toggle Helper description: To ensure the smooth operation of the automation, it's recommended to create an independent toggle helper when selecting a scene or script in "Lights - Switches - Scenes - Scripts" above and then enter it here. default: [] selector: entity: filter: - domain: - input_boolean multiple: false end_scenes: name: Scenes - Scripts To Turn OFF description: If you have selected a scene or a script to be turned ON above in "Lights - Switches - Scenes - Scripts" or below in "Night Lights," and you would like it to be turned OFF after the time delay, then you must create a scene or a script with everything OFF and enter it here. default: [] selector: entity: multiple: true filter: - domain: - scene - script time_delay: name: Time Delay description: The time delay determines how long the lights, switches, scenes, and scripts will remain active after all triggers are clear, initiating the time delay to turn them OFF. default: 5 selector: number: min: 0.0 max: 30.0 step: 0.5 unit_of_measurement: minutes mode: slider include_light_control: name: Use The Light Control Options (Optional) description: Select if you would like to use brightness, colour temperature, or transition. These settings will only affect a 'light' entity that supports each selected option. The settings for brightness, colour temperature, and transition are provided below. default: [] selector: select: multiple: true options: - label: Use brightness value: use_brightness - label: Use colour temperature value: use_colour_temperature - label: Use transition value: use_transition sort: false custom_value: false light_brightness: name: Brightness description: The brightness setting for the lights when they are turned ON. default: 100 selector: number: min: 1.0 max: 100.0 mode: slider step: 1.0 unit_of_measurement: '%' light_colour_temperature: name: Colour Temperature description: The colour temperature setting for the lights when they are turned ON. default: 5000 selector: number: min: 2000.0 max: 8000.0 mode: slider step: 100.0 unit_of_measurement: kelvin light_transition_on: name: Transition - ON description: The transition setting for the lights when they are turned ON. default: 1 selector: number: min: 0.0 max: 5.0 mode: slider step: 0.5 unit_of_measurement: seconds light_transition_off: name: Transition - OFF description: The transition setting for the lights when they are turned OFF. default: 1 selector: number: min: 0.0 max: 30.0 mode: slider step: 1.0 unit_of_measurement: seconds include_dynamic_lighting: name: Use The Dynamic Lighting Options (Optional) description: 'This option aims to make continual adjustments in your lighting setup by modulating brightness according to floating lux values or adapting colour temperature and brightness based on the sun''s changing elevation. Choose from six preset options available in the dropdown menu. 1 - Lux Controlled Brightness 2 - Lux Controlled Brightness - Inverted 3 - Sun Elevation Lighting - Colour Temp 4 - Sun Elevation Lighting - Brightness 5 - Sun Elevation Lighting - Brightness - Inverted 6 - Sun Elevation Lighting - Colour Temp + Brightness 7 - Sun Elevation Lighting - Colour Temp + Lux Controlled Brightness A numbering system has been implemented to facilitate navigation within the dropdown selections. Each number corresponds to a specific configuration, aiding users in identifying and adjusting the settings used within each selection. For instance, when selecting "3 - Sun Elevation Lighting - Colour Temp" as a dropdown option, settings marked "Used in options 3, 6 or 7" are required for that respective selection because number 3 is included in those options. For more information on dynamic lighting settings [Click Here](https://community.home-assistant.io/t/481048/837)' default: disable_dynamic_lighting selector: select: mode: dropdown options: - label: Disable Dynamic Lighting value: disable_dynamic_lighting - label: 1 - Lux Controlled Brightness value: enable_lux_controled_brightness - label: 2 - Lux Controlled Brightness - Inverted value: enable_lux_controled_brightness_inv - label: 3 - Sun Elevation Lighting - Colour Temp value: enable_sun_elevation_colour - label: 4 - Sun Elevation Lighting - Brightness value: enable_sun_elevation_brightness - label: 5 - Sun Elevation Lighting - Brightness - Inverted value: enable_sun_elevation_brightness_inv - label: 6 - Sun Elevation Lighting - Colour Temp + Brightness value: enable_sun_elevation_colour_brightness - label: 7 - Sun Elevation Lighting - Colour Temp + Lux Brightness value: enable_sun_elevation_colour_lux_brightness multiple: false sort: false custom_value: false dynamic_lighting_lux_sensor: name: Dynamic Lighting - Ambient Light Sensor description: '**Used in options 1, 2 or 7** - Enter the specific ambient light sensor to be used, based on the chosen settings.' default: [] selector: entity: filter: - domain: - sensor device_class: - illuminance multiple: false dynamic_lighting_max_lux: name: Dynamic Lighting - Max Lux Value description: '**Used in options 1, 2 or 7** - Specify the maximum lux value. Once the lux level meets or surpasses this set point, your lights will adjust to either their maximum or minimum brightness, depending on your chosen option. This value indicates when you prefer your lights to start turning on or off' default: 400 selector: number: min: 10.0 max: 900.0 step: 10.0 unit_of_measurement: lux mode: slider dynamic_lighting_min_lux: name: Dynamic Lighting - Min Lux Value description: '**Used in options 1, 2 or 7** - Specify the minimum lux value. Once the lux level meets or surpasses this set point, your lights will adjust to either their maximum or minimum brightness, depending on your chosen option. This value indicates when you prefer your lights to start turning on or off' default: 40 selector: number: min: 0.0 max: 600.0 step: 10.0 unit_of_measurement: lux mode: slider dynamic_lighting_max_brightness: name: Dynamic Lighting - Max Brightness Value description: '**Used in options 1, 2, 4, 5, 6 or 7** - Define the maximum brightness value, determines the peak brightness level for your lights.' default: 100 selector: number: min: 10.0 max: 100.0 step: 1.0 unit_of_measurement: '%' mode: slider dynamic_lighting_min_brightness: name: Dynamic Lighting - Min Brightness Value description: '**Used in options 1, 2, 4, 5, 6 or 7** - Specify the minimum brightness value, establishing the lowest brightness level for your lights. When setting the brightness to 0%, the light will be turned off.' default: 0 selector: number: min: 0.0 max: 100.0 step: 1.0 unit_of_measurement: '%' mode: slider dynamic_lighting_max_colour_temp: name: Dynamic Lighting - Max Colour Temperature description: '**Used in options 3, 6 or 7** - Specify the highest colour temperature value, determining the coolest colour setting for your lights.' default: 5000 selector: number: min: 2500.0 max: 8000.0 mode: slider step: 100.0 unit_of_measurement: kelvin dynamic_lighting_min_colour_temp: name: Dynamic Lighting - Min Colour Temperature description: '**Used in options 3, 6 or 7** - Set the lowest colour temperature value, defining the warmest colour setting for your lights.' default: 3000 selector: number: min: 2000.0 max: 7500.0 mode: slider step: 100.0 unit_of_measurement: kelvin dynamic_lighting_sun_elevation_start_rising: name: Dynamic Lighting - Sun Elevation Rising - Start Point description: '**Used in options 3, 4, 5, 6 or 7** - When the sun rises above the sensor''s starting point, both the colour temperature and brightness percentage will transition linearly from their minimum to maximum values until they reach the rising endpoint, based on the chosen settings.' default: -1.5 selector: number: min: -10.0 max: 30.0 step: 0.5 unit_of_measurement: degrees mode: slider dynamic_lighting_sun_elevation_end_rising: name: Dynamic Lighting - Sun Elevation Rising - End Point description: '**Used in options 3, 4, 5, 6 or 7** - When the sun rises above the sensor''s endpoint, the maximum colour temperature and maximum brightness value will be established according to the chosen settings.' default: 15 selector: number: min: 0.0 max: 90.0 step: 0.5 unit_of_measurement: degrees mode: slider dynamic_lighting_sun_elevation_start_falling: name: Dynamic Lighting - Sun Elevation Descending - Start Point description: '**Used in options 3, 4, 5, 6 or 7** - When the sun descends below the sensor''s starting point, both the colour temperature and brightness percentage will transition linearly from their maximum to minimum values until they reach the descending endpoint, based on the chosen settings.' default: 15 selector: number: min: 0.0 max: 90.0 step: 0.5 unit_of_measurement: degrees mode: slider dynamic_lighting_sun_elevation_end_falling: name: Dynamic Lighting - Sun Elevation Descending - End Point description: '**Used in options 3, 4, 5, 6 or 7** - When the sun descends below the sensor''s endpoint, the minimum colour temperature and minimum brightness value will be established according to the chosen settings.' default: -4.0 selector: number: min: -10.0 max: 30.0 step: 0.5 unit_of_measurement: degrees mode: slider dynamic_lighting_heartbeat: name: Dynamic Lighting - Heartbeat description: '**Used in options 1, 2, 3, 4, 5, 6 or 7** - Define the heartbeat rate, setting the operational speed. During each heartbeat, it evaluates the lux value, light brightness, targeted brightness and the sun''s elevation based on the chosen settings, adjusting either brightness or colour temperature as per the selection.' default: 1 selector: number: min: 0.25 max: 10.0 step: 0.25 unit_of_measurement: minutes mode: slider dynamic_lighting_step_value: name: Dynamic Lighting - Step Value description: '**Used in options 1, 2 or 7** - With every heartbeat, the system evaluates the lux value, light brightness, and the targeted brightness. If the targeted brightness surpasses the predefined step value, the system applies the set step value to gracefully moderate the rate of changes, facilitating a smoother transition in light brightness.' default: 4 selector: number: min: 1.0 max: 100.0 step: 1.0 unit_of_measurement: '%' mode: slider dynamic_lighting_dead_zone: name: Dynamic Lighting - Dead Zone (±) description: '**Used in options 1, 2 or 7** - With every heartbeat, the system evaluates the current light brightness and the targeted brightness. If the targeted brightness falls within the defined dead zone, the system maintains the current light brightness. This prevents minor fluctuations in light intensity that could be bothersome to the eye.' default: 7 selector: number: min: 0.0 max: 15.0 step: 1.0 unit_of_measurement: '%' mode: slider include_bypass: name: Use The Bypass Options (Optional) description: 'Select if you would like to enable an option. Each option allows manual control of your lights but alters its behaviour by either turning ON, OFF, or keeping its current state when the bypass is switched ON. When enabling an option, please enter the bypass switch into the corresponding input below. For more information on how to use the bypass [Click Here](https://community.home-assistant.io/t/481048/895)' default: [] selector: select: options: - label: 1 - Enable the Bypass - Turn lights ON value: bypass_enabled_turn_on - label: 2 - Enable the Bypass - Turn lights OFF value: bypass_enabled_turn_off - label: 3 - Enable the Bypass - Keep the lights current state value: bypass_enabled_stop multiple: true sort: false custom_value: false motion_bypass_lights_on: name: Bypass Switch - Turn lights ON description: Select the switches that will turn your lights ON, bypass the trigger sensor, and allow your lights to function as normal. Please note that the entity cannot be included in the 'Lights - Switches - Scenes - Scripts' or 'Night Lights' selections. default: [] selector: entity: multiple: true motion_bypass_lights_off: name: Bypass Switch - Turn lights OFF description: Select the switches that will turn your lights OFF, bypass the trigger sensor, and allow your lights to function as normal. Please note that the entity cannot be included in the 'Lights - Switches - Scenes - Scripts' or 'Night Lights' selections. default: [] selector: entity: multiple: true motion_bypass_lights_stop: name: Bypass Switch - Keep The Lights Current State description: Select the switches that will keep your lights current state, bypass the trigger sensor, and allow your lights to function as normal. Please note that the entity cannot be included in the 'Lights - Switches - Scenes - Scripts' or 'Night Lights' selections. default: [] selector: entity: multiple: true bypass_time_delay: name: Bypass - Time Delay description: This is only used in two bypass scenarios; when the lights are already ON and when the automation turns the lights OFF. The first scenario occurs when you have selected option 2 above to "Enable the Bypass - Turn lights OFF". The second scenario occurs when you turn the bypass OFF, the trigger sensor is OFF, and your lights are ON. In both scenarios, the automation will turn your lights OFF after the set time delay. default: 0 selector: number: min: 0.0 max: 10.0 step: 0.25 unit_of_measurement: minutes mode: slider include_bypass_auto_off: name: Use The Bypass Auto OFF Option (Optional) description: This is used when you turn ON the bypass and want it to automatically turn OFF after a set time delay. You can choose which bypass option you would like to apply the auto OFF feature to default: [] selector: select: options: - label: Enable the auto OFF for the bypass switch - Turn lights ON value: bypass_auto_off_enabled_on - label: Enable the auto OFF for the bypass switch - Turn lights OFF value: bypass_auto_off_enabled_off - label: Enable the auto OFF for the bypass switch - Keep The Lights Current State value: bypass_auto_off_enabled_stop multiple: true sort: false custom_value: false bypass_auto_off_delay: name: Bypass Auto OFF - Time Delay description: Set the bypass auto OFF time delay. The time delay starts from the last bypass that was turned ON. default: 60 selector: number: min: 1.0 max: 240.0 step: 1.0 unit_of_measurement: minutes mode: slider include_sun: name: Use The Sun Option (Optional) description: 'This option is used to add a condition that only allows the automation to run when it is dark or below the ''Sun Elevation'' settings. It''s a global condition that can work alongside other options. Enabling this option is not necessary for the night lights sun elevation condition to work. For more information on sun settings [Click Here](https://community.home-assistant.io/t/481048/37)' default: sun_disabled selector: select: options: - label: Enable the sun option value: sun_enabled - label: Disable the sun option value: sun_disabled multiple: false sort: false custom_value: false sun_elevation: name: Sun Elevation Falling description: The sun elevation falling refers to the angle between the sun and the horizon when the sun is setting. A negative value indicates that the sun is BELOW the horizon. For example, a setting guide of -1.5 corresponds to dusk default: -1.5 selector: number: min: -10.0 max: 5.0 step: 0.5 unit_of_measurement: degrees mode: slider sun_elevation_rising: name: Sun Elevation Rising description: The sun elevation rising refers to the angle between the sun and the horizon during sunrise. A negative value indicates that the sun is BELOW the horizon. For example, a setting guide of -4.0 corresponds to dawn. default: -4.0 selector: number: min: -10.0 max: 5.0 step: 0.5 unit_of_measurement: degrees mode: slider include_ambient: name: Use The Ambient Options (Optional) description: 'This option is used to add a condition that only allows the automation to run when it is dark or below the ''Ambient'' settings. It''s a global condition that can work alongside other options. For more information on ambient settings [Click Here](https://community.home-assistant.io/t/481048/1608)' default: ambient_disabled selector: select: options: - label: Enable the ambient options value: ambient_enabled - label: Disable the ambient options value: ambient_disabled multiple: false sort: false custom_value: false ambient_light_sensor: name: Ambient Light Sensor description: Select the ambient sensor to be used. default: [] selector: entity: filter: - domain: - sensor device_class: - illuminance multiple: false ambient_light_options: name: Ambient Light Sensor - Site Conditions description: 'In some cases when your lights turn ON, your ambient light sensor is affected, increasing its LUX value. This can cause the lights to go OFF prematurely. Please select an option that best suits your installation. **NOTE** - If using an offset between the high and low lux value, then please select NO.' default: ambient_light_option_disabled selector: select: options: - label: YES - My Ambient Light Sensor is affected by the Lights value: ambient_light_option_enabled - label: NO - My Ambient Light Sensor is not affected by the Lights value: ambient_light_option_disabled multiple: false sort: false custom_value: false ambient_light_value: name: Ambient Light - Low Lux Value description: Set the Ambient Light Low Lux Value. The light will turn ON when the lux level is below the set value. This value must be equal or lower than the "High Lux Value" below. Guide is 20 lux (dusk). default: 20 selector: number: min: 0.0 max: 500.0 step: 10.0 unit_of_measurement: lux mode: slider ambient_light_high_value: name: Ambient Light - High Lux Value description: Set the Ambient Light High Lux Value. The light will turn OFF when the lux level is above the set value. This value must be equal or higher than the "Low Lux Value" above. Setting a value higher than the low value allows for an offset. Guide is 80 lux (dawn). default: 80 selector: number: min: 0.0 max: 1000.0 step: 10.0 unit_of_measurement: lux mode: slider include_time: name: Use The Time Options (Optional) description: 'This option is used to add a condition that only allows the automation to run between the start time and end time settings on the selected weekdays. These time settings are global conditions that can work alongside other options. Enabling this option is not necessary for the night lights time condition to work. For more information on time settings [Click Here](https://community.home-assistant.io/t/481048/310)' default: time_disabled selector: select: options: - label: Enable the time options value: time_enabled - label: Disable the time options value: time_disabled multiple: false sort: false custom_value: false after_time: name: Start Time description: Set the start time. default: 00:00:00 selector: time: {} before_time: name: End Time description: Set the end time. default: 00:00:00 selector: time: {} weekday_options: name: Weekdays description: Select the days of the week you would like the automation to run. You must select "Enable the time options" above for the weekday selections to work. default: - mon - tue - wed - thu - fri - sat - sun selector: select: multiple: true mode: list options: - label: Monday value: mon - label: Tuesday value: tue - label: Wednesday value: wed - label: Thursday value: thu - label: Friday value: fri - label: Saturday value: sat - label: Sunday value: sun sort: false custom_value: false include_device_tracker: name: Use The Device Tracker Options (Optional) description: Home Assistant can track the location of your devices (such as mobile phones) within a designated zone via the mobile app device tracker. To utilize this option, you need to set up a zone and configure your devices for tracking in Home Assistant. There are two enable options available; "Zone" tracks all devices within the zone, while "Zone + People" allows you to track individuals within a zone. This feature can be particularly useful if you have pets triggering the sensor, turning your lights ON and OFF when no one is home. default: device_tracker_disabled selector: select: options: - label: Enable the zone option value: zone_enabled - label: Enable the zone + people options value: zone_people_enabled - label: Disable the device tracker options value: device_tracker_disabled multiple: false sort: false custom_value: false zone: name: Device Tracker - Zone description: Choose the zone that will track your devices and/or people in it. default: [] selector: entity: filter: - domain: - zone multiple: false people: name: Device Tracker - People description: Select the people you would like to track in the zone selected above. You must enter a zone above for this option to work. default: [] selector: entity: multiple: true filter: - domain: - person include_night_lights: name: Use The Night Lights Options (Optional) description: Enabling the night lights options allows for separate and customizable lighting control when the night lights conditions are met. Night light condition options include entity state, time, or sun elevation. Please choose the condition option you would like to use below. This feature is particularly beneficial for creating a soothing ambiance with softer lighting at night. The flexibility of these options allows for personalized adjustments, enhancing your night time ambiance and comfort, especially when moving around during the night. default: night_lights_disabled selector: select: options: - label: Enable the night lights options value: night_lights_enabled - label: Disable the night lights options value: night_lights_disabled multiple: false sort: false custom_value: false night_lights: name: Night Lights description: 'The lights, switches, scenes, and scripts that will be activated by the trigger sensor/s. If adding a scene or script, please refer to the ''Night Lights - Scenes & Scripts - Toggle Helper'' section below and the ''Scenes - Scripts To Turn OFF'' section above. For more information on how to use scenes & scripts [Click Here](https://community.home-assistant.io/t/481048/1595) **NOTE** - You can only use entities. Areas and devices are not supported.' default: {} selector: target: entity: - domain: - light - switch - scene - script night_boolean_scenes_scripts: name: Night Lights - Scenes & Scripts - Toggle Helper description: To ensure the smooth operation of the automation, it's recommended to create an independent toggle helper when selecting a scene or script in "Night Lights" above and then enter it here. default: [] selector: entity: filter: - domain: - input_boolean multiple: false night_time_delay: name: Night Lights - Time Delay description: The time delay determines how long the night lights will remain active after all triggers are clear, initiating the time delay to turn them OFF. default: 5 selector: number: min: 0.0 max: 30.0 step: 0.5 unit_of_measurement: minutes mode: slider include_night_light_control: name: Night Lights - Use The Light Control Options (Optional) description: 'Select if you would like to use brightness, colour temperature, or transition. These settings will only affect a ''light'' entity that supports each selected option. The settings for brightness, colour temperature, and transition are provided below. Selecting ''If lights are ON, adjust the lights when crossing over'' option ensures that the light control settings will be applied to any lights that are already ON during the transition from normal lights to night lights and vice versa. Selecting ''Yes - Manage OFF script when crossing over'' is beneficial for scripts containing if-then-else actions that toggle various functions on and off during the transition from normal lights to night lights and vice versa.' default: [] selector: select: multiple: true options: - label: Use brightness value: use_brightness - label: Use colour temperature value: use_colour_temperature - label: Use transition value: use_transition - label: If lights are ON, adjust the lights when crossing over value: if_lights_are_on_adjust_when_crossing_over - label: Yes - Manage OFF script when crossing over value: manage_scripts_crossing_over sort: false custom_value: false night_light_brightness: name: Night Lights - Brightness description: The brightness setting of the night lights when they are turned ON. default: 20 selector: number: min: 1.0 max: 100.0 mode: slider step: 1.0 unit_of_measurement: '%' night_light_colour_temperature: name: Night Lights - Colour Temperature description: The colour temperature setting for the night lights when they are turned ON. default: 5000 selector: number: min: 2000.0 max: 8000.0 mode: slider step: 100.0 unit_of_measurement: kelvin night_light_transition_on: name: Night Lights - Transition - ON description: The transition of the night lights when they are turned ON. default: 1 selector: number: min: 0.0 max: 5.0 mode: slider step: 0.5 unit_of_measurement: seconds night_light_transition_off: name: Night Lights - Transition - OFF description: The transition of the night lights when they are turned OFF. default: 1 selector: number: min: 0.0 max: 30.0 mode: slider step: 1.0 unit_of_measurement: seconds night_lights_conditions: name: Night Lights Conditions (Required For Night Lights) description: Select any night light condition from the options provided. Ensure you've enabled 'Use the night lights options' in the section above and choose at least one 'Night Lights Condition' for night lights to operate. Settings for each option are provided below default: [] selector: select: multiple: true options: - label: Enable entity state option value: entity_state_enabled - label: Enable time option value: time_enabled - label: Enable sun elevation option value: sun_enabled sort: false custom_value: false night_lights_entity_state: name: Night Lights - Entity State description: 'Select an entity that will trigger the activation of night lights when turned ON. This could be your phone on ''Do Not Disturb'', a helper, a bed sensor, etc. Please note that the selected entity cannot be included in the ''Lights - Switches - Scenes - Scripts'' or ''Night Lights'' selections. For more information on entity state [Click Here](https://community.home-assistant.io/t/481048/663)' default: [] selector: entity: multiple: true night_lights_after_time: name: Night Lights - Start Time description: Set the start time. default: 00:00:00 selector: time: {} night_lights_before_time: name: Night Lights - End Time description: Set the end time. default: 00:00:00 selector: time: {} night_lights_sun_elevation: name: Night Lights - Sun Elevation Falling description: The sun elevation falling refers to the angle between the sun and the horizon when the sun is setting. A negative value indicates that the sun is BELOW the horizon. For example, a setting guide of -1.5 corresponds to dusk. default: -1.5 selector: number: min: -10.0 max: 5.0 step: 0.5 unit_of_measurement: degrees mode: slider night_lights_sun_elevation_rising: name: Night Lights - Sun Elevation Rising description: The sun elevation rising refers to the angle between the sun and the horizon during sunrise. A negative value indicates that the sun is BELOW the horizon. For example, a setting guide of -4.0 corresponds to dawn. default: -4.0 selector: number: min: -10.0 max: 5.0 step: 0.5 unit_of_measurement: degrees mode: slider source_url: https://gist.github.com/Blackshome/6edfec0ff6a25c5da0d07b88dc908238 mode: restart max_exceeded: silent variables: motion_trigger: !input motion_trigger light_switch: !input light_switch boolean_scenes_scripts: !input boolean_scenes_scripts end_scenes: !input end_scenes time_delay: !input time_delay include_light_control: !input include_light_control light_brightness: !input light_brightness brightness_value: '{{ iif (''use_brightness'' in include_light_control , light_brightness, ) }}' light_colour_temperature: !input light_colour_temperature temperature_value: '{{ iif (''use_colour_temperature'' in include_light_control , light_colour_temperature, [] ) }}' light_transition_on: !input light_transition_on light_transition_off: !input light_transition_off transition_on_value: '{{ iif (''use_transition'' in include_light_control, light_transition_on, ) }}' transition_off_value: '{{ iif (''use_transition'' in include_light_control, light_transition_off, ) }}' include_dynamic_lighting: !input include_dynamic_lighting dynamic_lighting_lux_sensor: !input dynamic_lighting_lux_sensor dynamic_lighting_max_lux: !input dynamic_lighting_max_lux dynamic_lighting_min_lux: !input dynamic_lighting_min_lux dynamic_lighting_max_brightness: !input dynamic_lighting_max_brightness dynamic_lighting_min_brightness: !input dynamic_lighting_min_brightness dynamic_lighting_max_colour_temp: !input dynamic_lighting_max_colour_temp dynamic_lighting_min_colour_temp: !input dynamic_lighting_min_colour_temp dynamic_lighting_sun_elevation_start_rising: !input dynamic_lighting_sun_elevation_start_rising dynamic_lighting_sun_elevation_end_rising: !input dynamic_lighting_sun_elevation_end_rising dynamic_lighting_sun_elevation_start_falling: !input dynamic_lighting_sun_elevation_start_falling dynamic_lighting_sun_elevation_end_falling: !input dynamic_lighting_sun_elevation_end_falling dynamic_lighting_heartbeat: !input dynamic_lighting_heartbeat dynamic_lighting_step_value: !input dynamic_lighting_step_value dynamic_lighting_dead_zone: !input dynamic_lighting_dead_zone include_bypass: !input include_bypass motion_bypass_lights_on: !input motion_bypass_lights_on motion_bypass_lights_off: !input motion_bypass_lights_off motion_bypass_lights_stop: !input motion_bypass_lights_stop bypass_time_delay: !input bypass_time_delay include_bypass_auto_off: !input include_bypass_auto_off bypass_auto_off_delay: !input bypass_auto_off_delay include_sun: !input include_sun sun_elevation: !input sun_elevation sun_elevation_rising: !input sun_elevation_rising include_ambient: !input include_ambient ambient_light_sensor: !input ambient_light_sensor ambient_light_options: !input ambient_light_options ambient_light_value: !input ambient_light_value ambient_light_high_value: !input ambient_light_high_value include_time: !input include_time after_time: !input after_time before_time: !input before_time weekday_options: !input weekday_options include_device_tracker: !input include_device_tracker zone: !input zone people: !input people include_night_lights: !input include_night_lights night_lights: !input night_lights night_boolean_scenes_scripts: !input night_boolean_scenes_scripts night_time_delay: !input night_time_delay include_night_light_control: !input include_night_light_control night_light_brightness: !input night_light_brightness night_brightness_value: '{{ iif (''use_brightness'' in include_night_light_control , night_light_brightness, ) }}' night_light_colour_temperature: !input night_light_colour_temperature night_temperature_value: '{{ iif (''use_colour_temperature'' in include_night_light_control , night_light_colour_temperature, [] ) }}' night_light_transition_on: !input night_light_transition_on night_light_transition_off: !input night_light_transition_off night_transition_on_value: '{{ iif (''use_transition'' in include_night_light_control, night_light_transition_on, ) }}' night_transition_off_value: '{{ iif (''use_transition'' in include_night_light_control, night_light_transition_off, ) }}' night_lights_conditions: !input night_lights_conditions night_lights_entity_state: !input night_lights_entity_state night_lights_after_time: !input night_lights_after_time night_lights_before_time: !input night_lights_before_time night_lights_sun_elevation: !input night_lights_sun_elevation night_lights_sun_elevation_rising: !input night_lights_sun_elevation_rising light_entities_off: '{{ expand(light_switch.entity_id) | selectattr(''domain'', ''eq'', ''light'') | selectattr(''state'', ''eq'', ''off'') | map(attribute=''entity_id'') | list }}' switch_entities_off: '{{ expand(light_switch.entity_id) | selectattr(''domain'', ''eq'', ''switch'') | selectattr(''state'', ''eq'', ''off'') | map(attribute=''entity_id'') | list }}' light_entities: '{{ expand(light_switch.entity_id) | selectattr(''domain'', ''eq'', ''light'') | map(attribute=''entity_id'') | list }}' switch_entities: '{{ expand(light_switch.entity_id) | selectattr(''domain'', ''eq'', ''switch'') | map(attribute=''entity_id'') | list }}' scene_entities: "{% set a = light_switch.entity_id %} {% if boolean_scenes_scripts == [] %}\n {{ expand(a) | selectattr('domain', 'eq', 'scene') | map(attribute='entity_id') | list }}\n{% elif is_state(boolean_scenes_scripts, 'off') %}\n {{ expand(a) | selectattr('domain', 'eq', 'scene') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" script_entities: "{% set a = light_switch.entity_id %} {% if boolean_scenes_scripts == [] %}\n {{ expand(a) | selectattr('domain', 'eq', 'script') | map(attribute='entity_id') | list }}\n{% elif is_state(boolean_scenes_scripts, 'off') %}\n {{ expand(a) | selectattr('domain', 'eq', 'script') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" boolean_scenes_scripts_helper: "{% if boolean_scenes_scripts | length > 0 and states(boolean_scenes_scripts) == 'off' %}\n {{ boolean_scenes_scripts }}\n{% else %}\n []\n{% endif %}" end_scene_entities: '{{ end_scenes | select(''match'', ''^scene\..*'') | list }}' end_script_entities: '{{ end_scenes | select(''match'', ''^script\..*'') | list }}' night_light_entities_off: "{% set b = night_lights and night_lights.entity_id %} {% if b %}\n {{ expand(b) | selectattr('domain', 'eq', 'light') | selectattr('state', 'eq', 'off') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_switch_entities_off: "{% set b = night_lights and night_lights.entity_id %} {% if b %}\n {{ expand(b) | selectattr('domain', 'eq', 'switch') | selectattr('state', 'eq', 'off') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_light_entities: "{% set b = night_lights and night_lights.entity_id %} {% if b %}\n {{ expand(b) | selectattr('domain', 'eq', 'light') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_switch_entities: "{% set b = night_lights and night_lights.entity_id %} {% if b %}\n {{ expand(b) | selectattr('domain', 'eq', 'switch') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_scene_entities: "{% set b = night_lights and night_lights.entity_id %} {% if night_boolean_scenes_scripts == [] %}\n {{ expand(b) | selectattr('domain', 'eq', 'scene') | map(attribute='entity_id') | list }}\n{% elif is_state(night_boolean_scenes_scripts, 'off') %}\n {{ expand(b) | selectattr('domain', 'eq', 'scene') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_script_entities: "{% set b = night_lights and night_lights.entity_id %} {% if night_boolean_scenes_scripts == [] %}\n {{ expand(b) | selectattr('domain', 'eq', 'script') | map(attribute='entity_id') | list }}\n{% elif is_state(night_boolean_scenes_scripts, 'off') %}\n {{ expand(b) | selectattr('domain', 'eq', 'script') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" night_boolean_scenes_scripts_helper: "{% if night_boolean_scenes_scripts | length > 0 and states(night_boolean_scenes_scripts) == 'off' %}\n {{ night_boolean_scenes_scripts }}\n{% else %}\n []\n{% endif %}" crossover_lights_light: "{% set a = light_switch.entity_id %} {% set b = night_lights and night_lights.entity_id %} {% if a and b %}\n {{ expand(a) | reject('in', expand(b)) | selectattr('domain', 'eq', 'light') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" crossover_lights_switch: "{% set a = light_switch.entity_id %} {% set b = night_lights and night_lights.entity_id %} {% if a and b %}\n {{ expand(a) | reject('in', expand(b)) | selectattr('domain', 'eq', 'switch') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" crossover_night_lights_light_on: "{% set b = night_lights and night_lights.entity_id %} {% if b %}\n {{ expand(b) | selectattr('domain', 'eq', 'light') | selectattr('state', 'eq', 'on') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" crossover_night_lights_light: "{% set a = light_switch.entity_id %} {% set b = night_lights and night_lights.entity_id %} {% if a and b %}\n {{ expand(b) | reject('in', expand(a)) | selectattr('domain', 'eq', 'light') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" crossover_night_lights_switch: "{% set a = light_switch.entity_id %} {% set b = \ night_lights and night_lights.entity_id %} {% if a and b %}\n {{ expand(b) | reject('in', expand(a)) | selectattr('domain', 'eq', 'switch') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" crossover_lights_light_on: "{% set a = light_switch.entity_id %} {% if a %}\n {{ expand(a) | selectattr('domain', 'eq', 'light') | selectattr('state', 'eq', 'on') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" trigger: - platform: state id: t0 entity_id: !input motion_trigger from: 'off' to: 'on' - platform: numeric_state id: t1 entity_id: sun.sun attribute: elevation below: !input sun_elevation - platform: numeric_state id: t2 entity_id: !input ambient_light_sensor below: !input ambient_light_value - platform: time id: t3 at: !input after_time - platform: state id: t4 entity_id: !input night_lights_entity_state from: 'off' to: 'on' - platform: time id: t5 at: !input night_lights_after_time - platform: numeric_state id: t6 entity_id: sun.sun attribute: elevation below: !input night_lights_sun_elevation - platform: state id: t7_on entity_id: !input motion_bypass_lights_on from: 'off' to: 'on' - platform: state id: t7_off entity_id: !input motion_bypass_lights_off from: 'off' to: 'on' - platform: state id: t7_stop entity_id: !input motion_bypass_lights_stop from: 'off' to: 'on' - platform: state id: t8_on entity_id: !input motion_bypass_lights_on from: 'on' to: 'off' - platform: state id: t8_off entity_id: !input motion_bypass_lights_off from: 'on' to: 'off' - platform: state id: t8_stop entity_id: !input motion_bypass_lights_stop from: 'on' to: 'off' - platform: numeric_state id: t9 entity_id: sun.sun attribute: elevation above: !input sun_elevation_rising - platform: numeric_state id: t10 entity_id: !input ambient_light_sensor above: !input ambient_light_high_value - platform: time id: t11 at: !input before_time - platform: state id: t12 entity_id: !input night_lights_entity_state from: 'on' to: 'off' - platform: time id: t13 at: !input night_lights_before_time - platform: numeric_state id: t14 entity_id: sun.sun attribute: elevation above: !input night_lights_sun_elevation_rising - platform: homeassistant id: t15 event: start condition: - condition: or conditions: - condition: and conditions: - condition: state entity_id: !input motion_trigger match: any state: 'on' - condition: trigger id: t0 - condition: and conditions: - condition: state entity_id: !input motion_trigger state: 'on' match: any - '{{ include_sun == ''sun_enabled'' }}' - condition: trigger id: t1 - condition: and conditions: - condition: state entity_id: !input motion_trigger state: 'on' match: any - '{{ include_ambient == ''ambient_enabled'' }}' - condition: trigger id: t2 - condition: and conditions: - condition: state entity_id: !input motion_trigger state: 'on' match: any - '{{ include_time == ''time_enabled'' }}' - condition: trigger id: t3 - condition: and conditions: - condition: trigger id: t4 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''entity_state_enabled'' in night_lights_conditions }}' - condition: state entity_id: !input night_lights_entity_state match: any state: 'on' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t5 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''time_enabled'' in night_lights_conditions }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t6 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''sun_enabled'' in night_lights_conditions }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t7_on - '{{ ''bypass_enabled_turn_on'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t7_off - '{{ ''bypass_enabled_turn_off'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t7_stop - '{{ ''bypass_enabled_stop'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t8_on - '{{ ''bypass_enabled_turn_on'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t8_off - '{{ ''bypass_enabled_turn_off'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t8_stop - '{{ ''bypass_enabled_stop'' in include_bypass }}' - condition: and conditions: - condition: trigger id: t9 - '{{ include_sun == ''sun_enabled'' }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t10 - '{{ include_ambient == ''ambient_enabled'' }}' - '{{ ambient_light_options == ''ambient_light_option_disabled'' }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t11 - '{{ include_time == ''time_enabled'' }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t12 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''entity_state_enabled'' in night_lights_conditions }}' - condition: state entity_id: !input night_lights_entity_state state: 'off' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t13 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''time_enabled'' in night_lights_conditions }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t14 - '{{ include_night_lights == ''night_lights_enabled'' }}' - '{{ ''sun_enabled'' in night_lights_conditions }}' - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: trigger id: t15 - condition: or conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - condition: state entity_id: !input motion_trigger match: any state: 'on' - condition: trigger id: t15 - condition: and conditions: - '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' - condition: trigger id: t15 - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: or conditions: - '{{ include_bypass == [] }}' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: trigger id: - t7_on - t7_off - t7_stop - t8_on - t8_off - t8_stop - t15 - condition: or conditions: - '{{ include_sun == ''sun_disabled'' }}' - '{{ include_sun == ''sun_enabled_night_lights'' }}' - '{{ (include_sun == ''sun_enabled'') and (is_state_attr(''sun.sun'', ''rising'', false)) and (state_attr(''sun.sun'',''elevation'') <= sun_elevation | float(90)) }}' - '{{ (include_sun == ''sun_enabled'') and (is_state_attr(''sun.sun'', ''rising'', true)) and (state_attr(''sun.sun'',''elevation'') <= sun_elevation_rising | float(90)) }}' - condition: trigger id: - t7_on - t7_off - t7_stop - t8_on - t8_off - t8_stop - t9 - condition: or conditions: - '{{ include_ambient == ''ambient_disabled'' }}' - '{{ ambient_light_sensor == [] }}' - '{{ (include_ambient == ''ambient_enabled'') and (states[ambient_light_sensor].state | int < ambient_light_value | int) }}' - '{{ (include_ambient == ''ambient_enabled'') and (states[ambient_light_sensor].state | int < ambient_light_high_value | int) and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_ambient == ''ambient_enabled'') and (states[ambient_light_sensor].state | int < ambient_light_high_value | int) and ((include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and ((include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - condition: and conditions: - '{{ (include_ambient == ''ambient_enabled'') and (states[ambient_light_sensor].state | int < ambient_light_high_value | int) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - '{{ (include_ambient == ''ambient_enabled'') and (states[ambient_light_sensor].state | int < ambient_light_high_value | int) }}' - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - '{{ (include_ambient == ''ambient_enabled'') and ( ambient_light_options == ''ambient_light_option_enabled'' ) }}' - condition: template value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: and conditions: - '{{ (include_ambient == ''ambient_enabled'') and ( ambient_light_options == ''ambient_light_option_enabled'' ) }}' - condition: template value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts, 'on') }}\n{% endif %}" - condition: trigger id: - t7_on - t7_off - t7_stop - t8_on - t8_off - t8_stop - t10 - condition: or conditions: - '{{ include_time == ''time_disabled'' }}' - condition: and conditions: - condition: time after: !input after_time before: !input before_time weekday: !input weekday_options - '{{ include_time == ''time_enabled'' }}' - condition: trigger id: - t7_on - t7_off - t7_stop - t8_on - t8_off - t8_stop - t11 - condition: or conditions: - '{{ include_device_tracker == ''device_tracker_disabled'' }}' - condition: and conditions: - condition: numeric_state entity_id: !input zone above: 0 - '{{ include_device_tracker == ''zone_enabled'' }}' - condition: and conditions: - '{{ (state_attr(zone, ''persons'') + people) | count != dict.fromkeys(state_attr(zone, ''persons'') + people) | count }}' - '{{ include_device_tracker == ''zone_people_enabled'' }}' - condition: trigger id: - t7_on - t7_off - t7_stop - t8_on - t8_off - t8_stop action: - choose: - alias: Check if the night lights are enabled and within the night lights conditions conditions: - condition: and conditions: - alias: Check if night lights is enabled condition: or conditions: - '{{ ''night_lights_enabled'' in include_night_lights }}' - alias: Check if night lights entity state is enabled condition: or conditions: - '{{ (''time_enabled'' in night_lights_conditions) and not (''entity_state_enabled'' in night_lights_conditions) }}' - '{{ (''sun_enabled'' in night_lights_conditions) and not (''entity_state_enabled'' in night_lights_conditions) }}' - condition: and conditions: - '{{ ''entity_state_enabled'' in night_lights_conditions }}' - condition: state entity_id: !input night_lights_entity_state state: 'on' match: any - alias: Check if night lights time is enabled condition: or conditions: - '{{ (''entity_state_enabled'' in night_lights_conditions) and not (''time_enabled'' in night_lights_conditions) }}' - '{{ (''sun_enabled'' in night_lights_conditions) and not (''time_enabled'' in night_lights_conditions) }}' - condition: and conditions: - '{{ ''time_enabled'' in night_lights_conditions }}' - condition: time after: !input night_lights_after_time before: !input night_lights_before_time - alias: Check if night lights sun is enabled condition: or conditions: - '{{ (''entity_state_enabled'' in night_lights_conditions) and not (''sun_enabled'' in night_lights_conditions) }}' - '{{ (''time_enabled'' in night_lights_conditions) and not (''sun_enabled'' in night_lights_conditions) }}' - '{{ (''sun_enabled'' in night_lights_conditions) and (((is_state_attr(''sun.sun'', ''rising'', false)) and (state_attr(''sun.sun'',''elevation'') <= night_lights_sun_elevation | float(90))) or ((is_state_attr(''sun.sun'', ''rising'', true)) and (state_attr(''sun.sun'',''elevation'') <= night_lights_sun_elevation_rising | float(90)))) }}' sequence: - choose: - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: t7_off sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' data: transition: '{{ night_transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ night_switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - alias: By-pass is turned on & check by-pass option - Keep the current lights state conditions: - condition: trigger id: t7_stop sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: By-pass is turned off & check if the motion trigger is off conditions: - condition: trigger id: - t8_on - t8_off - t8_stop - condition: state entity_id: !input motion_trigger match: all state: 'off' sequence: - choose: - alias: Check all by-pass are off conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' data: transition: '{{ night_transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ night_switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - stop: Stop the automation - alias: Motion trigger is off and check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - alias: By-pass is turned off & check if the motion trigger is on conditions: - condition: trigger id: - t8_on - t8_off - t8_stop - condition: state entity_id: !input motion_trigger match: any state: 'on' sequence: - choose: - alias: 'Check all by-pass are off and check conditions if enabled ' conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: or conditions: - '{{ (include_sun == ''sun_enabled'') and (state_attr(''sun.sun'',''elevation'') >= sun_elevation | float(90)) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_disabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) and (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) and (is_state(night_boolean_scenes_scripts, ''off'')) }}' - condition: and conditions: - condition: time after: !input before_time before: !input after_time - '{{ include_time == ''time_enabled'' }}' sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' data: transition: '{{ night_transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ night_switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - stop: Stop the automation - alias: Motion trigger is on and check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - choose: - alias: Sun, Ambient Light Sensor & time above setting to turn off conditions: - condition: trigger id: - t9 - t10 - t11 sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' data: transition: '{{ night_transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ night_switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the input boolean night lights service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - stop: Stop the automation - alias: Turn off normal lights when trigger by start night lights conditions conditions: - condition: trigger id: - t4 - t5 - t6 sequence: - choose: - alias: light - switch - scene - script is ON conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or (is_state(boolean_scenes_scripts, ''on'')) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ crossover_lights_light }}' data: transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ crossover_lights_light }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ crossover_lights_switch }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - choose: - alias: If adjust light settings when crossing over if lights are ON is selected in night light control conditions: - condition: template value_template: '{{ ''if_lights_are_on_adjust_when_crossing_over'' in include_night_light_control }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the input boolean normal lights service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - choose: - alias: Set the transition and brightness for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: transition: '{{ night_transition_on_value }}' brightness_pct: '{{ night_brightness_value }}' - alias: Set the transition and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: transition: '{{ night_transition_on_value }}' kelvin: '{{ night_temperature_value }}' - alias: Set the transition, brightness and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: transition: '{{ night_transition_on_value }}' brightness_pct: '{{ night_brightness_value }}' kelvin: '{{ night_temperature_value }}' - alias: Set the brightness for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: brightness_pct: '{{ night_brightness_value }}' - alias: Set the colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: kelvin: '{{ night_temperature_value }}' - alias: Set the brightness and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_night_lights_light_on }}' data: brightness_pct: '{{ night_brightness_value }}' kelvin: '{{ night_temperature_value }}' - alias: light - switch - scene - script is ON conditions: - '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) or (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) or (is_state(boolean_scenes_scripts, ''off'')) }}' sequence: - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - stop: Stop the automation - alias: Safe Guard when HA restarts conditions: - condition: trigger id: t15 sequence: - choose: - alias: 'Check all by-pass are off and check conditions if enabled ' conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' sequence: - alias: Small time delay required delay: seconds: 1 - alias: Check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass auto off is enabled and preform the correct if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - choose: - alias: Set the transition for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: transition: '{{ night_transition_on_value }}' - alias: Set the transition and brightness for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: transition: '{{ night_transition_on_value }}' brightness_pct: '{{ night_brightness_value }}' - alias: Set the transition and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: transition: '{{ night_transition_on_value }}' kelvin: '{{ night_temperature_value }}' - alias: Set the transition, brightness and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: transition: '{{ night_transition_on_value }}' brightness_pct: '{{ night_brightness_value }}' kelvin: '{{ night_temperature_value }}' - alias: Set the brightness for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: brightness_pct: '{{ night_brightness_value }}' - alias: Set the colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: kelvin: '{{ night_temperature_value }}' - alias: Set the brightness and colour temperature for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' in include_night_light_control) and (''use_colour_temperature'' in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' data: brightness_pct: '{{ night_brightness_value }}' kelvin: '{{ night_temperature_value }}' - alias: Set the default for the night lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_night_light_control) and (''use_brightness'' not in include_night_light_control) and (''use_colour_temperature'' not in include_night_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ night_light_entities_off }}' - choose: - alias: Check if normal lights scenes or scripts helper is on - This is for scenes only when crossing over conditions: - condition: template value_template: "{% if boolean_scenes_scripts == [] %}\n false\n{% elif is_state(boolean_scenes_scripts, 'on') %}\n true\n{% else %}\n false\n{% endif %}" sequence: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn on the night scenes service: scene.turn_on target: entity_id: '{{ night_scene_entities }}' data: transition: '{{ night_transition_on_value }}' - alias: Turn on the boolean for scenes and scripts service: input_boolean.turn_on data: entity_id: '{{ night_boolean_scenes_scripts_helper }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn on the night scenes service: scene.turn_on target: entity_id: '{{ night_scene_entities }}' - alias: Turn on the boolean for scenes and scripts service: input_boolean.turn_on data: entity_id: '{{ night_boolean_scenes_scripts_helper }}' - alias: Turn on the night switches service: switch.turn_on target: entity_id: '{{ night_switch_entities_off }}' - alias: Turn on the night scripts service: script.turn_on target: entity_id: '{{ night_script_entities }}' - choose: - alias: By-pass is enabled & check by-pass option - turn lights on conditions: - condition: trigger id: t7_on sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: Check if the trigger is on and wait for it to go off conditions: - condition: state entity_id: !input motion_trigger state: 'on' match: any sequence: - alias: Wait until motion sensor is off wait_for_trigger: platform: state entity_id: !input motion_trigger from: 'on' to: 'off' - alias: Wait the number of minutes set in the night lights time delay delay: minutes: !input night_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' data: transition: '{{ night_transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ night_light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ night_switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts default: - choose: - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: t7_off sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - alias: By-pass is turned on & check by-pass option - Keep the current lights state conditions: - condition: trigger id: t7_stop sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: By-pass is turned off & check if the motion trigger is off conditions: - condition: trigger id: - t8_on - t8_off - t8_stop - condition: state entity_id: !input motion_trigger match: all state: 'off' sequence: - choose: - alias: Check all by-pass are off conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - stop: Stop the automation - alias: Motion trigger is off and check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - alias: By-pass is turned off & check if the motion trigger is on conditions: - condition: trigger id: - t8_on - t8_off - t8_stop - condition: state entity_id: !input motion_trigger match: any state: 'on' sequence: - choose: - alias: 'Check all by-pass are off and check conditions if enabled ' conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: or conditions: - '{{ (include_sun == ''sun_enabled'') and (state_attr(''sun.sun'',''elevation'') >= sun_elevation | float(90)) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_disabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) }}' - '{{ (include_ambient == ''ambient_enabled'') and (ambient_light_options == ''ambient_light_option_enabled'') and (states[ambient_light_sensor].state | int > ambient_light_value | int) and (is_state(boolean_scenes_scripts, ''off'')) }}' - condition: and conditions: - condition: time after: !input before_time before: !input after_time - '{{ include_time == ''time_enabled'' }}' sequence: - alias: Wait the number of minutes set in the by-pass time delay delay: minutes: !input bypass_time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - stop: Stop the automation - alias: Motion trigger is on and check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - choose: - alias: Sun, Ambient Light Sensor & time above setting to turn off conditions: - condition: trigger id: - t9 - t10 - t11 sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the input boolean night lights service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts - stop: Stop the automation - alias: Turn off night lights when trigger by end night lights conditions conditions: - condition: trigger id: - t12 - t13 - t14 sequence: - choose: - alias: If transition is selected conditions: - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or (is_state(night_boolean_scenes_scripts, ''on'')) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ crossover_night_lights_light }}' data: transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ crossover_night_lights_light }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ crossover_night_lights_switch }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - choose: - alias: If adjust light settings when crossing over if lights are ON is selected in night light control conditions: - condition: template value_template: '{{ ''if_lights_are_on_adjust_when_crossing_over'' in include_night_light_control }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_night_light_control }}' sequence: - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ night_transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_night_light_control }}' sequence: - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the input boolean night lights service: input_boolean.turn_off data: entity_id: !input night_boolean_scenes_scripts - choose: - alias: Set the transition and brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: transition: '{{ transition_on_value }}' kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' kelvin: '{{temperature_value}}' - alias: Set the brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''enable_lux_controled_brightness'' not in include_dynamic_lighting) and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ crossover_lights_light_on }}' data: brightness_pct: '{{ brightness_value }}' kelvin: '{{temperature_value}}' - alias: If transition is selected conditions: - '{{ ''manage_scripts_crossing_over'' in include_night_light_control }}' - '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) or (expand(night_lights.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0) or (is_state(night_boolean_scenes_scripts, ''off'')) }}' sequence: - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - stop: Stop the automation - alias: Safe Guard when HA restarts conditions: - condition: trigger id: t15 sequence: - choose: - alias: 'Check all by-pass are off and check conditions if enabled ' conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off state: 'off' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop state: 'off' sequence: - alias: Small time delay required delay: seconds: 1 - alias: Check if any by-passes are on conditions: - condition: or conditions: - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: or conditions: - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_on match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_enabled_stop'' not in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_off match: any state: 'on' - condition: and conditions: - '{{ (''bypass_enabled_turn_on'' not in include_bypass) and (''bypass_enabled_turn_off'' not in include_bypass) and (''bypass_enabled_stop'' in include_bypass) }}' - condition: state entity_id: !input motion_bypass_lights_stop match: any state: 'on' sequence: - alias: Check by-pass auto off is enabled and preform the correct if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation - alias: Parallel Actions for dynamic lighting parallel: - sequence: - alias: Check if the dynamic lighting is enabled condition: and conditions: - condition: template value_template: '{{ include_dynamic_lighting != ''disable_dynamic_lighting'' }}' - choose: - alias: Set the Dynamic Lux Controlled Brightness for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_lux_controled_brightness''}}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition and dynamic lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the transition, dynamic lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Dynamic Lighting - Lux Controlled Brightness - Inverted for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_lux_controled_brightness_inv''}}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition and dynamic lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness_inv'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_min_lux - dynamic_lighting_max_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_min_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_min_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_max_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the transition, dynamic lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness_inv'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_min_lux - dynamic_lighting_max_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_min_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_min_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_max_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness_inv'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_min_lux - dynamic_lighting_max_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_min_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_min_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_max_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_lux_controled_brightness_inv'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_min_lux - dynamic_lighting_max_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_min_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_min_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_max_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Dynamic Lighting - Sun Elevation Lighting - Colour Temp for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_sun_elevation_colour'' }}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the transition, lighting brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the lighting brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Set the Sun Elevation Lighting - Brightness for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_sun_elevation_brightness'' }}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition and dynamic sun elevation lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the transition, dynamic sun elevation lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation lighting brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation lighting brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Set the Sun Elevation Lighting - Brightness Inverted for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_sun_elevation_brightness_inv'' }}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition and dynamic sun elevation lighting brightness inverted for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness_inv'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_min_brightness %} {% set end_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_max_brightness %} {% if elevation > -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the transition, dynamic sun elevation lighting brightness inverted and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness_inv'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_min_brightness %} {% set end_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_max_brightness %} {% if elevation > -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation lighting brightness inverted for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness_inv'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_min_brightness %} {% set end_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_max_brightness %} {% if elevation > -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation lighting brightness inverted and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_brightness_inv'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_min_brightness %} {% set end_slope = (dynamic_lighting_max_brightness - dynamic_lighting_min_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_max_brightness %} {% if elevation > -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: '{{temperature_value}}' - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Set the Sun Elevation Lighting - Colour Temp + Brightness for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_sun_elevation_colour_brightness'' }}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition, dynamic sun elevation lighting brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour_brightness'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic sun elevation lighting brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour_brightness'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_brightness %} {% set end_slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_brightness %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set brightness_value = dynamic_lighting_max_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n {% endif %}\n{% else %}\n {% set brightness_value = dynamic_lighting_min_brightness %}\n{% endif %} {{ brightness_value | round(0) }}\n" kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - choose: - alias: Set the Sun Elevation Lighting - Colour Temp + LUX Controled Brightness for the normal lights switch conditions: - condition: template value_template: '{{ include_dynamic_lighting == ''enable_sun_elevation_colour_lux_brightness'' }}' sequence: - alias: Dynamic Lighting Control repeat: until: '{{ expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 }}' sequence: - choose: - alias: Set the transition, dynamic lighting lux brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour_lux_brightness'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - alias: Set the dynamic lighting lux brightness and dynamic sun elevation colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (include_dynamic_lighting == ''enable_sun_elevation_colour_lux_brightness'') }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: "{% set lux = states(dynamic_lighting_lux_sensor) | float %} {% set slope = (dynamic_lighting_min_brightness - dynamic_lighting_max_brightness) / (dynamic_lighting_max_lux - dynamic_lighting_min_lux) %} {% set ak = (( slope * dynamic_lighting_min_lux) * -1) + dynamic_lighting_max_brightness %} {% set le = light_entities %} {% set lec = expand(le) | map(attribute='entity_id') | list | length %} {% set lp = expand(le) | map(attribute='attributes.brightness') | reject('equalto', None) | sum | float(default=255) / 255 * 100 / lec %} {% if lux <= dynamic_lighting_min_lux %}\n \ {% set bv = dynamic_lighting_max_brightness %}\n{% elif lux >= dynamic_lighting_max_lux %}\n {% set bv = dynamic_lighting_min_brightness %}\n{% else %}\n {% set bv = ((slope * lux) + ak) | round(1) %}\n{% endif %} {% if lp <= 0 %}\n {% set bv = bv %}\n{% elif (bv > lp) and (bv - lp) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif (lp > bv) and (lp - bv) <= dynamic_lighting_dead_zone %}\n {% set bv = lp %}\n{% elif bv > (lp + dynamic_lighting_step_value) %}\n {% set bv = lp + dynamic_lighting_step_value %}\n{% elif bv < (lp - dynamic_lighting_step_value) %}\n {% set bv = lp - dynamic_lighting_step_value %}\n{% endif %} {{ bv | round(0) }}\n" kelvin: "{% set elevation = state_attr('sun.sun', 'elevation') | float %} {% set start_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_start_rising - dynamic_lighting_sun_elevation_end_rising) %} {% set start_ak = (( start_slope * dynamic_lighting_sun_elevation_end_rising) * -1) + dynamic_lighting_max_colour_temp %} {% set end_slope = (dynamic_lighting_min_colour_temp - dynamic_lighting_max_colour_temp) / (dynamic_lighting_sun_elevation_end_falling - dynamic_lighting_sun_elevation_start_falling) %} {% set end_ak = (( end_slope * dynamic_lighting_sun_elevation_end_falling) * -1) + dynamic_lighting_min_colour_temp %} {% if elevation >= -10 %}\n {% if elevation >= dynamic_lighting_sun_elevation_start_rising and elevation <= dynamic_lighting_sun_elevation_end_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = ((start_slope * elevation) + start_ak) | round(1) %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_falling and elevation >= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = ((end_slope * elevation) + end_ak) | round(1) %}\n {% elif elevation >= dynamic_lighting_sun_elevation_end_rising and elevation >= dynamic_lighting_sun_elevation_start_falling \ %}\n {% set colour_temp_value = dynamic_lighting_max_colour_temp %}\n {% elif elevation <= dynamic_lighting_sun_elevation_start_rising and is_state_attr('sun.sun', 'rising', true) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% elif elevation <= dynamic_lighting_sun_elevation_end_falling and is_state_attr('sun.sun', 'rising', false) %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n \ {% endif %}\n{% else %}\n {% set colour_temp_value = dynamic_lighting_min_colour_temp %}\n{% endif %} {{ colour_temp_value | round(0) }}\n" - alias: Dynamic lighting heartbeat delay: minutes: !input dynamic_lighting_heartbeat - stop: Stop the automation - sequence: - choose: - alias: Set the transition for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: transition: '{{ transition_on_value }}' - alias: Set the transition and brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: transition: '{{ transition_on_value }}' kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' kelvin: '{{temperature_value}}' - alias: Set the brightness for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' data: brightness_pct: '{{ brightness_value }}' kelvin: '{{temperature_value}}' - alias: Set the default for the normal lights switch conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (include_dynamic_lighting == ''disable_dynamic_lighting'') and (''use_colour_temperature'' not in include_light_control) }}' sequence: - service: light.turn_on target: entity_id: '{{ light_entities_off }}' - choose: - alias: Check if normal lights scenes or scripts helper is on - This is for scenes only when crossing over conditions: - condition: template value_template: "{% if night_boolean_scenes_scripts == [] %}\n false\n{% elif is_state(night_boolean_scenes_scripts, 'on') %}\n true\n{% else %}\n false\n{% endif %}" sequence: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn on the scenes service: scene.turn_on target: entity_id: '{{ scene_entities }}' data: transition: '{{ transition_on_value }}' - alias: Turn on the boolean for scenes and scripts service: input_boolean.turn_on data: entity_id: '{{ boolean_scenes_scripts_helper }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn on the scenes service: scene.turn_on target: entity_id: '{{ scene_entities }}' - alias: Turn on the boolean for scenes and scripts service: input_boolean.turn_on data: entity_id: '{{ boolean_scenes_scripts_helper }}' - alias: Turn on the switches service: switch.turn_on target: entity_id: '{{ switch_entities_off }}' - alias: Turn on the scripts service: script.turn_on target: entity_id: '{{ script_entities }}' - choose: - alias: By-pass is enabled & check by-pass option - turn lights on conditions: - condition: trigger id: t7_on sequence: - alias: Check by-pass settings and preform the correct action if: - alias: Check if the by-pass auto off is enabled condition: template value_template: '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Parallel Actions for the by-pass auto off parallel: - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_on'' in include_bypass) and (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_on - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_turn_off'' in include_bypass) and (''bypass_auto_off_enabled_off'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_off - sequence: - choose: - conditions: - condition: template value_template: '{{ (''bypass_enabled_stop'' in include_bypass) and (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off) }}' sequence: - alias: Turn off the by-pass service: homeassistant.turn_off entity_id: !input motion_bypass_lights_stop - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: Check if the trigger is on and wait for it to go off conditions: - condition: state entity_id: !input motion_trigger state: 'on' match: any sequence: - alias: Wait until motion sensor is off wait_for_trigger: platform: state entity_id: !input motion_trigger from: 'on' to: 'off' - alias: Wait the number of minutes set in the normal lights time delay delay: minutes: !input time_delay - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_off_value }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' transition: '{{ transition_off_value }}' - alias: If transition is not selected conditions: - condition: template value_template: '{{ ''use_transition'' not in include_light_control }}' sequence: - alias: Turn off the lights service: light.turn_off target: entity_id: '{{ light_entities }}' - alias: Turn off the scenes service: scene.turn_on data: entity_id: '{{ end_scene_entities }}' - alias: Turn off the switches service: switch.turn_off target: entity_id: '{{ switch_entities }}' - alias: Turn off the script service: script.turn_on data: entity_id: '{{ end_script_entities }}' - alias: Turn off the boolean for scenes and scripts service: input_boolean.turn_off data: entity_id: !input boolean_scenes_scripts