[RELEASE] Sabbath/Holiday Mode Scheduler

If you are a Sabbath observer, and never want to forget to set a timer again, this device driver is for you. A full description is available at the GitHub repository:

Installation options

NOTE: I discovered @dannyzen's project after I completed my own. My code is not based on his at all (although the format of my README is).

5 Likes

Version 1.0.1 released

Bug fix: coming out of Sabbath mode when holidays are during the upcoming week
Update recommended immediately for all users

EDIT: Make sure you click "Refresh" on the device after you update the driver code.

Version 1.0.2 released

Bug fix: use state instead of looking up device attribute values
Update recommended immediately for all users

Make sure you click "Refresh" on the device after you update the driver code.

Just came across your driver, and I like the approach. I'm relatively new to Hubitat but quite technical... I do have a question: Is "HolidayDaY" set to "1" for a regular Shabbos? I like to get a notification on my phone letting me know that everything is ready for that particular day, which I could do by testing for holidayDay >-1 if in fact is gets set to "1" for Shabbos.

It's set to -1 for a regular shabbos.

I don't think your plan works for holidays either, since the value of holidayDay isn't changed until the holiday begins. It's meant to control automations that are supposed to happen on that day, not as an advance notification.

If you want a notification before the day starts, I suggest setting up a timer that goes off a certain amount of time before the current candle lighting time. That's what I use in my setup.

Thanks for the quick reply. Timer idea sounds interesting but I'm not familiar enough with this system to get how to construct this. Would you be willing to share? :grinning:

Also, I see the value nextEventTime doesn't seem to be "exposed" but seems to match activeTime ... is there a built-in date/time conversion or method by which I could simply access the activeTime in a local normal value? For example to send as part of a notification?

Check out rule machine (built in) or webcore (my personal preference). Those are two good choices for rules engines.

activeTime is the value you want to use.

Webcore has a utility function for this, which means there is a built in way to do it. The value is a standard millisecond timestamp in GMT. Groovy is basically Java, so if you know Java, you can use standard Java methods. There's probably a more convenient way in hubitat, but I don't know what it is.

Download the Hubitat app