1. SetChargingInfo remplace un targetPercentage absent par 80, EN SILENCE — réponse
EnergyErrorNoError, aucun avertissement, et la seule trace au journal imprime déjà 80.
L'objet est reconstruit entier à chaque écriture : un champ omis retombe sur son défaut,
il n'est pas « inchangé ». L'app doit lire-patcher-réécrire, et ne pas afficher 80 comme
une cible que l'utilisateur aurait choisie.
2. L'alerte sur SampleRate15Mins était FAUSSE et je la retire : ma sonde lisait
currentPowerProduction là où les entrées de log portent production. Vérifié dans les deux
sens — 51 échantillons non nuls par RPC, 7908 lignes en base. L'historique 90 jours n'est
bloqué par rien. Le piège réel est le nom des champs, sans préfixe currentPower.
3. loads[] contient enfin les bornes (buildTelemetry les sautait) et porte un champ funding
surplus/grid, sans lequel sommer allocatedW donne un écart ininterprétable. Avec la mise
en garde qui va avec : adjustEvChargers() re-décide après le waterfall, donc pour une
borne l'allocation publiée est une intention, pas un ordre.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XPUo3RMr8SzK6qbFtfBm8H