Files
EVCS/deploy/watchdog/compose.yaml
Tallagrand Thierry a7d321f720 La consigne de repos absorbe les a-coups de la plaque
Valeurs negatives au point de raccordement, contacteur ferme. La mesure separe
deux phenomenes que rien ne reliait.

Le premier est bien la plaque qui cycle : sur la fenetre de midi, 9 % des
echantillons negatifs, minimum -477 W, mediane -146. Le regulateur ne rattrape
pas un delestage brutal d un kilowatt avec une consigne de repos a 200 W. Elle
passe a 700 : la courbe monte de 500 W et le minimum devient +23 W. Le surcout
va dans le bon sens, cette consigne ne s appliquant que contacteur ferme sans
session reseau — c est-a-dire apres une coupure sur SOC bas ou une fermeture
par la regle de protection, deux cas ou l on veut justement que le reseau
contribue davantage.

Le second, -2819 W pendant deux minutes, n a rien a voir : le debranchement du
vehicule a supprime 2,2 kW d un coup alors que la batterie a 93 % n absorbait
rien et que le MPPT produisait 4 kW. Aucune consigne n absorbe cela. Ce qui l
evite est le correctif du matin sur la regle de protection : la demande sur le
parc valait 741 W, le contacteur n aurait pas ete ferme, et sans reseau il n y
a rien ou injecter.

Golden 80/80, trois attendus mis a jour avec la mesure en commentaire.

Et docker n est pas dans le PATH d une session SSH sur DSM : les commandes de
deploiement appellent desormais /usr/local/bin/docker.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-06 14:50:29 +02:00

46 lines
1.9 KiB
YAML

# 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
# /usr/local/bin/docker compose up -d
# /usr/local/bin/docker compose logs -f
#
# Vérification sans risque, avant de le laisser en service :
# /usr/local/bin/docker compose run --rm evcs-watchdog node tools/watchdog-evcs.mjs --once
# /usr/local/bin/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 code.
# ⚠️ Le dossier ./logs doit EXISTER avant `up` : le démon Docker de
# Synology DSM refuse un bind-mount dont le dossier hôte est absent,
# là où Docker standard le créerait. Il est versionné vide pour ça.
- ./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