I have tado running my heating, and a typical daily schedule might look like this:
08:01-10:00 set heating to 20 degrees
10:01-16:00 - turn heating off.
16:01-22:00 - set heating to 18 degrees
22:01-08:00 - set heating to off.
I’m thinking about moving this to HA, but…
I can easily setup a scheduler helper to mirror these daily time slots, but if I have to check what time it is inside the automation, to determine what action to take, whats the point of using the scheduler at all ?
Is there a better scheduler (maybe in HACS?) where you can set an action per scheduled time ? or am I missing something ?
sadly i fear you are missing nothing (at least, i did not find anything interesting for the very same thing).
And probably it would be easier for you to create a dedicated local calendar for this target, using the description as an attribute (for example for target temp) and than use the calendar trigger.
Honestly i think the HVAC world is still missing the scheduling part (scheduled or timed heating, vacation, this sort of things). Who knows, maybe it will arrive
In this case, it is not a good solution. It is more suited to simple on/off automations. e.g. schedule on → turn something on, schedule off → turn the thing off.
You might like this more powerful third party scheduler instead:
Thanks @tom_l / @MassiPi
I’ll take a look at that other scheduler.
The other option i suppose, is to create several separate schedules (messy), each one dealing with a different temperature, and off being when there is no event.
It was a helper made by one of the devs to meet a need when they realised it could be done relatively simply. And despite a few popular feature requests to make it more versatile unfortunately no one has picked it up and developed it further.
I think if you could at least have a holistic view of all the schedules in one place (rather than having to go into each helper separately), then there might be some additional value in it. At the moment, there seems limited additional value in using a schedule helper over a time based automation (Except where many automations might share a single schedule and you want to then change that schedule).
to me, this is totally unmanageable.
And i fear basing my heating on a third party integration (what if a HA update will break it?), that’s why ATM i still leave the programming for my heating system on the original software…
BTW, give a look to the local calendar if you do not want to use the third party integration (could be made also with google calendar obviously). I’m using it for triggering my cat feeder, but you can setup a specific calendar for each room and use the events’ attributed to set up the temperature. In this way the automation can set your heating system as soon as the calendar events come in…
Thanks @MassiPi - that does look like a possible solution as well. I’ll try out the HACS component and the local calendar and see which works best for my use case.
I had a similar situation where I had a script that, based on the current time, sets the desired temperature. But then, as you mention, to trigger it using those same times seemed redundant and destined to get out of sync (don’t want the times listed in two places). Plus, I wanted to be able to run the script at any time to reset the schedule.
My solution to avoid having schedules in multiple places (automation and in a script) was to use a cron-type automation that uses the time_pattern platform to periodically call the scheduling script.
alias: "Thermostat: Call the script to update the temp every 10 min"
description: ""
trigger:
- platform: time_pattern
minutes: /10
condition: []
action:
- service: script.thermostat_set_temp
metadata: {}
data: {}
mode: single
In addition to my schedules, I wanted to have an “Away” mode that essentially turns the temp way down. And setting the away mode could be set independently such as when away from the house or if a door is left open or even manually with a switch. And that the current schedule is restored when in the back “Home” state.
Also, I wanted a way to manually change the temperature and then let it stay that way until the next schedule comes around. I do that by giving each schedule a name, and then only updating the temperature when the schedule name changes.
It’s all still a work in progress, but happy to show more if curious.