Chantier : recuperation de la courbe horaire Forecast.Solar

Workflow "EVCS Solar Forecast V1" (07P8I349ugna9FH4), actif, cadence 15 min —
la frequence de rafraichissement de la prevision elle-meme, l'API precisant
qu'interroger plus souvent n'a aucun interet. 96 appels par jour pour un quota
de 300 par heure.

Rien n'est code en dur : la cle d'API, les plans et les coordonnees viennent
tous de Home Assistant. La cle vit dans un input_text en mode password, exclue
du recorder, et n'apparait ni dans le depot ni dans le JSON du workflow —
l'URL est assemblee a l'execution par BUILD_FORECAST_URL, qui refuse
explicitement de construire une URL incomplete plutot que de gaspiller le
quota sur un appel malforme.

BUILD_HA_CALLS_FORECAST ne publie rien en cas d'echec plutot que d'ecraser une
prevision valide par du vide.

Suite portee a 33 scenarios, dont le refus sur cle absente, sur plans mal
formes, sur kill-switch, et la preservation de la prevision precedente en cas
d'echec.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-08-25 02:30:28 +02:00
parent 1ce1237965
commit 26fb9f72ea
10 changed files with 636 additions and 2 deletions

View File

@@ -50,6 +50,17 @@ export const WORKFLOWS = [
{ file: 'BUILD_HA_CALLS_PROFILES.js', node: 'BUILD_HA_CALLS_PROFILES', kind: 'jsCode' },
],
},
{
id: 'solar-forecast',
workflowFile: 'workflows/evcs-solar-forecast-v1.json',
srcDir: 'src/energy-balance',
nodes: [
{ file: 'BUILD_FORECAST_URL.js', node: 'BUILD_FORECAST_URL', kind: 'jsCode' },
{ file: 'PARSE_FORECAST.js', node: 'PARSE_FORECAST', kind: 'jsCode' },
{ file: 'BUILD_HA_CALLS_FORECAST.js', node: 'BUILD_HA_CALLS_FORECAST', kind: 'jsCode' },
{ file: 'HA_SNAPSHOT_FORECAST.json.tpl', node: 'HA Snapshot Forecast', kind: 'template' },
],
},
];
// Rétro-compatibilité (outils historiques mono-workflow)