24h forecasting

This commit is contained in:
2026-06-24 13:30:38 -04:00
parent 7dca2a200b
commit 88f86646af
2 changed files with 13 additions and 3 deletions

View File

@@ -223,8 +223,10 @@ function summarise(slots) {
}
export async function refreshForecast() {
const sensors = await queryCurrent()
const slots = await get24HourForecast(sensors)
const sensors = await queryCurrent().catch(() => null)
if (!sensors) return cache
const slots = await get24HourForecast(sensors).catch(() => null)
if (!slots) return cache
cache = { ts: Date.now(), slots, summary: summarise(slots) }
return cache
}

View File

@@ -11,6 +11,7 @@ import {existsSync} from 'fs';
import {getAirTraffic, getAirTrafficHistory, getShapes} from './airtraffic.mjs';
import {getWeatherCondition} from './openweather.mjs';
import {refreshForecast} from './forecast.mjs';
import {cache} from 'express/lib/application.js';
const app = express();
const DIR = dirname(fileURLToPath(import.meta.url));
@@ -181,7 +182,14 @@ app.get('*', (req, res) => {
// ── Start ─────────────────────────────────────────────────────────────────────
setTimeout(refreshForecast, 2000)
let ready = false
while (!ready) {
try {
await refreshForecast()
ready = cache.slots.length > 0
} catch {}
if (!ready) await new Promise(r => setTimeout(r, 5000))
}
setInterval(refreshForecast, 10 * 60 * 1000)
const c = cfg();