Commit Graph

7 Commits

Author SHA1 Message Date
Tallagrand Thierry
230039d2a2 Memoire de mesures : PostgreSQL et InfluxDB sur le second Synology
Le proprietaire a tranche : on met les deux en service et on decidera a l usage
s il faut garder les deux. Elles ne repondent pas a la meme question.

PostgreSQL garde ce que n8n CALCULE — sorties du bilan, decisions du
controleur, prevision telle qu elle a ete publiee — parce que ce ne sont pas des
capteurs, donc qu aucune statistique Home Assistant ne les retient, et parce que
ce sont des vecteurs, du texte et des jointures. Cinq tables, une vue de confort
qui repond a la question restee sans reponse le 03/09 : ce que le bilan exigeait
contre le SOC reellement atteint, heure par heure.

InfluxDB garde ce que Home Assistant OBSERVE, a la resolution native et sur tout
le perimetre energie, y compris les entites auxquelles personne n a encore
pense. C est exactement ce qui a manque le 03/09, quand les modes des chargeurs
MPPT se sont reveles etre le bon signal alors que personne ne les enregistrait.

Les deux sur 10.10.10.22 : cette machine ne porte qu un service, quand
10.10.10.17 en porte quatre. Le volume n est pas l argument, les deux Synology
ont des teraoctets libres.

L alimentation de PostgreSQL ne passe volontairement PAS par n8n. Tout ce que
n8n calcule, il le publie deja dans des helpers Home Assistant : les lire donne
la meme information sans toucher aux trois workflows de production stabilises
hier soir ni creer d identifiant dans n8n. L horodatage retenu est celui de Home
Assistant et non celui du sondage, si bien qu une valeur inchangee porte la meme
clef primaire et n est pas reecrite : on enregistre quand la grandeur bouge, pas
quand on regarde.

Essai a blanc verifie sur l installation reelle : 15 mesures, 1 ligne de bilan,
1 decision, 2 previsions, avec les bonnes dates. Le mode blanc comptait d abord
les lignes ecrites, donc zero par construction — corrige pour compter ce qu il
ecrirait, sans quoi il ne verifiait rien.

Le branchement de Home Assistant sur InfluxDB demande un redemarrage et n est
donc PAS applique : le fichier de configuration est pret, a poser en milieu de
matinee, jamais entre 01:24 et 07:24.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-04 01:11:09 +02:00
Tallagrand Thierry
32de4ffa35 Le dossier de journaux doit exister avant le premier up sur DSM
Docker de Synology refuse un bind-mount dont le dossier hote est absent,
la ou Docker standard le creerait. deploy/watchdog/logs est desormais
versionne vide, et le compose le dit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-01 03:25:37 +02:00
Tallagrand Thierry
c3eeab2c92 Le journal du chien de garde n avait rien a faire dans le depot
Le garde grep -q sur node_modules avait fait sauter l ajout de logs/ au
gitignore : le journal s est retrouve suivi au commit precedent. Retire
du suivi, ignore desormais.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-01 03:21:31 +02:00
Tallagrand Thierry
ccd764beb9 Chien de garde EVCS : remise en etat sur quand le controleur se tait
Le controleur pilote depuis cette nuit la consigne de puissance reseau.
S il meurt en pleine session, elle reste haute et le reseau reprend la
place du solaire toute la journee. Ce chien de garde repare ce risque.

Signal de vie : l API d executions n8n, pas un helper HA. Verifie que HA
ne rafraichit pas l horodatage d un input_text reecrit a l identique --
surplus_state paraissait fige depuis 40 min alors que tout tournait.

Il agit en MQTT direct sur le GX Venus, troisieme machine independante
des deux NAS, jamais via HA ni via le cloud Tuya. Il ne decide rien : il
remet la consigne au repos, arrete la borne, et se tait. Une seule
action par panne, verrou jusqu au retour du controleur.

Tests : controleur vivant, panne simulee, et verrou sur 5 cycles.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-01 02:59:56 +02:00
Tallagrand Thierry
12e8bddb98 Outil d'appel de service HA (redemarrage, check_config) + protection du jeton
tools/ha-service.mjs comble le trou des MCP disponibles : ha-get-state lit un
etat, ha-set-helper ecrit un helper, mais aucun n'appelle un service. Or
homeassistant.check_config et homeassistant.restart sont indispensables apres
une modification de configuration.yaml (le recorder n'est pas rechargeable a
chaud). Meme schema que tools/n8n-push.mjs : fetch, jamais curl, jeton lu dans
.env, jamais en dur. Les services destructifs exigent --yes explicite.

.env ajoute a .gitignore : il contenait HA_TOKEN et n'etait pas exclu, un
git add -A l'aurait pousse sur le remote (le fichier n'etait pas encore suivi).

Note : configuration.yaml (hors depot, sur le NAS) recoit
recorder.purge_keep_days = 90 pour pouvoir rejouer un incident plusieurs
semaines apres coup. Sauvegarde dans SAVE_CONFIG/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-08-24 14:10:10 +02:00
Tallagrand Thierry
c9dd79c30f Config locale : .mcp.json, CLAUDE.md, skills n8n opencode
Ajout de la configuration MCP (5 serveurs n8n) et du CLAUDE.md qui charge
AGENTS.md/HANDOFF.md/MEMORY.md/docs/MANUEL_COMPLET.md, ainsi que les skills
n8n de référence (.claude/skills/*, docs uniquement, pas de code exécuté).
.claude/settings.local.json reste ignoré (déjà dans .gitignore).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 21:10:27 +02:00
Tallagrand Thierry
1ae8129658 R2: git = source de vérité — src/nodes/ + build/extract intégrés au push
- src/nodes/*.js (6 nodes + template snapshot) = source de vérité unique.
- n8n-push.mjs reconstruit le JSON depuis src/ avant syntaxe+golden+PUT
  (src gagne toujours; n8n-extract.mjs pour resynchroniser si édition UI).
- n8n-build.mjs --check pour vérifier la synchro.
- Copies historiques déplacées dans archive/ (mortes, dérivées de la prod).
- .gitignore: backups locaux de rollback.
- AGENTS.md: règle R2 pour toutes les futures sessions (dont Qwen local).
- Validé: idempotence, mutation/restauration, pipeline push complet en réel.
2026-08-07 21:03:52 +02:00