From bea55ac448ab1eeb384babab0eb740d70d7b1646 Mon Sep 17 00:00:00 2001 From: ztimson Date: Sat, 27 Jun 2026 01:33:16 -0400 Subject: [PATCH] Fixing hourly --- server/src/sensors.mjs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/server/src/sensors.mjs b/server/src/sensors.mjs index 261c56c..9fa4802 100644 --- a/server/src/sensors.mjs +++ b/server/src/sensors.mjs @@ -45,12 +45,14 @@ export async function queryHourly(start, end) { results.forEach(r => { r.values.forEach(([ts, val]) => { if(r.metric.__name__.startsWith('system_')) return; - const time = new Date(ts * 1000); + const time = new Date(ts * 1000).toISOString().slice(0, 13) + ':00'; if (!byTime[time]) byTime[time] = {time}; byTime[time][r.metric.__name__.replace('weather_', '')] = parseFloat(val); }); }); - return Object.values(byTime).sort((a, b) => a.time.localeCompare(b.time)); + return Object.values(byTime) + .sort((a, b) => a.time.localeCompare(b.time)) + .map(r => ({ ...r, time: new Date(r.time) })); } export async function queryDaily(start, end) { @@ -68,7 +70,7 @@ export async function queryDaily(start, end) { means.forEach(r => { r.values.forEach(([ts, val]) => { if(r.metric.__name__.startsWith('system_')) return; - const time = new Date(ts * 1000); + const time = new Date(ts * 1000).toISOString().slice(0, 10); if (!byTime[time]) byTime[time] = {time}; byTime[time][r.metric.__name__.replace('weather_', '')] = parseFloat(val); }); @@ -77,7 +79,7 @@ export async function queryDaily(start, end) { mins.forEach(r => { if (r.metric.__name__ !== 'temperature') return; r.values.forEach(([ts, val]) => { - const time = new Date(ts * 1000); + const time = new Date(ts * 1000).toISOString().slice(0, 10); if (!byTime[time]) byTime[time] = {time}; byTime[time].env_temp_min_c = parseFloat(val); }); @@ -86,13 +88,15 @@ export async function queryDaily(start, end) { maxs.forEach(r => { if (r.metric.__name__ !== 'temperature') return; r.values.forEach(([ts, val]) => { - const time = new Date(ts * 1000); + const time = new Date(ts * 1000).toISOString().slice(0, 10); if (!byTime[time]) byTime[time] = {time}; byTime[time].env_temp_max_c = parseFloat(val); }); }); - return Object.values(byTime).sort((a, b) => a.time.localeCompare(b.time)); + return Object.values(byTime) + .sort((a, b) => a.time.localeCompare(b.time)) + .map(r => ({ ...r, time: new Date(r.time) })); } export async function getCoords() {