How do others open and close their blinds by schedule?

I have automated my blinds and it worked well enough for a year or so in various versions.

Given that I now have to change the rules due to Joda datetime, I thought it might be a good opportunity to rethink how I do it.

Basic requirement:
A rule to trigger a certain amount of minutes after or before a sunset but have an absolute boundary.
For example:
Open 30 minutes before sunrise but not before 7am (Sunrise in UK is 04:45)
Close 30 minutes after sunset but at latest by 8pm (Sunset in UK is 21:30)

Existing way was to, every minute, check the minutes of day against the minutes since midnight for opening and closing times and if triggered, send command.

It’s a manual rule with lots of code and items. Anyone got an easier method?

I am using the Time Of Day Pattern. I used in with OH2 and with OH and Java based framework which is now even easier and more powerful to use:

The astro binding does exactly that:

So two things I cannot work out with that alone:

  1. I have multiple groups of blinds. Kids, lounge, kitchen etc. I want them to open at differing times.
  2. Not critical but I would like it to be “user settable” so the offset to sunset can be changed via HABPanel. I don’t think you can do that as the offset is in the channel.

I use the astro binding as the base for sunset and sunrise but cannot use it alone. Options?

Create more than one astro thing and configure different times for each one.