38 lines
1.8 KiB
JavaScript
38 lines
1.8 KiB
JavaScript
import { readArchiveSince } from "./davis.js";
|
|
|
|
// ── Ausgabe ────────────────────────────────────────────────────────────────
|
|
|
|
function formatRecord(r) {
|
|
const ts = r.time.toLocaleString("de-DE", { hour12: false });
|
|
const tmp = r.tempOut !== null ? `${r.tempOut}°C` : "n/a";
|
|
const hum = r.humOut !== null ? `${r.humOut}%` : "n/a";
|
|
const wnd = r.windAvg !== null ? `${r.windAvg} km/h` : "n/a";
|
|
const dir = r.windDir ?? "n/a";
|
|
const pre = r.pressure !== null ? `${r.pressure} hPa` : "n/a";
|
|
const rai = r.rain > 0 ? ` Regen: ${r.rain}mm` : "";
|
|
return `${ts} Außen: ${tmp} Feuchte: ${hum} Wind: ${wnd} ${dir} Druck: ${pre}${rai}`;
|
|
}
|
|
|
|
// ── CLI ────────────────────────────────────────────────────────────────────
|
|
// Aufruf: node archive.js [ISO-Datum]
|
|
// Beispiel: node archive.js 2026-04-01T00:00:00
|
|
|
|
let since = new Date(Date.now() - 24 * 60 * 60 * 1000);
|
|
if (process.argv[2]) {
|
|
since = new Date(process.argv[2]);
|
|
if (isNaN(since)) { console.error("Ungültiges Datum:", process.argv[2]); process.exit(1); }
|
|
}
|
|
|
|
console.error(`Lese Archiv ab ${since.toLocaleString("de-DE", { hour12: false })} ...`);
|
|
|
|
let lastPct = -1;
|
|
const records = await readArchiveSince(since, (cur, total) => {
|
|
const pct = Math.floor(cur / total * 100);
|
|
if (pct !== lastPct) { process.stderr.write(`\r${pct}% (Seite ${cur}/${total})`); lastPct = pct; }
|
|
});
|
|
process.stderr.write("\r\x1b[K");
|
|
|
|
console.error(`${records.length} Datensätze gefunden.`);
|
|
console.log();
|
|
for (const r of records) console.log(formatRecord(r));
|