blueprint: name: Bathroom Humidity Exhaust Fan description: "# \U0001F6BF Bathroom Humidity Exhaust Fan\n**Version: 2.6**\n\nStep into the future of freshness - customize it your way and experience the convenience of automated humidity control! \U0001F33F\U0001F6BF\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: \U0001F448\n\n \ - **Auto Trigger:**\n - When the derivative percentage rises above a set value, the fan turns ON\n - When the derivative percentage falls below a set value, the automation waits for a time delay and then turns the fan OFF.\n \ - Optional - Set a maximum humidity percentage to trigger the fan ON. This is useful when having back-to-back showers.\n \n **Note:** You must have a humidity sensor in the bathroom and set up a 'Derivative Helper' for this automation to work.\n\n - **Manual Trigger Option:**\n - This feature allows you to manually trigger the automation.\n\n - **Multi-Speed Fan Control Option:**\n \ - You have the option to use fan speeds to control the staging of your fan.\n \ - You can choose to stage your fan in your preferred configuration, such as High/Off, High/Low, High/Low/Off, High/Med/Low, etc.\n\n - **Winter Mode Option:**\n \ - You have the option to use 'Winter Mode.' This mode allows for different settings to be applied, accommodating the typically higher humidity levels experienced in winter compared to summer.\n\n - **Light Control Option:**\n - Use the \"Light Control\" option to turn ON lights, adjusting brightness levels, colour temperatures, and transition times.\n - This feature is commonly utilized with LED lights in a shower niche.\n - For expanded lighting options, consider integrating my \U0001F4A1[Sensor Light](https://community.home-assistant.io/t/481048) blueprint, which utilizes the automation link feature.\n\n - **Manual Control Option:**\n - Use a manual fan switch to toggle the fan ON/OFF.\n - Opt to use the auto-OFF option for timer-like functionality.\n - This is particularly useful for removing unwanted fumes from deodorant, hairspray, or the toilet.\n\n - **Automation Link Option:**\n - This feature simplifies the process of automatically disabling your other automations by providing an automation linking mechanism.\n\n - **Bypass Functionality Option:**\n - This allows you to bypass the automation, offering manual control and additional customization capabilities.\n\n - **Safety Measures:**\n - Set a maximum runtime safeguard for the fan to prevent continuous operation.\n - Benefit from built-in safeguards to ensure smooth operation and reliability, even if Home Assistant restarts.\n\n - **Blueprint Add-On Integration:**\n - Sensor Light: Control your lights in the bathroom. [Click Here](https://community.home-assistant.io/t/509992/240) to learn more.\n - Toilet Exhaust Fan: Integrate with a toilet in the bathroom. [Click Here](https://community.home-assistant.io/t/509992/387) to learn more.\n
\n\nNeed help?\n- FAQ: [Click Here](https://community.home-assistant.io/t/509992/2?u=blacky)\n- Community Support Including Updates: [Click Here](https://community.home-assistant.io/t/509992)\n\nRequired = *\n" domain: automation input: trigger_settings: name: Auto Triggers * icon: mdi:cog-outline description: ⚠️ To use an auto trigger, you need to configure a humidity derivative sensor. * collapsed: true input: trigger: name: Trigger - Humidity Derivative Sensor * description: 'Select your humidity derivative sensor. This is the main key trigger for this automation. To ensure the auto trigger functions correctly, you need to create a derivative helper and select it here. For more information on how to set up a humidity derivative sensor [Click Here](https://community.home-assistant.io/t/509992/3)' default: [] selector: entity: filter: - domain: - sensor reorder: false multiple: false bathroom_humidity_sensor: name: Bathroom Humidity Sensor (Optional) description: You will have the option to use 'The Maximum Humidity Option' below in 'Default - Summer Mode' and in 'Winter Mode'. This will be the reference humidity sensor used in both options if selected. However, you will still need to create a humidity derivative sensor and enter it above for this blueprint to work default: [] selector: entity: filter: - domain: - sensor reorder: false multiple: false manual_settings: name: Manual Trigger icon: mdi:gesture-tap-button collapsed: true input: include_manual_trigger: name: Use The Manual Trigger Option (Optional) description: 'This feature allows you to manually trigger the automation. It replaces the humidity derivative settings in either ''Default - Summer Mode'' or ''Winter Mode,'' configurations. Turning it ON initiates the automation process, and turning it OFF starts the time delay. Note that auto triggers can and will override the manual trigger option if triggered. If you choose option 1, the ''Safeguard - Maximum Run Time'' will be active in ''Default - Summer Mode'' or ''Winter Mode'' and will turn OFF the manual trigger if you forget to do so. Alternatively, option 2 allows you to customize different auto OFF time delays for both ''Default - Summer Mode'' and ''Winter Mode'' settings. If using the winter mode, ensure it is enabled below in the ''Winter Mode'' section. This feature can operate with or without a humidity sensor, which is particularly useful if the humidity sensor malfunctions, allowing time for repairs and reducing stress levels. Additionally, it can initiate the fan to turn ON before a shower, aiding in humidity removal before the auto triggers take over. It is designed with good spouse approval in mind. For more information on this feature and its capabilities, [click here.](https://community.home-assistant.io/t/509992/483?u=blacky)' default: disable_manual_trigger selector: select: options: - label: 1 - Enable manual trigger value: enable_manual_trigger - label: 2 - Enable manual trigger + auto off time delay value: enable_manual_trigger_time_delay - label: Disable manual trigger value: disable_manual_trigger sort: false custom_value: false multiple: false manual_trigger: name: Manual Trigger description: 'Enter an entity that will manually trigger the automation. **NOTE** - The Manual Trigger entity cannot be your actual Fan Switch entity; it must be a completely different entity. Alternatively, if you prefer to use the same Fan Switch entity for the Manual Trigger function, you can create a trigger-based template binary sensor to ensure the automation functions correctly. To learn how to create a trigger-based template binary sensor [Click here](https://community.home-assistant.io/t/509992/496).' default: [] selector: entity: multiple: true filter: - domain: - switch - binary_sensor - input_boolean reorder: false manual_trigger_default_time_delay: name: Default - Auto Off Time Delay description: If you've selected option 2 in the 'Manual Trigger Option' above, please set the auto OFF time delay. This will determine the time delay used in 'Default - Summer Mode' to automatically turn OFF the manual trigger after it has been turned ON. default: 15 selector: number: min: 0.0 max: 40.0 step: 0.5 unit_of_measurement: minutes mode: slider manual_trigger_winter_time_delay: name: Winter - Auto Off Time Delay description: If you've selected option 2 in the 'Manual Trigger Option' above, please set the auto OFF time delay. This will determine the time delay used in 'Winter Mode' to automatically turn OFF the manual trigger after it has been turned ON. default: 15 selector: number: min: 0.0 max: 40.0 step: 0.5 unit_of_measurement: minutes mode: slider fan_settings: name: Fan * icon: mdi:fan collapsed: true input: fan_switch: name: Fan Switch * description: 'Select the fan you would like to turn ON. Fans, switches, scripts & input boolean are allowed. If you''d like to turn on lights, please refer to the ''Lights'' section below. **NOTE** - Only entities should be used, as devices will result in an error log. **Script** - If you are only selecting a script, it is recommended to create a dummy toggle helper and then select it here to ensure the automation functions correctly. For more information if you are only selecting a script [Click Here](https://community.home-assistant.io/t/509992/239?u=blacky).' default: [] selector: target: entity: - domain: - fan - switch - script - input_boolean fan_speed_low: name: Fan Speed - Low Speed Switch (Optional) description: 'You will have the option to use ''The Fan Speed Options'' below in ''Default - Summer Mode'' and ''Winter Mode''. This reference entity will turn the fan ON to low speed in both options if selected. Please DO NOT select the same entities that are chosen above in ''Fan Switch'' or below in ''Fan Speed - Switch Off'', as the automation will not work. **NOTE** - If you are only selecting a script, it is recommended to create a dummy toggle helper and then select it here to ensure the automation functions correctly. For more information if you are only selecting a script [Click Here](https://community.home-assistant.io/t/509992/239?u=blacky).' default: [] selector: entity: multiple: true filter: - domain: - fan - switch - script - input_boolean reorder: false fan_speed_off: name: Fan Speed - Switch Off (Optional) description: 'You will have the option to use ''The Fan Speed Options'' below in ''Default - Summer Mode'' and ''Winter Mode''. This reference entity will turn the fan OFF in both options if selected. Please DO NOT select the same entities that are chosen above in ''Fan Switch'' or ''Fan Speed - Low Speed Switch'', as the automation will not work. **Note** - If you''d like the fan to run continuously at a low speed 24/7, you can select that speed here.' default: [] selector: entity: multiple: true filter: - domain: - fan - switch - script - input_boolean reorder: false default_settings: name: Default - Summer Mode icon: mdi:weather-sunny collapsed: true input: rising_humidity: name: Rising Humidity Derivative description: Specify the percentage increase that the derivative sensor must exceed to indicate a shower has started, thus activating the fan. The derivative sensor percentage must transition from below to above this setpoint to trigger the automation. default: 1 selector: number: min: 0.0 max: 5.0 step: 0.1 unit_of_measurement: '%' mode: slider falling_humidity: name: Falling Humidity Derivative description: Specify the percentage decrease that the derivative sensor must fall below to indicate the shower has completed, thus activating the time delay. The derivative sensor percentage must transition from above to below this setpoint to trigger the automation. default: -1 selector: number: min: -5.0 max: 0.0 step: 0.1 unit_of_measurement: '%' mode: slider time_delay: name: Time Delay description: After the falling humidity derivative percentage has been achieved or the set safeguard time has elapsed, this time delay will determine how long the fan will run before turning OFF. Alternatively, if you've selected option 1 in the 'Fan Speed Options' below, the fan will transition to low speed after this time delay. default: 10 selector: number: min: 0.0 max: 60.0 step: 0.5 unit_of_measurement: minutes mode: slider time_out: name: Safeguard - Maximum Run Time description: Specify the maximum run time for the safeguard. If the automation turns the fan ON and the falling humidity derivative condition fails to execute within this time frame, the safeguard will bypass the falling humidity derivative condition and proceed to the time delay. default: 20 selector: number: min: 5.0 max: 60.0 step: 0.5 unit_of_measurement: minutes mode: slider include_max_humidity: name: Use The Maximum Humidity Option (Optional) description: 'Sometimes after a shower, humidity levels may take longer to return to normal. As a result, the humidity may not rise significantly when taking another shower before returning to its normal level, thus not triggering the automation. Enabling this option allows the fan to be turned ON when the humidity rises above the set value, regardless of the rate of increase in rising humidity derivative percentage. **NOTE** - Please ensure that you input your ''Bathroom Humidity Sensor'' above in the ''Triggers'' section for this option to work correctly.' default: maximum_humidity_disabled selector: select: options: - label: Enable the maximum humidity option value: maximum_humidity_enabled - label: Disable the maximum humidity option value: maximum_humidity_disabled sort: false custom_value: false multiple: false max_humidity: name: Maximum Humidity description: If you have enabled the maximum humidity option above, please set the maximum humidity percentage. When using this option, it's recommended to set this value as high as possible to minimize false triggers. default: 100 selector: number: min: 80.0 max: 100.0 step: 0.5 unit_of_measurement: '%' mode: slider include_fan_speed: name: Use The Fan Speed Options (Optional) description: 'If you''re using a multi-speed fan, you can choose one of the following options to determine how the fan will be staged when turning OFF. **NOTE** - Please ensure that you input your ''Fan Speeds'' entities above in the ''Fan'' section for this option to work properly.' default: fan_speed_disabled selector: select: options: - label: 1 - Enable the fan speed - Switch to low speed then turn off option value: fan_low_speed_enabled - label: 2 - Enable the fan speed - Turn off option value: fan_speed_off_enabled - label: Disable the fan speed options value: fan_speed_disabled sort: false custom_value: false multiple: false time_delay_low_speed: name: Fan Speed - Low Speed Time Delay description: If you've selected option 1 in the 'Fan Speed Options' above, please set the low speed time delay. This additional delay allows the fan to run at low speed before turning OFF. default: 5 selector: number: min: 0.0 max: 20.0 step: 0.5 unit_of_measurement: minutes mode: slider winter_settings: name: Winter Mode icon: mdi:snowflake collapsed: true input: include_winter_mode: name: Use The Winter Mode Option (Optional) description: Enabling this option will automatically apply a 'Winter Mode' to the months you select below, allowing you to apply different settings for the colder months of the year. default: winter_mode_disabled selector: select: options: - label: Enable winter mode option value: winter_mode_enabled - label: Disable winter mode option value: winter_mode_disabled sort: false custom_value: false multiple: false month_winter_mode: name: Months For Winter Mode description: Choose the months during which you want the winter mode settings to be applied. default: [] selector: select: multiple: true mode: list options: - label: January value: '1' - label: February value: '2' - label: March value: '3' - label: April value: '4' - label: May value: '5' - label: June value: '6' - label: July value: '7' - label: August value: '8' - label: September value: '9' - label: October value: '10' - label: November value: '11' - label: December value: '12' sort: false custom_value: false winter_rising_humidity: name: Winter Rising Humidity Derivative description: Specify the percentage increase that the derivative sensor must exceed to indicate a shower has started, thus activating the fan. The derivative sensor percentage must transition from below to above this setpoint to trigger the automation. default: 1 selector: number: min: 0.0 max: 5.0 step: 0.1 unit_of_measurement: '%' mode: slider winter_falling_humidity: name: Winter Falling Humidity Derivative description: Specify the percentage decrease that the derivative sensor must fall below to indicate the shower has completed, thus activating the time delay. The derivative sensor percentage must transition from above to below this setpoint to trigger the automation. default: -1 selector: number: min: -5.0 max: 0.0 step: 0.1 unit_of_measurement: '%' mode: slider winter_time_delay: name: Winter Time Delay description: After the falling humidity derivative percentage has been achieved or the set safeguard time has elapsed, this time delay will determine how long the fan will run before turning OFF. Alternatively, if you've selected option 1 in the 'Fan Speed Options' below, the fan will transition to low speed after this time delay. default: 10 selector: number: min: 0.0 max: 20.0 step: 0.5 unit_of_measurement: minutes mode: slider winter_time_out: name: Winter Safeguard - Maximum Run Time description: Specify the maximum run time for the safeguard. If the automation turns the fan ON and the falling humidity derivative condition fails to execute within this time frame, the safeguard will bypass the falling humidity derivative condition and proceed to the time delay. default: 20 selector: number: min: 5.0 max: 60.0 step: 0.5 unit_of_measurement: minutes mode: slider winter_include_max_humidity: name: Winter - Use The Maximum Humidity Option (Optional) description: 'In colder months, after a shower, humidity levels may take longer to return to normal. As a result, the humidity may not rise significantly when taking another shower before returning to its normal level, thus not triggering the automation. Enabling this option allows the fan to be turned ON when the humidity rises above the set value, regardless of the rate of increase in rising humidity derivative percentage. **NOTE** - Please ensure that you input your ''Bathroom Humidity Sensor'' above in the ''Triggers'' section for this option to work correctly.' default: maximum_humidity_disabled selector: select: options: - label: Enable the maximum humidity option value: maximum_humidity_enabled - label: Disable the maximum humidity option value: maximum_humidity_disabled sort: false custom_value: false multiple: false winter_max_humidity: name: Winter Maximum Humidity description: If you have enabled the maximum humidity option above, please set the maximum humidity percentage. When using this option, it's recommended to set this value as high as possible to minimize false triggers. default: 100 selector: number: min: 80.0 max: 100.0 step: 0.5 unit_of_measurement: '%' mode: slider winter_include_fan_speed: name: Winter - Use The Fan Speed Options (Optional) description: 'If you''re using a multi-speed fan, you can choose one of the following options to determine how the fan will be staged when turning OFF. **NOTE** - Please ensure that you input your ''Fan Speeds'' entities above in the ''Fan'' section for this option to work properly.' default: fan_speed_disabled selector: select: options: - label: 1 - Enable the fan speed - Switch to low speed then turn off option value: fan_low_speed_enabled - label: 2 - Enable the fan speed - Turn off option value: fan_speed_off_enabled - label: Disable the fan speed options value: fan_speed_disabled sort: false custom_value: false multiple: false winter_time_delay_low_speed: name: Winter Fan Speed - Low Speed Time Delay description: If you've selected option 1 in the 'Fan Speed Options' above, please set the low speed time delay. This additional delay allows the fan to run at low speed before turning OFF. default: 5 selector: number: min: 0.0 max: 20.0 step: 0.5 unit_of_measurement: minutes mode: slider lights_settings: name: Lights icon: mdi:lightbulb-on-outline collapsed: true input: include_lights: name: Use The Lights Options (Optional) description: "This option is handy for activating various lights while showering, especially if you have LED lights in a shower niche. If you're looking to enhance your bathroom lighting further, check out my \U0001F4A1[Sensor Light](https://community.home-assistant.io/t/481048) blueprint. When used together, the automation link ensures the lights stay on while showering. You can find the automation link section below." default: lights_disabled selector: select: options: - label: Enable the lights options value: lights_enabled - label: Disable the lights options value: lights_disabled sort: false custom_value: false multiple: false light_switch: name: Lights description: 'Select the lights that will be turned on by the trigger sensor. **NOTE** - You can only use entities. Areas, devices and labels are not supported.' default: {} selector: target: entity: - domain: - light light_time_delay: name: Lights - Time Delay description: After the falling humidity derivative percentage has been achieved or the set safeguard time has elapsed, this time delay will determine how long the lights will remain ON before turning OFF. default: 10 selector: number: min: 0.0 max: 40.0 step: 0.5 unit_of_measurement: minutes mode: slider include_light_control: name: Use The Light Control Options (Optional) description: Select any option you would like to use. It will only control a 'light' entity that supports each option you select. The settings are below for each option. 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 manual_switch_settings: name: Manual Fan Switch icon: mdi:toggle-switch-outline collapsed: true input: include_manual_fan_switch: name: Use The Manual Fan Switch Option (Optional) description: This feature allows you to manually switch the fan ON and OFF while still enabling the automation to take control when needed. It's particularly useful for removing unwanted fumes from deodorant, hairspray, or the toilet. Option 2's auto-off time delay ensures you never forget to turn the fan OFF. default: disable_manual_fan_switch selector: select: options: - label: 1 - Enable manual fan switch option value: enable_manual_fan_switch - label: 2 - Enable manual fan switch + auto off option value: enable_manual_fan_switch_auto_off - label: Disable manual fan switch value: disable_manual_fan_switch sort: false custom_value: false multiple: false manual_fan_switch: name: Manual Fan Switch description: 'Enter a switch that will toggle the fan ON/OFF. When the switch turns the fan OFF, it will also deactivate the automation link and any lights, if the option is enabled. **NOTE** - The Manual Fan Switch cannot be your actual Fan Switch entity; it must be a completely different entity. Alternatively, if you prefer to use the same Fan Switch entity for the Manual Fan Switch function, you can create a trigger-based template binary sensor to ensure the automation functions correctly. To learn how to create a trigger-based template binary sensor [Click here](https://community.home-assistant.io/t/509992/496).' default: [] selector: entity: multiple: true filter: - domain: - switch - binary_sensor - input_boolean reorder: false manual_fan_switch_time_delay: name: Manual Fan Switch Auto OFF - Time Delay description: If you've enabled option 2 above, please set the auto OFF time delay. default: 10 selector: number: min: 0.0 max: 40.0 step: 0.5 unit_of_measurement: minutes mode: slider automation_link_settings: name: Automation Link icon: mdi:link-variant collapsed: true input: include_automation_link: name: Use The Automation Link Option (Optional) description: "This feature simplifies the process of automatically disabling your other automations by providing an automation linking mechanism. It's particularly useful if you're using my \U0001F4A1[Sensor Light](https://community.home-assistant.io/t/481048) blueprint in your bathroom and want to disable it when this automation is ON. This ensures that your bathroom lights stay ON even when your motion sensor is unable to detect motion while you're in the shower.\n\nFor more information on how to set up the Automation Link Option [Click Here](https://community.home-assistant.io/t/509992/240?u=blacky)" default: disable_automation_link selector: select: options: - label: Enable automation link value: enable_automation_link - label: Disable automation link value: disable_automation_link sort: false custom_value: false multiple: false automation_link: name: Automation Link - Bypass Control description: 'Please enter the bypass entity of the other automations you would like to turn ON, thereby disabling it when this automation is ON. **Note** -Your other automations must include a bypass switch that you enter here.' default: [] selector: entity: multiple: true filter: - domain: - input_boolean reorder: false automation_link_time_delay: name: Automation Link - Time Delay description: After the falling humidity derivative percentage has been achieved or the set safeguard time has elapsed, this time delay will determine how long the automation link entities will remain ON before turning OFF. default: 10 selector: number: min: 0.0 max: 40.0 step: 0.5 unit_of_measurement: minutes mode: slider bypass_settings: name: Bypass icon: mdi:cog-pause-outline collapsed: true input: include_bypass: name: Use The Trigger Sensor Bypass Option (Optional) description: 'All the bypass options will allow manual control of your fan. Each option determines what should happen when you turn the bypass ON. Choose the action that you would like to activate. **Note** - If the lights or automation link options are enabled, they will be included in the action.' default: bypass_disabled selector: select: options: - label: 1 - Enable the bypass - Turn the fan, lights & automation link ON value: bypass_enabled_turn_on - label: 2 - Enable the bypass - Turn the fan, lights & automation link OFF value: bypass_enabled - label: 3 - Enable the bypass - Keep the current fan, lights & automation link state value: bypass_enabled_stop - label: Disable the bypass option value: bypass_disabled sort: false custom_value: false multiple: false by_pass: name: Bypass Switch description: 'Select a switch that will bypass the humidity derivative sensor and enable manual control of your fan. **Note** - Ensure that the chosen entity is not included in the ''Fan'' selection, as it will cause the automation to malfunction.' default: [] selector: entity: reorder: false multiple: false bypass_options: name: Bypass - Extra Option description: Please indicate whether you would like to use this option. default: [] selector: select: multiple: true options: - label: When you turn the bypass off - Turn the fan, lights & automation link OFF and do not run the automation. value: bypass_turn_fan_off sort: false custom_value: false include_bypass_auto_off: name: Use The Bypass Auto OFF Option (Optional) description: Select this option if you want the bypass to automatically turn OFF after a set time delay. It can also function as a timer to turn the fan ON and then OFF if you've chosen option 1 'Enable the bypass - Turn the fan, lights & automation link ON' above. default: bypass_auto_off_disabled selector: select: options: - label: Enable the bypass auto off option value: bypass_auto_off_enabled - label: Disable the bypass auto off option value: bypass_auto_off_disabled sort: false custom_value: false multiple: false bypass_auto_off_delay: name: Bypass Auto OFF - Time Delay description: Please set the auto OFF time delay for the bypass. default: 60 selector: number: min: 1.0 max: 240.0 step: 1.0 unit_of_measurement: minutes mode: slider source_url: https://gist.github.com/Blackshome/8e09a8213b834f1be4ab49ba880abed8 mode: restart max_exceeded: silent variables: trigger: !input trigger bathroom_humidity_sensor: !input bathroom_humidity_sensor include_manual_trigger: !input include_manual_trigger manual_trigger: !input manual_trigger manual_trigger_default_time_delay: !input manual_trigger_default_time_delay manual_trigger_winter_time_delay: !input manual_trigger_winter_time_delay fan_switch: !input fan_switch fan_speed_low: !input fan_speed_low fan_speed_off: !input fan_speed_off rising_humidity: !input rising_humidity falling_humidity: !input falling_humidity time_delay: !input time_delay time_out: !input time_out include_max_humidity: !input include_max_humidity max_humidity: !input max_humidity include_fan_speed: !input include_fan_speed time_delay_low_speed: !input time_delay_low_speed include_winter_mode: !input include_winter_mode month_winter_mode: !input month_winter_mode winter_rising_humidity: !input winter_rising_humidity winter_falling_humidity: !input winter_falling_humidity winter_time_delay: !input winter_time_delay winter_time_out: !input winter_time_out winter_include_max_humidity: !input winter_include_max_humidity winter_max_humidity: !input winter_max_humidity winter_include_fan_speed: !input winter_include_fan_speed winter_time_delay_low_speed: !input winter_time_delay_low_speed include_lights: !input include_lights light_switch: !input light_switch light_time_delay: !input light_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_manual_fan_switch: !input include_manual_fan_switch manual_fan_switch: !input manual_fan_switch manual_fan_switch_time_delay: !input manual_fan_switch_time_delay include_automation_link: !input include_automation_link automation_link: !input automation_link automation_link_time_delay: !input automation_link_time_delay include_bypass: !input include_bypass by_pass: !input by_pass bypass_options: !input bypass_options include_bypass_auto_off: !input include_bypass_auto_off bypass_auto_off_delay: !input bypass_auto_off_delay light_entities: "{% set a = light_switch and light_switch.entity_id %} {% if a %}\n {{ expand(a) | selectattr('domain', 'eq', 'light') | map(attribute='entity_id') | list }}\n{% else %}\n []\n{% endif %}" triggers: - trigger: numeric_state id: t0 entity_id: !input trigger above: !input winter_rising_humidity below: '100' - trigger: numeric_state id: t1 entity_id: !input bathroom_humidity_sensor above: !input winter_max_humidity below: '100' - trigger: homeassistant id: t2 event: start - trigger: numeric_state id: t3 entity_id: !input trigger above: !input rising_humidity below: '100' - trigger: numeric_state id: t4 entity_id: !input bathroom_humidity_sensor above: !input max_humidity below: '100' - trigger: state id: t5 entity_id: !input by_pass from: 'off' to: 'on' - trigger: state id: t6 entity_id: !input by_pass from: 'on' to: 'off' - trigger: state id: t7 entity_id: !input manual_fan_switch from: 'off' to: 'on' - trigger: state id: t8 entity_id: !input manual_trigger from: 'off' to: 'on' condition: - condition: or conditions: - condition: and conditions: - '{{ include_winter_mode == ''winter_mode_enabled'' }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: trigger id: t0 - condition: and conditions: - '{{ (include_winter_mode == ''winter_mode_enabled'') and (winter_include_max_humidity == ''maximum_humidity_enabled'') }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: trigger id: t1 - condition: and conditions: - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((winter_include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - condition: trigger id: t2 - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_disabled'' in include_winter_mode }}' - condition: numeric_state entity_id: !input trigger above: !input rising_humidity below: '100' - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - condition: template value_template: '{{ (now().month | string not in month_winter_mode ) }}' - condition: numeric_state entity_id: !input trigger above: !input rising_humidity below: '100' - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: numeric_state entity_id: !input trigger above: !input winter_rising_humidity below: '100' - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_disabled'' in include_winter_mode }}' - '{{ ''maximum_humidity_enabled'' in include_max_humidity }}' - condition: numeric_state entity_id: !input bathroom_humidity_sensor above: !input max_humidity below: '100' - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - '{{ ''maximum_humidity_enabled'' in include_max_humidity }}' - condition: template value_template: '{{ (now().month | string not in month_winter_mode ) }}' - condition: numeric_state entity_id: !input bathroom_humidity_sensor above: !input max_humidity below: '100' - condition: and conditions: - condition: trigger id: - t2 - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - '{{ ''maximum_humidity_enabled'' in winter_include_max_humidity }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: numeric_state entity_id: !input bathroom_humidity_sensor above: !input winter_max_humidity below: '100' - condition: and conditions: - condition: template value_template: '{{ (include_winter_mode == ''winter_mode_disabled'') or ((include_winter_mode == ''winter_mode_enabled'') and not (now().month | string in month_winter_mode )) }}' - condition: trigger id: t3 - condition: and conditions: - condition: template value_template: '{{ ((include_winter_mode == ''winter_mode_disabled'') and (include_max_humidity == ''maximum_humidity_enabled'')) or ((include_winter_mode == ''winter_mode_enabled'') and (include_max_humidity == ''maximum_humidity_enabled'') and not (now().month | string in month_winter_mode )) }}' - condition: trigger id: t4 - condition: and conditions: - condition: trigger id: t5 - '{{ (include_bypass == ''bypass_enabled_turn_on'') or (include_bypass == ''bypass_enabled'') or (include_bypass == ''bypass_enabled_stop'') }}' - condition: and conditions: - condition: trigger id: t6 - '{{ (include_bypass != ''bypass_disabled'') }}' - '{{ (include_bypass == ''bypass_enabled'') or (include_bypass == ''bypass_enabled_stop'') or (include_bypass == ''bypass_enabled_turn_on'') }}' - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0 ) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((winter_include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') and (expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - condition: and conditions: - condition: trigger id: - t6 - '{{ (include_bypass != ''bypass_disabled'') }}' - '{{ ''winter_mode_disabled'' in include_winter_mode }}' - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 ) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0))}}' - condition: numeric_state entity_id: !input trigger above: !input rising_humidity below: '100' - condition: and conditions: - condition: trigger id: - t6 - '{{ (include_bypass != ''bypass_disabled'') }}' - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 ) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - condition: template value_template: '{{ (now().month | string not in month_winter_mode ) }}' - condition: numeric_state entity_id: !input trigger above: !input rising_humidity below: '100' - condition: and conditions: - condition: trigger id: - t6 - '{{ (include_bypass != ''bypass_disabled'') }}' - '{{ ''winter_mode_enabled'' in include_winter_mode }}' - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 ) or ((winter_include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: numeric_state entity_id: !input trigger above: !input winter_rising_humidity below: '100' - condition: and conditions: - condition: state entity_id: !input manual_fan_switch match: any state: 'on' - condition: trigger id: - t7 - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - condition: and conditions: - condition: state entity_id: !input manual_trigger match: any state: 'on' - condition: trigger id: - t8 - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - condition: or conditions: - '{{ include_bypass == ''bypass_disabled'' }}' - '{{ by_pass == [] }}' - '{{ (include_bypass == ''bypass_enabled_turn_on'') and (states[by_pass].state == ''off'') }}' - '{{ (include_bypass == ''bypass_enabled'') and (states[by_pass].state == ''off'') }}' - '{{ (include_bypass == ''bypass_enabled_stop'') and (states[by_pass].state == ''off'') }}' - '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''off'') }}' - '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''on'') and (trigger.id == ''t2'') }}' - condition: trigger id: t5 action: - choose: - alias: For winter mode when enabled and within the set winter months conditions: - condition: or conditions: - condition: and conditions: - condition: trigger id: - t0 - t1 - condition: and conditions: - '{{ include_winter_mode == ''winter_mode_enabled'' }}' - condition: template value_template: '{{ (now().month | string in month_winter_mode ) }}' - condition: trigger id: - t2 - t5 - t6 - t7 - t8 sequence: - choose: - alias: By-pass is turned on & check by-pass option - turn fan off conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled'' }}' sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - 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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: By-pass is turned on & check by-pass option - keep the current fan state conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled_stop'' }}' sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - 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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: By-pass is turned off & preform the correct action conditions: - condition: trigger id: t6 sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check by-pass options - turn fan off is enabled conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check if the sensor is below falling humidity & by-pass options - turn fan off is disabled conditions: - alias: Check sensor is below falling condition: numeric_state entity_id: !input trigger below: !input winter_falling_humidity - condition: not conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check if the sensor is above winter rising humidity & by-pass options - turn fan off is disabled conditions: - alias: Check sensor is above rising condition: numeric_state entity_id: !input trigger above: !input winter_rising_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 ) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) }}' - condition: not conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: We need something here to continue delay: milliseconds: 10 default: - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input winter_falling_humidity timeout: minutes: !input winter_time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Preform the manual fan switch option conditions: - condition: trigger id: t7 sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if fan speeds are enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (winter_include_fan_speed == ''fan_low_speed_enabled'') or (winter_include_fan_speed == ''fan_speed_off_enabled'')}}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check if manual fan switch auto off is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' }}' sequence: - alias: Wait until manual fan switch is turned off or the time delay passes wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' timeout: minutes: !input manual_fan_switch_time_delay - alias: Check if manual fan switch is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch'' }}' sequence: - alias: Wait until manual fan switch is turned off wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed off option is enabled conditions: - '{{ (winter_include_fan_speed == ''fan_low_speed_enabled'') or (winter_include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - choose: - alias: Check if the run on timer is switch is on conditions: - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Preform the manual trigger option conditions: - condition: trigger id: t8 sequence: - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn on the automation link action: homeassistant.turn_on target: entity_id: !input automation_link - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: Set the transition for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' - alias: Set the transition and brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the default for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' - choose: - alias: Check if fan speeds are enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (winter_include_fan_speed == ''fan_low_speed_enabled'') or (winter_include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check manual trigger with safeguard is selected conditions: - '{{ include_manual_trigger == ''enable_manual_trigger'' }}' sequence: - alias: Wait until manual trigger is turned off or the safeguard has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input winter_time_out - choose: - alias: Check if the manual trigger switch is ON and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Check manual trigger with time delay is selected conditions: - '{{ include_manual_trigger == ''enable_manual_trigger_time_delay'' }}' sequence: - alias: Wait until manual trigger is turned off or the time delay has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input manual_trigger_winter_time_delay - choose: - alias: Check if the manual trigger switch is ON and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Wait until the time delay has passes delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait until the low speed time delay passes delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled and the lights are ON conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Wait until the light time delay has passes delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Wait until the automation link time delay has passes delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Safeguard when HA restarts conditions: - condition: trigger id: t2 sequence: - choose: - alias: Check manual trigger with safeguard is selected and manual trigger is ON conditions: - '{{ include_manual_trigger == ''enable_manual_trigger'' }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Wait until manual trigger is turned off or the safeguard has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input time_out - choose: - alias: Check if the manual trigger switch is on and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Check manual trigger with time delay is selected and manual trigger is ON conditions: - '{{ include_manual_trigger == ''enable_manual_trigger_time_delay'' }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Wait until manual trigger is turned off or the time delay has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input manual_trigger_winter_time_delay - choose: - alias: Check if the manual trigger switch is on and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check manual fan switch is enabled and manual switch is ON conditions: - alias: Check if the humidity derivative sensor is above falling humidity set point and fan / lights are on condition: template value_template: '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' or include_manual_fan_switch == ''enable_manual_fan_switch'' }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - choose: - alias: Check if manual fan switch is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch'' }}' sequence: - alias: Wait until manual fan switch is turned off wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' - alias: Check if manual fan switch auto off is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' }}' sequence: - alias: Wait until manual fan switch is turned off or the time delay passes wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' timeout: minutes: !input manual_fan_switch_time_delay - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed off option is enabled conditions: - '{{ (winter_include_fan_speed == ''fan_low_speed_enabled'') or (winter_include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - choose: - alias: Check if the run on timer is switch is on conditions: - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check automation and preform the correct action conditions: - alias: Check if the winter humidity derivative sensor is below falling humidity set point and fan / lights are on condition: numeric_state entity_id: !input trigger below: !input winter_falling_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or ((winter_include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: Check if the by-pass auto off is enabled and by-pass is ON conditions: - condition: template value_template: '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''on'') }}' sequence: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check automation and preform the correct action conditions: - alias: Check if the winter humidity derivative sensor is above falling humidity set point and fan / lights are on condition: numeric_state entity_id: !input trigger above: !input winter_rising_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or ((winter_include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or (include_lights == ''lights_disabled'') }}' - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or (include_automation_link == ''disable_automation_link'') }}' sequence: - choose: - alias: Check if the by-pass auto off is enabled and by-pass is ON conditions: - condition: template value_template: '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''on'') }}' sequence: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input winter_falling_humidity timeout: minutes: !input winter_time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check if fan speeds are enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (winter_include_fan_speed == ''fan_low_speed_enabled'') or (winter_include_fan_speed == ''fan_speed_off_enabled'')}}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: Set the transition for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' - alias: Set the transition and brightness for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the default for the winter mode lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn on the automation link action: homeassistant.turn_on target: entity_id: !input automation_link - choose: - alias: By-pass is enabled & check by-pass option - turn fan on conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled_turn_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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation else: - stop: Stop the automation - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input winter_falling_humidity timeout: minutes: !input winter_time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input winter_time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input winter_time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ winter_include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link default: - alias: Check if the triggers condition: trigger id: - t2 - t3 - t4 - t5 - t6 - t7 - t8 - choose: - alias: By-pass is turned on & check by-pass option - turn fan off conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled'' }}' sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - 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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: By-pass is turned on & check by-pass option - keep the current fan state conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled_stop'' }}' sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - 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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation else: - stop: Stop the automation - choose: - alias: By-pass is turned off & check if the sensor is below falling humidity conditions: - condition: trigger id: t6 sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check by-pass options - turn fan off is enabled conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check if the sensor is below falling humidity & by-pass options - turn fan off is disabled conditions: - alias: Check sensor is below falling condition: numeric_state entity_id: !input trigger below: !input falling_humidity - condition: not conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check if the sensor is above rising humidity & by-pass options - turn fan off is disabled conditions: - alias: Check sensor is above rising condition: numeric_state entity_id: !input trigger above: !input rising_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0 ) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''off'') | list | count > 0)) }}' - condition: not conditions: - condition: template value_template: '{{ ''bypass_turn_fan_off'' in bypass_options }}' sequence: - alias: We need something here to continue delay: milliseconds: 10 default: - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input falling_humidity timeout: minutes: !input time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Preform the manual fan switch option conditions: - condition: trigger id: t7 sequence: - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if fan speeds are enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (include_fan_speed == ''fan_low_speed_enabled'') or (include_fan_speed == ''fan_speed_off_enabled'')}}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check if manual fan switch auto off is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' }}' sequence: - alias: Wait until manual fan switch is turned off or the time delay passes wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' timeout: minutes: !input manual_fan_switch_time_delay - alias: Check if manual fan switch is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch'' }}' sequence: - alias: Wait until manual fan switch is turned off wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed off option is enabled conditions: - '{{ (include_fan_speed == ''fan_low_speed_enabled'') or (include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Preform the manual trigger option conditions: - condition: trigger id: t8 sequence: - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn on the automation link action: homeassistant.turn_on target: entity_id: !input automation_link - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: Set the transition for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' - alias: Set the transition and brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the default for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' - choose: - alias: Check if fan speeds are enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (include_fan_speed == ''fan_low_speed_enabled'') or (include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check manual trigger with safeguard is selected conditions: - '{{ include_manual_trigger == ''enable_manual_trigger'' }}' sequence: - alias: Wait until manual trigger is turned off or the safeguard has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input time_out - choose: - alias: Check if the manual trigger switch is ON and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Check manual trigger with time delay is selected conditions: - '{{ include_manual_trigger == ''enable_manual_trigger_time_delay'' }}' sequence: - alias: Wait until manual trigger is turned off or the time delay has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input manual_trigger_default_time_delay - choose: - alias: Check if the manual trigger switch is ON and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Wait until the time delay has passes delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait until the low speed time delay passes delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled and the lights are ON conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Wait until the light time delay has passes delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Wait until the automation link time delay has passes delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Safeguard when HA restarts conditions: - condition: trigger id: t2 sequence: - choose: - alias: Check manual trigger with safeguard is selected and manual trigger is ON conditions: - '{{ include_manual_trigger == ''enable_manual_trigger'' }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Wait until manual trigger is turned off or the safeguard has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input time_out - choose: - alias: Check if the manual trigger switch is on and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - alias: Check manual trigger with time delay is selected and manual trigger is ON conditions: - '{{ include_manual_trigger == ''enable_manual_trigger_time_delay'' }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Wait until manual trigger is turned off or the time delay has passes wait_for_trigger: - trigger: state entity_id: !input manual_trigger from: 'on' to: 'off' timeout: minutes: !input manual_trigger_default_time_delay - choose: - alias: Check if the manual trigger switch is on and turn it OFF conditions: - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF the manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check manual fan switch is enabled and manual switch is ON conditions: - alias: Check if the humidity derivative sensor is above falling humidity set point and fan / lights are on condition: template value_template: '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' or include_manual_fan_switch == ''enable_manual_fan_switch'' }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - choose: - alias: Check if manual fan switch is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch'' }}' sequence: - alias: Wait until manual fan switch is turned off wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' - alias: Check if manual fan switch auto off is enabled conditions: - '{{ include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'' }}' sequence: - alias: Wait until manual fan switch is turned off or the time delay passes wait_for_trigger: - trigger: state entity_id: !input manual_fan_switch from: 'on' to: 'off' timeout: minutes: !input manual_fan_switch_time_delay - alias: Parallel Actions for the fan, lights and automation link parallel: - sequence: - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed off option is enabled conditions: - '{{ (include_fan_speed == ''fan_low_speed_enabled'') or (include_fan_speed == ''fan_speed_off_enabled'') }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: If transition is selected conditions: - condition: template value_template: '{{ ''use_transition'' in include_light_control }}' sequence: - alias: Turn off the lights action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check automation and preform the correct action conditions: - alias: Check if the humidity derivative sensor is below falling humidity set point and fan / lights are on condition: numeric_state entity_id: !input trigger below: !input falling_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' sequence: - choose: - alias: Check if the by-pass auto off is enabled and by-pass is ON conditions: - condition: template value_template: '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''on'') }}' sequence: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - alias: Check automation and preform the correct action conditions: - alias: Check if the humidity derivative sensor is above falling humidity set point and fan / lights are on condition: numeric_state entity_id: !input trigger above: !input rising_humidity - '{{ (expand(fan_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0) or ((include_fan_speed == ''fan_low_speed_enabled'') and (expand(fan_speed_low) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) }}' - '{{ ((include_lights == ''lights_enabled'') and (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or (include_lights == ''lights_disabled'') }}' - '{{ ((include_automation_link == ''enable_automation_link'') and (expand(automation_link) | selectattr(''state'', ''=='', ''on'') | list | count > 0)) or (include_automation_link == ''disable_automation_link'') }}' sequence: - choose: - alias: Check if the by-pass auto off is enabled and by-pass is ON conditions: - condition: template value_template: '{{ (include_bypass_auto_off == ''bypass_auto_off_enabled'') and (states[by_pass].state == ''on'') }}' sequence: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input falling_humidity timeout: minutes: !input time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link - stop: Stop the automation - choose: - alias: Check if the manual trigger option is enabled and switch is on conditions: - '{{ (include_manual_trigger == ''enable_manual_trigger'') or (include_manual_trigger == ''enable_manual_trigger_time_delay'') }}' - '{{ expand(manual_trigger) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual trigger action: homeassistant.turn_off entity_id: !input manual_trigger - choose: - alias: Check if the manual fan switch option is enabled and switch is on conditions: - '{{ (include_manual_fan_switch == ''enable_manual_fan_switch'') or (include_manual_fan_switch == ''enable_manual_fan_switch_auto_off'') }}' - '{{ expand(manual_fan_switch) | selectattr(''state'', ''=='', ''on'') | list | count > 0 }}' sequence: - alias: Turn OFF manual fan switch action: homeassistant.turn_off entity_id: !input manual_fan_switch - choose: - alias: Check if fan speeds are enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan Speed - Low Speed Switch - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - choose: - alias: Check if fan speeds are enabled conditions: - '{{ (include_fan_speed == ''fan_low_speed_enabled'') or (include_fan_speed == ''fan_speed_off_enabled'')}}' sequence: - alias: Fan Speed - Switch Off - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_off - alias: Turn on the fan action: homeassistant.turn_on target: !input fan_switch - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - choose: - alias: Set the transition for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' - alias: Set the transition and brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' - alias: Set the transition and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the transition, brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: transition: '{{ transition_on_value }}' brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' - alias: Set the colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: color_temp_kelvin: '{{temperature_value}}' - alias: Set the brightness and colour temperature for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' in include_light_control) and (''use_colour_temperature'' in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' data: brightness_pct: '{{ brightness_value }}' color_temp_kelvin: '{{temperature_value}}' - alias: Set the default for the normal lights conditions: - condition: template value_template: '{{ (''use_transition'' not in include_light_control) and (''use_brightness'' not in include_light_control) and (''use_colour_temperature'' not in include_light_control) }}' sequence: - action: light.turn_on target: entity_id: '{{ light_entities }}' - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Turn on the automation link action: homeassistant.turn_on target: entity_id: !input automation_link - choose: - alias: By-pass is enabled & check by-pass option - turn fan on conditions: - condition: trigger id: t5 - condition: template value_template: '{{ include_bypass == ''bypass_enabled_turn_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: '{{ include_bypass_auto_off == ''bypass_auto_off_enabled'' }}' then: - alias: Wait the number of minutes set in the by-pass auto off time delay delay: minutes: !input bypass_auto_off_delay - alias: Turn off the by-pass action: homeassistant.turn_off entity_id: !input by_pass - stop: Stop the automation else: - stop: Stop the automation - alias: Wait until Humidity Derivative Sensor drops or it times out wait_for_trigger: - trigger: numeric_state entity_id: !input trigger below: !input falling_humidity timeout: minutes: !input time_out - alias: Parallel Actions for the fan and lights parallel: - sequence: - alias: Wait the number of minutes that has been set for the time delay delay: minutes: !input time_delay - alias: Turn off the fan action: homeassistant.turn_off target: !input fan_switch - choose: - alias: Check if the fan speed switch to low speed then off option is enabled conditions: - '{{ include_fan_speed == ''fan_low_speed_enabled'' }}' sequence: - alias: Fan low speed ON action: homeassistant.turn_on entity_id: !input fan_speed_low - alias: Wait the number of minutes set in the low speed time delay delay: minutes: !input time_delay_low_speed - alias: Fan low speed OFF - Safeguard action: homeassistant.turn_off entity_id: !input fan_speed_low - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - alias: Check if the fan speed off option is enabled conditions: - '{{ include_fan_speed == ''fan_speed_off_enabled'' }}' sequence: - alias: Fan off speed action: homeassistant.turn_on entity_id: !input fan_speed_off - sequence: - choose: - alias: Check if the lights are enabled conditions: - '{{ include_lights == ''lights_enabled'' }}' sequence: - alias: Wait the number of minutes set in the lights time delay delay: minutes: !input light_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 action: light.turn_off target: entity_id: '{{ light_entities }}' 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 action: light.turn_off target: entity_id: '{{ light_entities }}' - sequence: - choose: - alias: Check if the automation link is enabled conditions: - '{{ include_automation_link == ''enable_automation_link'' }}' sequence: - alias: Wait the number of minutes set in the automation link time delay delay: minutes: !input automation_link_time_delay - alias: Turn off the automation link action: homeassistant.turn_off target: entity_id: !input automation_link