Table des sessions de charge : etiqueter pendant, pas deviner apres
L'etiquette du vehicule n'existe QUE pendant la session. `input_select.victron_evcs_vehicle` est un reglage manuel, il change, et rien ne conservait sa valeur au moment ou la charge avait lieu — une session d'il y a trois semaines etait anonyme pour toujours, et toute analyse d'usage impossible. Nouvelle table `session_charge` : debut, fin, vehicule tel que le selecteur l'indiquait PENDANT la session, un drapeau disant s'il a change en cours de route, energie accumulee, puissance et courant maximum, mode source, et l'heure de debranchement — qui confirme apres coup, les deux vehicules partant a des heures differentes. Le service applique lui-meme la migration au demarrage : `schema.sql` n'est joue qu'a la creation de la base, une table ajoutee plus tard n'y arriverait jamais. `CREATE TABLE IF NOT EXISTS` rend l'operation rejouable. On ne DEVINE rien, et le commentaire du schema dit pourquoi : - electriquement, la VW accepte 3 680 W et la JEEP 3 655 W a consigne identique de 20 A — 0,1 A d'ecart, indiscernables ; - horairement, la routine s'inverse le week-end (la femme du proprietaire travaille samedi et dimanche matin), donc « midi = JEEP, nuit = VW » serait faux un week-end sur deux. Essai a blanc : la session en cours serait correctement inscrite (JEEP, 3396 W, Reseau force, profil night_hc). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -120,6 +120,37 @@ CREATE TABLE evenement (
|
||||
);
|
||||
CREATE INDEX evenement_ts_idx ON evenement (ts DESC);
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- 6. SESSION_CHARGE — une ligne par charge de vehicule
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Raison d'etre : l'etiquette du vehicule n'existe QUE pendant la session.
|
||||
-- `input_select.victron_evcs_vehicle` est un reglage manuel, il change, et
|
||||
-- rien ne conserve sa valeur au moment ou la charge a eu lieu. Sans cet
|
||||
-- enregistrement, une session d'il y a trois semaines est anonyme pour
|
||||
-- toujours — et toute analyse d'usage devient impossible.
|
||||
--
|
||||
-- ⚠️ On ne DEVINE pas le vehicule. Mesure du 05/09/2026 : a consigne identique
|
||||
-- de 20 A, la VW accepte 3 680 W et la JEEP 3 655 W, soit 0,1 A d'ecart. Ils
|
||||
-- sont electriquement indiscernables. L'heure ne dit rien non plus : en semaine
|
||||
-- la JEEP charge le midi et la VW la nuit, le week-end c'est l'inverse.
|
||||
CREATE TABLE session_charge (
|
||||
debut timestamptz PRIMARY KEY,
|
||||
fin timestamptz NOT NULL,
|
||||
terminee boolean NOT NULL DEFAULT false,
|
||||
vehicule text, -- valeur du selecteur PENDANT la session
|
||||
vehicule_sur boolean NOT NULL DEFAULT true, -- le selecteur n'a pas change
|
||||
energie_kwh double precision NOT NULL DEFAULT 0,
|
||||
p_max_w double precision,
|
||||
courant_max_a double precision,
|
||||
consigne_max_a double precision,
|
||||
source_mode text,
|
||||
debranche_a timestamptz, -- confirme le vehicule apres coup
|
||||
brut jsonb
|
||||
);
|
||||
COMMENT ON COLUMN session_charge.debranche_a IS
|
||||
'Heure de debranchement : les deux vehicules partent a des heures differentes, ce qui confirme l''etiquette apres coup.';
|
||||
CREATE INDEX session_charge_debut_idx ON session_charge (debut DESC);
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Index de lecture
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user