Central Heating system control - rules the only option?

So I’ve finally got control over my radiator system by way of a Aeotec Nano Switch.

It currently has a simple timed relay as it’s primary control. This says turn on at 5am turn off at 8 am. Doesn’t care about temperature etc, nor day of week.

At the very minimum I’d like to replicate that. Then later on I’d tie in the actual temperature readings I have around the house, to require an average minimum before kicking in.

No I know I could just code in in the rules, and putting cron to check temps and time before turning on/off.

But is there a nicer way that I could present a heating based scheduling tool that could be use by openhab to check whether it should turn on or not. Something that does all the heavy lifting on entering days/times/min temps etc?

Pref python based, maybe web

Or I guess I could set up a min temp item, and a start time, end time as items. That would replicate what I have.

How could that then be expanded to allow scheduling lines. Are there ui items where you could add a new line (to represent a new “program”). Each line would have a start time, end time and min temp.

The biggest problem you will encounter is there is no DateTime UI element in the main UIs (there might be something in HABPanel at this point which would be nice). There are lots of kludges using Numbers and SetPoints to enter in the day and time information. None of them are satisfactory and none, including HABPanel, will support dynamically adding new elements to the UI like you describe.

Most people either:

  • program their heating rules based on Time of Day, Presence, and temperature without set day-by-day schedules

  • use one of the above examples to create schedules that can be modified through the UIs

  • use the gCal or CalDav bindings to implement the schedule in a calendar application

  • program the rules external to OH and use MQTT or OH’s REST API

For the most part, I encourage users to try for the first approach because a smart home that you have to manually schedule isn’t very smart.