docs(todo): les trois lots ouverts prennent leur vraie forme

· Sankey — la vue consommation se branchera sur `measurement` PAR CHARGE, pas sur des
  ratios ni sur l'ancien `measuredW` que l'entrée citait encore. Deux règles héritées du
  contrat, à ne pas perdre dans la refonte : une charge en `none` n'a pas de branche (pas
  une branche à zéro), et une charge absente de loads[] ne se dessine pas — elle ne dit
  rien.

· Totalisateur — l'entrée parlait de « déclarer smartmeter ». Sa vraie portée est plus
  large : un cumul d'énergie ouvre le logging natif de nymea sur la borne, et avec lui les
  rapports mensuels. C'est le même manque qui prive l'historique de recharge d'une courbe.

· Journal de sessions — noté comme attendu du moteur, avec la raison de ne rien bâtir
  avant : un journal reconstruit côté app divergerait du sien à la première interruption.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQbZKrWqsMFP1Lh2jjjd9f
This commit is contained in:
Patrick Schurig 2026-08-28 15:35:52 +02:00
parent 771345f1bc
commit 7f0bf71ad8

20
TODO.md
View File

@ -60,8 +60,10 @@
borne avec/sans accolades), la règle, la façon de le chercher, et un renvoi depuis les
deux sites de code plus `tools/rpc/README.md` — là où quelqu'un croise deux réponses.
- [ ] **Plugin V2C — déclarer `smartmeter` sur la classe `trydan`, ce qui suppose un
cumul d'énergie.** Relevé du 2026-08-28 : la classe `wallbox` (borne simulée) déclare
- [ ] **Lot TOTALISATEUR — `smartmeterconsumer` sur la Trydan, et ce qu'il débloque.**
Ce n'est pas qu'une déclaration d'interface : un cumul d'énergie ouvre le **logging
d'énergie natif** de nymea sur la borne, et avec lui les **rapports mensuels**. C'est ce
qui manque aussi à l'historique de recharge (entrée plus bas). Détail de l'écart : Relevé du 2026-08-28 : la classe `wallbox` (borne simulée) déclare
`connectable, evcharger, power, smartmeter, smartmeterconsumer` ; la classe `trydan` n'a
que `connectable, evcharger, power`. La V2C n'est donc **pas proposée comme compteur** —
l'app a élargi son sélecteur aux bornes publiant `currentPower` (correctif du jour), mais
@ -72,6 +74,11 @@
pas un total. À chercher dans la carte Modbus V2C, ou à **construire** comme
`sessionEnergy` l'a été (`1.15.2+etm13`). C'est un lot plugin, pas un correctif d'app.
- [ ] ⏳ **Journal de sessions de recharge — côté moteur, rien à câbler ici.** Attendu
comme la source propre d'un historique par session, là où l'app ne peut aujourd'hui
montrer qu'un instantané. Ne rien bâtir avant qu'il existe : un journal reconstruit côté
app divergerait du sien à la première interruption.
- [ ] **Historique des états d'une borne — `sessionEnergy` n'est pas enregistré.**
`suggestLogging` est écrasé par les préférences persistées de `things.conf` sur un Thing
déjà appairé, et la V2C n'y a que `connected`, `charging`, `power`. La valeur courante est
@ -117,9 +124,12 @@
et une légende sous le schéma nomme les branches concernées : « seule la voiture est
mesurée à la borne ». La voiture, elle, lit la mesure réelle (`currentPower`, « non lu »
sans borne) au lieu des 3,6 kW en dur qu'elle affichait en permanence.
**Reste le vrai lot** : brancher les trois branches sur `GetLoadTelemetry.measuredW`
(relevé du jour : chauffe-eau 1500 W, PAC 800 W). C'est une refonte de l'écran d'accueil,
pas un correctif, et le banc est pris par la campagne V2C.
**Reste le vrai lot** : brancher les trois branches sur `measurement` **par charge**
(`GetLoadTelemetry`), pas sur des ratios. Relevé du 2026-08-28 : chauffe-eau 1 500 W et
pac-terrain 800 W, tous deux en `source: "meter"`. Deux règles à respecter dans la
refonte, elles ne sont pas décoratives : une charge en `none` **n'a pas de branche** — pas
une branche à zéro — et une charge **absente de `loads[]`** ne dit rien, donc ne se dessine
pas non plus. C'est une refonte de l'écran d'accueil, pas un correctif.
Ce qu'une carte de recharge dédiée pourrait dire, si elle revient un jour :
- le **mode courant**, lu par `NymeaEnergy.GetChargingInfos` et tenu à jour par
`ChargingInfoChanged` — l'écriture existe déjà et est vérifiée