Why do time based triggers need Raspberry Pi (or other system) TZ set?

My time based triggers were not firing … time in the log was correct (xx:xx BST even), and {{now()}} template showed right time, but they just don’t fire until I set the Raspberry Pi TZ to Europe/London.

OK, problem solved, but I’d love to know WHY? HA seems to rely on / require the underlying system TZ to be set, when it has it’s own config with that info in? Is it a deliberate design decision, or just some historic leftover from the dark ages? Or are we using the system chron (or equivalent) to fire those events?

I recently noticed that times without an explicit timezone, which, per the ISO definition, means local time, are actually using the machine timezone r(via python, I guess) rather than the TZ set in HA.

Not sure whether that pertains to your question, but seems like a bug to me…

Seems quite likely, although the time based triggers never did seem to fire (I didn’t wait a whole day in the dark though)… Yes, seems like a bug, if HA asks for, and gets, a tz then it ought use it throughout, imo. It also has my location to within 10m, so actually it could guess the tz without asking me.