chore(release): 1.15.2+etm32

counts livré, et GetChargingInfos ne ment plus sur son paramètre.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015F7G5VeaPVSMeVNjiGj36p
This commit is contained in:
Patrick Schurig 2026-08-30 10:14:19 +02:00
parent c3a0696503
commit fded0ba89d

View File

@ -1,3 +1,39 @@
powersync-energy-plugin-nymea (1.15.2+etm32) trixie; urgency=medium
* R3 — `counts` : chaque watt publié tombe dans exactement un compteur, et le mapping est
PUBLIÉ. Chaque niveau porte { destination → watts }, avec Σ counts == targetW toujours.
Clés opaques (budget.allocatedW, draw.committedW), jamais recyclées pour un sens nouveau —
recycler ferait ranger des watts dans le mauvais compteur sans qu'aucune erreur ne le
signale, même règle que les numéros de règle retirés.
* Publié TOUJOURS : même à une seule destination, même à zéro. Un `counts` vide satisferait
l'identité en perdant la destination, sur le cas le plus fréquent. Zéro AVEC sa destination
dit « cette grandeur existe et vaut 0 » ; l'absence dirait « elle n'existe pas ».
* funding et counts ne se dérivent PAS l'un de l'autre : funding dit l'ORIGINE des watts,
counts le REGISTRE où ils sont comptés. Sur un EV_GRID_START l'un vaut « grid » quand
l'autre porte deux destinations.
* L'IDENTITÉ DE RÉCONCILIATION NE PASSE PLUS PAR funding : elle somme des compteurs, plus des
origines. EV_GRID_START y entre sans exception — 900 W à l'allocation, 480 W au soutirage.
* LA GARANTIE EST UNE MACHINE, PAS SEPT SITES DE CONSTRUCTION. testCountsSumToTarget relit la
CHARGE UTILE — toutes les charges, trois régimes dont l'import où tout vaut 0 — et vérifie
l'identité, la non-vacuité de counts et l'appartenance des clés au catalogue. Un huitième
site qui oublierait counts échoue ici, pas en relecture de code.
* Et la contre-épreuve a trouvé un trou DANS LE TEST : amputer le partage d'EV_GRID_START le
laissait passer, la borne auto-provisionnée en queue ne voyant jamais de budget. Corrigé —
rang 1, régime EV_GRID_START en premier (une fois la borne en charge, son recrédit porte le
budget au-dessus du plancher et le régime ne peut plus se produire), plus une assertion qui
EXIGE que le régime ait été exercé.
* GetChargingInfos FILTRE enfin sur evChargerId. Le paramètre était déclaré au schéma,
documenté « for all or a single EV charger », et Q_UNUSED : accepté, sans effet, sans
erreur. Des trois issues c'était la pire — un paramètre absent se voit, un paramètre refusé
se voit, un paramètre ignoré ne se voit pas. Identifiant inconnu → liste VIDE, jamais une
erreur : toute borne configurée ayant une entrée, la liste vide est non ambiguë.
* Balayage du namespace : sur 20 méthodes, 9 déclarent des paramètres et GetChargingInfos
était la SEULE à en ignorer un. La famille était petite.
* Suite complète : simulation 34/34, charging 17/17, loadmodel 20/20, spotmarket 7/7. amd64
0 erreur / 0 avertissement, doxygen 0 avertissement.
-- Patrick Schurig <etm.schurig@gmail.com> Sun, 30 Aug 2026 14:20:00 +0200
powersync-energy-plugin-nymea (1.15.2+etm31) trixie; urgency=medium
* `draw.committedW` — LE REGISTRE DES WATTS ACHETÉS, préalable à R3. Publié dans la MÊME TRAME