Determining if currently in Daylight Savings Time

I've been searching the community for a while trying to find out if there's a way to determine if Daylight Savings Time is currently active, to be able to use as a rule condition. Every search with a reference to DST or PDT returns a bunch of posts about oddities that occur when the DST changeover happens, but I can't find anything about using a system variable of some type to determine whether I am currently in DST.

Context...I have a patio awning I extend during the Spring/Summer months to shade my main room from afternoon sun, and I built a simple rule that extends it automatically every day around 2:30 and retracts it just before sunset. But I only need that rule to run during the Spring/Summer months, so at present, I'm using a hard date range as a required expression (March 1 - October 1). However, I'd really prefer to use daylight savings time as my date range. Hence, my search for an expression that returns whether I'm currently in PST or PDT (or more generally, if we're currently in DST).

Any guidance appreciated.

Have you look at the user app [RELEASE] Date Time Parser driver by my good buddy James?

I believe the latest revision contains a "Daylight Saving Active" boolean attribute.

1 Like

I was about to make a similar recommendation, but I think the one I am after is the one for determining seasons, which I think is a different App.

One reason I would suggest this kind of approach (identifying the periods of the year yourself rather than the time zone) is that it would give you more control, rather than what can be controlled by authorities choosing when the DST changeover may occur. I expect you could control this through definitions inside an RM rule as well, still without needing to use the time zone.

webcore has variables

$tzInDst

to let you know, and variables for offsets on the hub if you need them.

1 Like

Thanks for all the recommendations.

I did install James' Date & Time Parser, which seems really cool/useful. However, in starting to build the Required Expression in my rule, I'm finding that all the boolean variables are returning nulls. I wanted to ensure I had everything working correctly (and it isn't DST yet), so I selected several other booleans that should be true, and they're all coming back null as I build the expression. I must be doing something wrong, or missed a step somewhere when installing the driver.

After installing the driver, I did a match in HPM and then ran an update to ensure I had the latest code.

Any ideas?

1 Like

Not entirely certain, but do visit the App's child device's Details page and mash on Initialize to jump start it. (I don't have it installed right now to test for you... but I think that's the right move.)

2 Likes

Boom! That did it. Thank you so much.

1 Like