Hello,
I’m afraid your question is a bit to generic
Firstly you have think about what you want, from a use-case perspective, then you have to design it and finally there are most likely still several ways to achieve. Especially when it comes to this homematic thermostats
but, to give you some hint, I can tell you who my setup looks like:
I put a weekly schedule in my thermostats, this is basically the normal schedule I need, considering my working days, weekend and the time slots I’m at home. I’m using homegear, not a CCU, and which homegear you can easily write a script to change this schedule, so I ended up with some predefined schedules I can easily push out to my thermostats. The schedules are (holiday at home, holiday not at home and normal)
when it comes to openhab:
on this homematic thermostat you have two Modes (Auto and Manual), Auto Mode follows the schedule, Normal Mode just uses currently set Set-Temperature. If you are in Auto-Mode and you change your Set-Temperature, the next scheduled temperature will adjust the set temperature. If your in Manual-Mode your Schedule will not be used anymore.
Knowning this I publish on my tablets the current state of each thermostat. It’s running as a HabPanel Widget, there is good one for Homematic in the store, I just slightly adjust it for my needs.
Additionally I use some scenes in my smarthome, like watching TV, dinner, take a shower in the morning, etc. Depending on the scene I perhaps overwrite certain auto schedules via Openhab by keeping the auto-mode and just adjust the current set-temperature.
This is either running as a cron rule with a lot of ifs, or triggered by the scene start. the latter is more elegant, but cannot go over the configure slots in the thermostat. e.g. if my thermostat schedules say 20° until 22:00 and 15° from 22:00, and my WatchTV Scene says 25° and I start it at 21:50, it will be re-written at 22:00 with 15°. Useing a x-minutes cron will write it back once issued.
Last but not least: controlled via voice: I’m using to intents, firstly to get the current status (you can read out the ventile state) and secondly increase or decrease current set-temperature.
hope this helps a bit or gives an idea.
cheers
martin