Skip to content

feat: persist day curves in day_series for unlimited history - #115

Merged
gnacho merged 2 commits into
mainfrom
feat/day-series
Aug 25, 2026
Merged

feat: persist day curves in day_series for unlimited history#115
gnacho merged 2 commits into
mainfrom
feat/day-series

Conversation

@gnacho

@gnacho gnacho commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Closes #114

Qué hace

Guarda la curva de cada día (288 puntos de 5 min) en la tabla nueva day_series
de la BD propia de Helios, de modo que el histórico deje de depender de la
retención del recorder de HAOS (10 días por defecto). Los totales diarios ya
eran ilimitados (daily desde 2024); ahora las curvas también.

Cambios

  • server/src/db.js: tabla day_series (date PK, points_json, estimated,
    source, updated_at) + upsertDaySeries/getDaySeriesRow/daySeriesDates.
  • server/src/solar.js:
    • getDaySeries sirve días pasados desde day_series si hay fila, y
      persiste la curva de HOY en cada cómputo → ilimitado.
    • Refactor: buildDaySeries(stats, dateStr, db) extrae el cómputo de la
      curva (reutilizable para live y backup).
    • backfillDaySeries(ha, db, backupFilePath): backfill idempotente que
      rellena desde HAOS vivo (ventana ~15 días) y desde un backup opcional de
      HAOS (JSON de statistics_during_period).
  • server/src/index.js: backfill de curvas al conectar y en la consolidación
    nocturna.
  • server/test/backfill.test.js: 2 tests nuevos (backup → day_series,
    persistencia servida sin tocar HAOS). 105 tests OK.
  • CHANGELOG.md: entrada en Unreleased.

Backfill aplicado en el CT 226

  • 11 días (18-28 Jul) desde el backup de HAOS home-assistant_v2_prebackfill_20260728.db
    estimated=1 (solis_potencia_actual no existía antes del 13-Ago; Solis
    estimado por heurístico, fox/consumo reales).
  • 11 días (15-24 Ago) desde HAOS vivo → estimated=0.
  • Verificado: /api/solar/day?date=2026-07-20 devuelve 288 puntos
    (antes 0); heurístico exacto (solis 16.90 kWh estimado vs 16.9 real).
  • Irrecuperable (documentado en Persist day curves (day_series) in Helios DB for unlimited history #114): < 18-Jul y 29-Jul→14-Ago.

@gnacho
gnacho merged commit 0150790 into main Aug 25, 2026
4 checks passed
@gnacho
gnacho deleted the feat/day-series branch August 25, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Persist day curves (day_series) in Helios DB for unlimited history

1 participant