Heaty will die, Schedy be born!

UPDATE: Schedy is of course stable and ready for use since December 2018, here are the docs.

Hi all,

For those not knowing what Heaty is: It’s a heating scheduler with quite a lot of powerful features developed by me. Here’s the link to a long thread about it that has grown over the last 10 months: Heaty - a flexible heating control, facilitating schedules and manual intervention

I’m just wanting to announce:

R.I.P. - Heaty is going to die.

No, seriously, I’ve decided not to develop Heaty any further. There will be a final 0.17 release soon, and that’s it.

Don’t be sad… Schedy is born!

There really is no reason for sorrow. A new app is going to see the world’S light soon: Schedy!
I know, what a funny name… but it describes what it does quite well while retaining memories of Heaty.

Schedy is going to be a multi-purpose scheduler for Home Assistant that will support most features of Heaty plus a lot of extras. It’ll be slimmer and easier to configure than Heaty, but without suffering substantial functionality.

Schedy will be able to control not only thermostats, but also switches, lights, media players and almost any other kind of actor present in Home Assistant with only minimal configuration effort. Sounds great, doesn’t it?

It’s configuration shares substantial parts with that of Heaty, hence switching over will just be a matter of minutes for current Heaty users.

What is one of the greatest things about Schedy: it’s future-proof. The scheduling has been untangled from the concept of actors completely, simplifying the code and making it possible to support almost any kind of actor. And if more actor-specific logic is needed for a particular type, that’s really easy to implement.

Are you curious about Schedy? If yes, hold off for some more days. The documentation is still far from being usable and I like to change that before an endless number of questions about the configuration arises.

However, I’d really love to hear your thoughts.

Be prepared for the new Schedy!

Best regards
Robert

25 Likes

Phew - I was just about to start ploughing my way through the 371 contributions in the Heaty discussion.
I’ll hold back with that now but am eagerly anticipating Schedy!

just in time, winter is coming :grinning:

is it still depend on AppDaemon?

1 Like

@chairstacker Oh… I recommend better reading the docs of Heaty instead. A lot of that will still apply for Schedy. The thread started such a long time ago that most of it is not working in recent Heaty versions anymore.

@elRadix Yes, it’s just another app in my hass-apps framework.

For what it’s worth -

a) I love Heaty, I can’t believe there is not some sort of scheduling system already built in to Home Assistant.
b) I know there are issues for us HASSIO users with python packages - and that a fix has been committed upstream to allow apps to define what packages they need for AppDaemon, but until then - if you provide a list of what packages Schedy will need - it turns out we can add them to the AppDaemon config section in HASSIO - here is my config which allows Heaty to run:

{
  "log_level": "info",
  "system_packages": [],
  "python_packages": [
    "observable==0.3.2"
  ]
}

and here is the log of AppDaemon booting.

[cont-init.d] 81-python-packages.sh: executing... 
Collecting observable==0.3.2
  Downloading https://files.pythonhosted.org/packages/cc/88/448d24481afa4861d7b095014aab2ffac120137accdc8f76494fd315f2dc/observable-0.3.2.tar.gz
Installing collected packages: observable
  Running setup.py install for observable: started
    Running setup.py install for observable: finished with status 'done'
Successfully installed observable-0.3.2
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[cont-init.d] 81-python-packages.sh: exited 0.

@mobile.andrew.jones It’s part of the hass-apps package, hence installing that is enough to pull all dependencies. The docs are quite thorough on that. Install hass-apps and you’re done. But schedy isn’t released yet.

What’s your time line? Not to rush you. I was just about to make a video about building a thermostat and using Heaty for the scheduling. I’ll hold off on that until you get Schedy done.

Just this morning I wanted to set a quick timer to turn the lights on outside the house at 6am as a signal that our time for exercise was over, but there isn’t a quick way to do something like that in HA. I could have written an automation, but I just wanted to use something that works like the timer on my phone. I just used an Alexa routine cuz it was quick and easy. Maybe soon I’ll use Schedy for that instead.

Thanks a ton for your work on Heaty!

1 Like

@DrZzs Can’t await seeing your video, cool.

The code itself is almost done, what’s missing is the documentation. I take large parts from Heaty’s documentation (with minor changes), but quite a lot has still to be written. Creating good documentation can actually be more demanding and time-consuming than writing the code.

Ah, I plan to have an usable development version with mostly complete docs end of the week.

Can you please give me examples for scenarios you want to use a scheduler for? I need some appetizers for the docs. Thanks.

Fantastic. The scheduler is just so elegant.

A morning routine (different for weekdays and weekends)
A good night routine.

Scheduler means also timer?

@Klagio Thanks for the ideas.

Scheduling basically means mapping time frames to entity states… not sure whether that’s what you meant.

I love it. This is a big piece missing in HASS: basically possibility to do many useful automation on the fly/frontend

Exactly, feel the same way

One thing that’s important for heating/cooling is awareness of presence - i.e. no one needs to heat their home to 20ºC if noone’s home for two weeks. At the same time, presence is very important to schedule lightning to simulate presence.

To be honest this is the first time I’m hearing about the heaty and never used it so I don’t know whether you have something like this in mind or whether something like this was possible with heaty, but since you wanted to hear thoughts :slight_smile:

@kirichkov Thanks for sharing your thoughts. Incorporating presence is of course possible since you can write Python in your schedules and hence react based on entity states. Schedy/Heaty is really flexible in that manner.

Whilst it is of course possible to check the attributes of entities in the expression, it would be nice if schedy could be configured to not act if an entity state or attribute is matched. The reason I ask for this is because right now with Heaty - it doesn’t pay any attention to a thermostats away mode - this is available as an attribute “away_mode: on” for generic thermostats. Home Assistant is a bit weird in that if you set away mode and then something else changes the target temperature - it changes the away mode temperature and not the non away mode target. The simplest solution would be if Heaty/Schedy can be told basically: ignore this entire configuration if away mode is set, rather than having to check for it yourself using if statements in the schedule itself.

But I’m open to discussion if you think this is not the right way to go.

@mobile.andrew.jonesWhat about this?

- temp: Break() if is_on("input_boolean.away") else Skip()

You’d just need to create an input_boolean or something else that denotes whether you are away or not… could even be done based on presence detection or the away mode attribute of some thermostat.

Edit:
You could even put this into schedule_prepend to have to write it only once…

I thought about putting in the prepend, but my understanding is that applies globally, and that’s not what I want - I still want the cooling thermostat to blow hot air down from the attic whether I am away or not. I am happy enough to code for the away state of the thermostat, it’s not a problem for me - I was just offering it as a suggestion because you said earlier that you intended Schedy to be simpler to write configuration for than Heaty.