blueprint: name: Timer description: "# ⏲️ Timer\n**Version: 1.2**\n\nEffortless Control: Schedule \U0001F4C5, Trigger ⚡, and Automate Your Home \U0001F3E0 with Precision \U0001F3AF!\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 \ - **Automation:**\n - Turn ON and OFF any entity you like on a set time.\n \ - You must use a timer helper for this automation to work.\n\n - **Multiple Timers:**\n - You can set up to 4 different time triggers, each with its own time period.\n\n - **Weekdays Condition Option:**\n - Specify the weekdays to define when the automation can run.\n
\n\nNeed help? \n- FAQ: [Click Here](https://community.home-assistant.io/t/time-clock/651151/2)\n- Community Support Including Updates: [Click Here](https://community.home-assistant.io/t/time-clock/651151)\n\nRequired = *\n" domain: automation input: settings: name: Settings * icon: mdi:cog-outline collapsed: true input: timer_helper: name: Timer - Timer Helper * description: 'Select the timer helper to be used for all timers. Using a timer helper provides flexibility to start, pause, and cancel timers, persistence across reboots, and real-time monitoring, making your automations more robust and adaptable. For more information on how to create a timer helper [Click Here](https://community.home-assistant.io/t/651151/4?u=blacky)' default: [] selector: entity: filter: - domain: - timer multiple: false entity_input: name: Entities To Turn ON * description: Specify the entities that will be turned ON by a start time and OFF after the set duration. default: [] selector: target: {} triggers: name: Triggers icon: mdi:clock-outline collapsed: true input: trigger_one_time: name: Timer One - Start Time description: Set the start time. default: 00:00:00 selector: time: {} trigger_one_duration: name: Timer One - Duration description: Set the duration for Timer One. default: 00:00:00 selector: duration: {} include_extra_triggers: name: Use The Extra Timers (Optional) description: Select any additional timers you want to include. default: [] selector: select: multiple: true options: - label: Use timer two value: use_trigger_two - label: Use timer three value: use_trigger_three - label: Use timer four value: use_trigger_four sort: false custom_value: false trigger_two_time: name: Timer Two - Start Time description: Set the start time. default: 00:00:00 selector: time: {} trigger_two_duration: name: Timer Two - Duration description: Set the duration for Timer Two. default: 00:00:00 selector: duration: {} trigger_three_time: name: Timer Three - Start Time description: Set the start time. default: 00:00:00 selector: time: {} trigger_three_duration: name: Timer Three - Duration description: Set the duration for Timer Three. default: 00:00:00 selector: duration: {} trigger_four_time: name: Timer Four - Start Time description: Set the start time. default: 00:00:00 selector: time: {} trigger_four_duration: name: Timer Four - Duration description: Set the duration for Timer Four. default: 00:00:00 selector: duration: {} weekdays: name: Weekdays icon: mdi:calendar-week collapsed: true input: include_weekdays: name: Use The Weekdays Option (Optional) description: This option adds a condition to operate only on specified weekdays. It applies globally to all start times. default: weekday_disabled selector: select: options: - label: Enable the weekday option value: weekday_enabled - label: Disable the weekday option value: weekday_disabled sort: false custom_value: false multiple: false weekday_options: name: Weekdays description: Select the days of the week on which you want the automation to run. default: - mon - tue - wed - thu - fri - sat - sun selector: select: multiple: true mode: list options: - label: Monday value: mon - label: Tuesday value: tue - label: Wednesday value: wed - label: Thursday value: thu - label: Friday value: fri - label: Saturday value: sat - label: Sunday value: sun sort: false custom_value: false source_url: https://gist.github.com/Blackshome/ec0afd31dce7fc6b106e378d06b01940 mode: restart max_exceeded: silent variables: trigger_one_duration: !input trigger_one_duration entity_input: !input entity_input timer_helper: !input timer_helper trigger_one_time: !input trigger_one_time include_extra_triggers: !input include_extra_triggers trigger_two_time: !input trigger_two_time trigger_two_duration: !input trigger_two_duration trigger_three_time: !input trigger_three_time trigger_three_duration: !input trigger_three_duration trigger_four_time: !input trigger_four_time trigger_four_duration: !input trigger_four_duration include_weekdays: !input include_weekdays weekday_options: !input weekday_options trigger: - platform: time at: !input trigger_one_time id: t1 - platform: time at: !input trigger_two_time id: t2 - platform: time at: !input trigger_three_time id: t3 - platform: time at: !input trigger_four_time id: t4 - platform: state entity_id: !input timer_helper to: idle id: t5 condition: - condition: or conditions: - condition: and conditions: - condition: trigger id: - t1 - condition: and conditions: - condition: trigger id: t2 - '{{ ''use_trigger_two'' in include_extra_triggers }}' - condition: and conditions: - condition: trigger id: t3 - '{{ ''use_trigger_three'' in include_extra_triggers }}' - condition: and conditions: - condition: trigger id: t4 - '{{ ''use_trigger_four'' in include_extra_triggers }}' - condition: and conditions: - condition: trigger id: t5 - condition: or conditions: - '{{ include_weekdays == ''weekday_disabled'' }}' - condition: and conditions: - condition: time weekday: !input weekday_options - '{{ include_weekdays == ''weekday_enabled'' }}' - condition: trigger id: - t5 action: - choose: - alias: Check if the time helper is enabled conditions: - condition: trigger id: - t1 - t2 - t3 - t4 sequence: - alias: Turn ON the entities service: homeassistant.turn_on target: !input entity_input - choose: - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: - t1 sequence: - alias: Turn ON the timer helper service: timer.start entity_id: !input timer_helper data: duration: !input trigger_one_duration - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: - t2 sequence: - alias: Turn ON the timer helper service: timer.start entity_id: !input timer_helper data: duration: !input trigger_two_duration - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: - t3 sequence: - alias: Turn ON the timer helper service: timer.start entity_id: !input timer_helper data: duration: !input trigger_three_duration - alias: By-pass is turned on & check by-pass option - turn lights off conditions: - condition: trigger id: - t4 sequence: - alias: Turn ON the timer helper service: timer.start entity_id: !input timer_helper data: duration: !input trigger_four_duration - alias: Turn OFF entities after the timer helper is finished conditions: - condition: trigger id: - t5 sequence: - alias: Turn OFF the entities service: homeassistant.turn_off target: !input entity_input