Web query failure at DST change

I query my Iotawatt regularly via the /query interface. The exact query is:

query?select=[ac_in_v.volts.d3,ac_in_i.amps,ac_in_p,ac_in_f.hz,ac_in_i.pf.d3,ac_out_v.volts.d3,ac_out_i.amps,ac_out_p,ac_out_f.hz,ac_out_i.pf.d3]&begin=s-5s&end=s&group=5s&format=json&limit=1

At the recent change from DST to standard time, this query returned nulls for one hour starting at 1am local time. Beginning at the first 2am/second 1am (the moment of the time change), everything was fine.

Firmware version: 02_08_00
Allow Daylight Time: yes

The message log does not contain any information from this time period.

It’s not a big deal, but I thought I would point it out for possible investigation.

Thanks.

I can’t say that I will try to rectify this problem, as I suspect it’s only when querying a specific interval that starts and/or ends within the witching hour between 1am DST and 2am ST.

While most folks take the DST problem as a simple spring forward/fall back algorithm, it’s a very complex problem when trying to log and retrieve data. Today, for instance, has 25 hours. Conversely the spring forward day has only 23 hours.

It gets complicated in things like query where you may specify that data be grouped by days. It makes my head hurt when I try to imagine the different scenarios. Fortunately, the data is stored in UTC which marches on without regard to time-zone or local DST conventions.

So, you gained an hour’s sleep and lost an hour of data. If you plot the data for today it should include both the 1:00am-2:00am DST and the 1:00am-2:00am ST hours.

Yeah, I know time zones suck, and I wouldn’t expect you to put a whole lot of effort into it. What a pain to even test it out, I know.

The Graph+ page shows a full day worth of data, but I have no idea what it’s showing me at the time change time because the page is showing a normal 24-hour day, not a 25-hour day. So I don’t know whether 1-2am is the first 1-2am or the second 1-2am.

(FWIW, Grafana actually gets this right and displays the hours as 12am, 1am, 1am, 2am, as if the day contained 25 hours. Its graphs also skip an hour at the time change in the spring.)

Is there any way to query just the latest-value-no-matter-what? That’s really all I need to get anyway. If the begin/end parameters are throwing something off, I would be able to do without them.

I can plot 1am-2am today and get two hours of data.

If I do today (it’s 11:15pm here) I get 24 hours and 15 minutes.