Scheduler on Touch One


#1

Hello, i’m a total newbie regarding the Touch model and OpenHAB so bear with me.
I had the old HestiaPi classic and had a scheduler setup, how do I do it in HestiaPi Touch ONE now? Through OpenHAP?
What does “Heating auto” mean exactly? I didn’t see any reference in the documentation how the default configuration is supposed to be controlling e.g. heating so any pointer is welcome.

Also i assume you guys are here from the very beginning, but jumping in on the Touch model i’m quite lost at the moment :slight_smile:


#2

Scheduling is by far the most requested feature so far. It is not supported directly yet but you can do it via cron (text files editing required) or intergating google calendar I think. It is a subject with more answers on the official openHAB forum. @rlkoshak any hints?

It means it will turn on whenever the room temperature goes below the setpoint temperature.
Feel free to ask anything that is not clear for you.


#3

Scheduling in OH is hard unfortunately. But I think we can do something reasonable. It’s third on my list to look at:

  1. reduce boot times by moving to JavaScript/JSONDB (note, I’m down to about 7 minutes from a cold boot to workable Rules right now which is probably the limit), almost all done but needs lots of testing which I’m in the process of doing.

  2. Hysteresis which is tied up with multiple setpoints for heater/cooler.

  3. Scheduling.

Typically one of two approaches are used.

  1. The CalDav binding lets users connect openHAB to a calendar (e.g. Google Calendar though I think it works with Outlook and Nextcloud too) and they use the calendar to set up schedules. This has the advantage of providing a nice user interface for adjustments but it can be tricky to get set up and working right and it is very sensitive to how you create the calendar entries. See https://www.openhab.org/addons/bindings/caldav-personal1/ to get started. But be aware that it’s a 1.x version binding which are no longer being supported.

  2. Use some variation of the Time of Day Design Pattern. This is an approach that lets you centralize and build a time of day state machine. It can work with static times (e.g. 06:00) or events (e.g. nautical sunrise start from the Astro binding) and determine what part of the day it currently is and set an Item. From there you can use the state and clever Item naming to define a different set of setpoints for each time period defined by the ToD Rule (e.g. Temp_Setpoint_MORNING, Temp_Setpoint_Bedtime, etc.).

OH 2.5 has a new feature called Ephemeris that makes this even more dynamic. It lets you define certain types of days (e.g. weekday, weekend) as well as special days (e.g. bank holidays). This can be combined with TimeOfDay to define different times of day based on what sort of day it is (e.g. MORNING starts at 06:00 on weekdays but not until 08:00 on weekends and bank holidays). I’ve implemented this in Python already but need to port it to JavaScript. So this doesn’t help psy much yet. I just mention it to show what will be possible.

But even once this is implemented, the UI for it won’t be great as you will have to create Items with a specific configuration to define your start and stop times for each time of day.

There is a tutorial for creating a Timeline Picker which I’ve not looked into heavily yet but looks very promising for this. I’m not sure how well it will integrate with the Time of Day DP yet though.

Anyway, back to the topic. For now I would recommend looking at the ToD DP to define and implement your time of day periods. Then create setpoint Items that correspond with each ToD state. Then in the Rules that need to check the setpoints, see Associated Items Design Pattern to get the Temp Setpoint for the current time period. Everything else should remain the same. You’ll still have to define the schedule in code, but you can at least see what the schedule is set to. And if you really need to adjust the schedule times from a UI, see https://community.openhab.org/t/individual-alarm-clock-for-each-day-of-week-with-adjustable-duration/23448 for a comprehensive way to set up the times on Basic UI.

Unfortunately, I don’t know of any simple tutorial that will show you end to end how to set this up. But I recommend picking an approach and come back to ask for help if you need it.