feat(écran): « Commandé, pas encore mesuré » remplace « Réservé au véhicule »

Le moteur a livré la définition d'`evReservedW`, et il ne pouvait pas l'écrire
avant d'en avoir sorti la part réseau d'`EV_GRID_START` : un champ à deux natures
ne se documente pas. Le libellé tranché est le sien, parce qu'il dit la chose —
la latence entre l'ordre et sa lecture au compteur.

« Réservé au véhicule » affirmait deux faussetés : que c'est réservé, et que ça
regarde le véhicule plutôt que la latence de sa mesure.

La clé ARB garde le nom du champ de la box (`budgetEvReserved`), pas celui de
l'ancienne affirmation. Et la consigne qui compte reste écrite à côté : ce n'est
pas un registre, on ne réconcilie rien dessus — la nature du champ l'interdit,
pas son état de livraison.

`draw.committedW` : annoncé livré en +etm31, NON vérifié à la sonde. La box porte
`powersync-energy-plugin-nymea 1.15.2+etm30` au 2026-08-30 et ne publie aucune
clé `draw`. L'exception `EV_GRID_START` reste donc dans `surplusShareW` : c'est
la sonde qui autorise le retrait, pas l'annonce.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw
This commit is contained in:
Patrick Schurig 2026-08-30 09:16:04 +02:00
parent b01a716047
commit 43fd79ad62
5 changed files with 28 additions and 14 deletions

View File

@ -269,11 +269,20 @@ plan, pas de financement.
> 🔴 **Et il n'y a d'identité que de ce côté-là.** Une charge financée au réseau ne vit
> **nulle part** : `budget.evReservedW` n'est pas un registre d'allocation mais un **terme de
> correction** du budget, qui mêle la correction « commandé non encore mesuré » à la part
> réseau d'`EV_GRID_START` — une borne servie au réseau qui tire déjà ce qu'on lui a commandé
> y contribue **0** alors que son `targetW` vaut 7 000 W. Constaté par le moteur le
> 2026-08-30 en câblant R3. Les watts achetés n'auront de registre qu'avec
> `draw.committedW`, préalable à R3. **Ne réconcilier aucun total sur `evReservedW`.**
> correction** du budget — « **commandé, pas encore mesuré** », la latence entre l'ordre et
> sa lecture au compteur. Sur `+etm30` il mêle encore à cela la part réseau d'`EV_GRID_START`,
> et une borne au réseau qui tire déjà ce qu'on lui a commandé y contribue **0** alors que son
> `targetW` vaut 7 000 W. **Ne réconcilier aucun total dessus, jamais** — la nature du champ
> l'interdit, pas son état de livraison.
>
> Le libellé d'écran est **« Commandé, pas encore mesuré »** (2026-08-30). « Réservé au
> véhicule » affirmait deux faussetés : que c'est réservé, et que ça regarde le véhicule
> plutôt que la latence de sa mesure.
>
> Les watts achetés n'auront de registre qu'avec **`draw.committedW`**, préalable à R3.
> Annoncé livré en `+etm31` — **non vérifié à la sonde** : le 2026-08-30 la box porte
> `powersync-energy-plugin-nymea 1.15.2+etm30`, et aucune clé `draw` n'apparaît dans la
> télémétrie.
Le niveau publié est `"comfort"` et ce **n'est pas un rebaptisage** : c'est bien la passe
qui, au §10, servira le confort depuis le surplus. Un niveau à `targetW: 0` est une passe

View File

@ -422,10 +422,12 @@
<code>setpointW</code>, <code>currentA</code>), qui existe déjà aujourd'hui.</li>
<li><b>Et il ne se répartit pas non plus.</b> L'écart appartient à la charge, pas à un niveau :
l'adaptateur arrondit une consigne unique, il ne sait pas de quel besoin elle venait.</li>
<li><b>* « Réservé VE » n'est pas une destination</b> — c'est un <b>terme de correction</b> du budget
(constaté par le moteur le 2026-08-30). Il est affiché parce que la box le publie, jamais sommé, et
son libellé actuel affirme une réservation qui n'a pas lieu : il attend une définition du moteur pour
être réécrit. Les watts achetés, eux, n'ont de registre qu'avec <code>draw.committedW</code>.</li>
<li><b>* « Commandé, pas encore mesuré » — et ce n'est pas une destination.</b> Le champ
<code>budget.evReservedW</code> est un <b>terme de correction</b> : la latence entre l'ordre et sa
lecture au compteur. Il est affiché parce que la box le publie, <b>jamais sommé</b>. Son ancien
libellé, « Réservé au véhicule », affirmait deux faussetés — que c'est réservé, et que ça regarde le
véhicule plutôt que la latence de sa mesure ; réécrit le 2026-08-30 sur la définition livrée par le
moteur. Les watts achetés, eux, n'ont de registre qu'avec <code>draw.committedW</code>.</li>
<li>Le bandeau ◆ n'apparaît <b>que si au moins une charge porte une obligation éco</b>. Sans obligation,
il n'y a qu'une passe utile et la phrase serait du bruit (LM-1007).</li>
</ul>

View File

@ -127,7 +127,10 @@
"telemetryBudgetTitle": "Budget de surplus du cycle",
"telemetryBudgetAbsent": "Aucun budget publié pour ce cycle : la planification est suspendue.",
"budgetSurplus": "Surplus entrant",
"budgetEvReserved": "Réservé au véhicule",
"budgetEvReserved": "Commandé, pas encore mesuré",
"@budgetEvReserved": {
"description": "budget.evReservedW. Le libellé précédent, « Réservé au véhicule », affirmait deux choses fausses : que c'est réservé, et que ça concerne le véhicule plutôt que la LATENCE de sa mesure. Définition livrée par le moteur le 2026-08-30, après que la part réseau d'EV_GRID_START en a été retirée — un champ à deux natures ne se documente pas. Ce n'est PAS un registre d'allocation : ne rien réconcilier dessus. La clé garde le nom du champ de la box, pas celui de l'ancienne affirmation."
},
"budgetRecredited": "Recrédité",
"budgetAllocated": "Alloué",
"budgetRemaining": "Reliquat",

View File

@ -409,10 +409,10 @@ abstract class L10n {
/// **'Surplus entrant'**
String get budgetSurplus;
/// No description provided for @budgetEvReserved.
/// budget.evReservedW. Le libellé précédent, « Réservé au véhicule », affirmait deux choses fausses : que c'est réservé, et que ça concerne le véhicule plutôt que la LATENCE de sa mesure. Définition livrée par le moteur le 2026-08-30, après que la part réseau d'EV_GRID_START en a été retirée — un champ à deux natures ne se documente pas. Ce n'est PAS un registre d'allocation : ne rien réconcilier dessus. La clé garde le nom du champ de la box, pas celui de l'ancienne affirmation.
///
/// In fr, this message translates to:
/// **'Réservé au véhicule'**
/// **'Commandé, pas encore mesuré'**
String get budgetEvReserved;
/// No description provided for @budgetRecredited.
@ -469,7 +469,7 @@ abstract class L10n {
/// **'Borne : état non publié ce cycle'**
String get telemetryEvStateUnknown;
/// funding == « grid » : l'allocation vit dans budget.evReservedW, pas dans budget.allocatedW. Sans cette mention, l'utilisateur voit une charge servie alors que le surplus est nul et croit à un défaut.
/// funding == « grid » : l'allocation est hors de budget.allocatedW, et sans registre où la retrouver (evReservedW est une correction du budget, pas une destination — constaté 2026-08-30). Sans cette mention, l'utilisateur voit une charge servie alors que le surplus est nul et croit à un défaut.
///
/// In fr, this message translates to:
/// **'Financée au réseau (échéance ou tarif dynamique) — hors budget de surplus'**

View File

@ -212,7 +212,7 @@ class L10nFr extends L10n {
String get budgetSurplus => 'Surplus entrant';
@override
String get budgetEvReserved => 'Réservé au véhicule';
String get budgetEvReserved => 'Commandé, pas encore mesuré';
@override
String get budgetRecredited => 'Recrédité';