Small bug in the Daily Summary device: forecast_time shows a date one day earlier than the day it actually fetched.
I’m in America/Los_Angeles (UTC-7). Offset 0 shows yesterday’s date, offset 1 shows today’s. The forecast data itself is correct, it’s only the displayed date that’s wrong.
Cause is in drivers/owmOnecallDailySummary/device.js, line 270 on master (v1.8.4):
let date = new Date(data.date).toLocaleString('en-US', { ..., timeZone: tz, ... });
data.date from the day_summary endpoint is a bare date string like "2026-09-01". JavaScript parses a date-only ISO string as midnight UTC, so rendering that instant back in a negative-offset zone lands on the previous evening:
$ node -e 'console.log(new Date("2026-09-01").toLocaleString("en-US",
{timeZone:"America/Los_Angeles",day:"2-digit",month:"2-digit",year:"numeric"}))'
08/31/2026
getOnecallDailySummaryURL() in lib/owm_api.js is correct, it derives the target date from the Homey timezone, so the right day is being requested. Only the display is off.
At UTC+0 or east of it, midnight UTC renders as the same calendar day, which is probably why this hasn’t come up before.
The other drivers aren’t affected, since they format a real unix dt value rather than a date string.
Parsing as local time would fix it:
let date = new Date(data.date + "T00:00:00").toLocaleString('en-US', { ... });
I would have opened a GitHub issue but Issues are disabled on the repo, so posting here instead.