Question du proprietaire : HA_TOKEN il l a, mais les mots de passe PostgreSQL et InfluxDB, il les invente ? Non — ils se generent. Les deux bases n existent pas encore, c est ce fichier qui decide de leurs identifiants, et personne ne les tape jamais : les conteneurs les lisent dans .env et Home Assistant lit le jeton dans son propre secrets.yaml. preparer-env.sh les tire avec openssl rand, reprend HA_TOKEN du .env a la racine plutot que d en creer un nouveau, pose les droits a 600, et affiche la ligne a recopier dans secrets.yaml. Il refuse d ecraser un .env existant : regenerer les mots de passe d une base deja creee la rendrait inaccessible. Corrige au passage un piege laisse dans l exemple : POSTGRES_PASSWORD et PGPASSWORD etaient deux variables a tenir egales a la main. Le fichier s appelle desormais .env, donc compose l utilise aussi pour la substitution, et le service d historisation reprend le mot de passe par substitution. Un seul secret PostgreSQL desormais. Generateur essaye dans un bac a sable : fichier conforme, refus de regeneration verifie. Fichiers d echange des editeurs ajoutes au gitignore. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
3.5 KiB
Mémoire de mesures EVCS
Deux bases sur 10.10.10.22, décidées le 04/09/2026 : on met les deux en service et on décide à l'usage s'il faut garder les deux.
| rôle | source | résolution | |
|---|---|---|---|
| PostgreSQL | ce que n8n calcule — bilan, décisions, prévisions publiées | workflows n8n | cadence des workflows |
| InfluxDB | ce que Home Assistant observe — tous les états du périmètre énergie | intégration HA | chaque changement d'état |
Le raisonnement complet et le comparatif : HANDOFF.md §42 et suivantes.
Pourquoi pas sur 10.10.10.17
Cette machine porte déjà Home Assistant, n8n, openclaw et open-webui. Une mémoire hébergée par la machine dont elle documente les pannes ne survit pas à celles-ci. Le volume n'est pas l'argument : les deux Synology ont des téraoctets libres.
Mise en service
1. Les deux bases (à faire sur 10.10.10.22)
cd /volume2/projects/EVCS/EVCS/deploy/historisation
bash preparer-env.sh # génère .env avec des secrets aléatoires
docker compose up -d
docker compose logs -f
D'où viennent les secrets
| secret | origine |
|---|---|
HA_TOKEN |
existe déjà — repris du .env à la racine du dépôt |
POSTGRES_PASSWORD |
créé ici — la base n'existe pas encore, ce fichier décide de son mot de passe |
DOCKER_INFLUXDB_INIT_PASSWORD |
créé ici, idem (InfluxDB exige au moins 8 caractères) |
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN |
créé ici — c'est le jeton que Home Assistant utilisera pour écrire |
Aucun ne s'obtient auprès de quelqu'un, et aucun ne doit être choisi à la main :
personne ne les tape jamais — les conteneurs les lisent dans .env, et Home
Assistant lit le jeton dans son propre secrets.yaml. Une phrase inventée est
plus courte et plus devinable qu'elle n'en a l'air ; openssl rand ne l'est pas.
preparer-env.sh refuse d'écraser un .env existant : régénérer les mots de
passe d'une base déjà créée la rendrait inaccessible, puisqu'elle continuerait
d'attendre les anciens.
Vérifications :
docker compose exec postgres psql -U evcs -d evcs -c '\dt'
curl -s http://10.10.10.22:8086/health
Le schéma (schema.sql) est appliqué une seule fois, à la création de la
base. Pour le faire évoluer ensuite, écrire une migration et la passer à psql :
recréer le volume effacerait l'historique, ce qui est précisément ce qu'on
cherche à ne plus faire.
2. Brancher Home Assistant sur InfluxDB
⚠️ Demande un redémarrage de Home Assistant, pendant lequel le contrôleur EVCS ne décide plus rien. Jamais entre 01:24 et 07:24, ni pendant une charge. Le bon créneau est le milieu de matinée.
- mettre le jeton dans
secrets.yamlsous la cléinfluxdb_token; - coller le bloc de
ha-influxdb.yamldansconfiguration.yaml; homeassistant.check_config, puis redémarrer.
3. Alimenter PostgreSQL depuis n8n
À faire après l'étape 1 — n8n a besoin que la base existe pour qu'on y crée l'identifiant de connexion.
Ce qu'aucune des deux ne fait
Elles ne remontent pas dans le passé. La mémoire commence le jour où on les branche : c'est un argument pour les mettre en service vite, pas pour les mettre en service parfaitement.
Sauvegarde
Les deux bases vivent dans des volumes Docker nommés, donc hors du dépôt et
hors des sauvegardes Home Assistant. Une mémoire non sauvegardée est une
mémoire qu'on perdra une fois — voir HANDOFF.md §34, qui raconte la même
histoire pour Home Assistant.