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
This commit is contained in:
42
deploy/watchdog/compose.yaml
Normal file
42
deploy/watchdog/compose.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
# Chien de garde EVCS — à déployer sur le SECOND Synology (10.10.10.22).
|
||||
#
|
||||
# Il surveille le contrôleur qui tourne sur 10.10.10.17 et, s'il se tait,
|
||||
# remet la consigne de puissance réseau de l'ESS à sa valeur de repos et
|
||||
# arrête la borne — en MQTT direct sur le GX Venus (10.10.10.9), donc sans
|
||||
# passer par Home Assistant ni par le cloud Tuya.
|
||||
#
|
||||
# ⚠️ NE JAMAIS le lancer sur 10.10.10.17 : un chien de garde hébergé par la
|
||||
# machine qu'il surveille meurt avec elle.
|
||||
#
|
||||
# Mise en service :
|
||||
# cd /volume2/projects/EVCS/EVCS/deploy/watchdog
|
||||
# cp watchdog.env.exemple watchdog.env puis y coller la clé API n8n
|
||||
# docker compose up -d
|
||||
# docker compose logs -f
|
||||
#
|
||||
# Vérification sans risque, avant de le laisser en service :
|
||||
# docker compose run --rm evcs-watchdog node tools/watchdog-evcs.mjs --once
|
||||
# docker compose run --rm evcs-watchdog node tools/watchdog-evcs.mjs --once --dry-run --simulate-dead
|
||||
|
||||
services:
|
||||
evcs-watchdog:
|
||||
image: node:22-alpine
|
||||
container_name: evcs-watchdog
|
||||
restart: always
|
||||
working_dir: /app
|
||||
network_mode: bridge
|
||||
volumes:
|
||||
# Le dépôt en LECTURE SEULE : le chien de garde n'a aucune raison
|
||||
# d'écrire dans le code qu'il exécute.
|
||||
- /volume2/projects/EVCS/EVCS:/app:ro
|
||||
# Son journal, seul point d'écriture, hors du dépôt.
|
||||
- ./logs:/var/log/evcs-watchdog:rw
|
||||
env_file:
|
||||
- watchdog.env
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- WATCHDOG_LOG=/var/log/evcs-watchdog/watchdog-evcs.log
|
||||
command: ["node", "tools/watchdog-evcs.mjs"]
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "process.exit(0)"]
|
||||
interval: 5m
|
||||
14
deploy/watchdog/watchdog.env.exemple
Normal file
14
deploy/watchdog/watchdog.env.exemple
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copier en `watchdog.env` (exclu de git) et renseigner la clé.
|
||||
# La clé API n8n se trouve dans ~/.config/opencode/opencode.json
|
||||
# (mcp.n8n-mcp.environment.N8N_API_KEY) sur le poste de travail.
|
||||
N8N_API_KEY=
|
||||
|
||||
# Tout le reste a des valeurs par défaut correctes ; à ne changer qu'en
|
||||
# connaissance de cause.
|
||||
# N8N_URL=https://n8n.airtria.pro
|
||||
# EVCS_WORKFLOW_ID=ATswvGfG4KJUls0K
|
||||
# GX_MQTT_HOST=10.10.10.9
|
||||
# GX_PORTAL_ID=c0619ab34ac5
|
||||
# WATCHDOG_MAX_AGE_SEC=600 # 20 cycles manqués avant de conclure à la panne
|
||||
# WATCHDOG_PERIOD_SEC=60
|
||||
# WATCHDOG_IDLE_SETPOINT_W=50 # défaut Victron
|
||||
Reference in New Issue
Block a user