Charges pilotables — l'ordre, la télémétrie et le mécanisme au même endroit

Décision du 2026-08-25 : l'écran « Ordre de service des charges » disparaît. Le rang se règle ici au glisser-déposer, le regroupement à deux niveaux est conservé (domaines ordonnés entre eux, charges ordonnées dedans), et le bloc de télémétrie descend sur la carte de chaque charge.

Les six écrans « Configurer » qu'ouvre le bouton de chaque carte sont dans configurer_mecanismes_mockup.html.

Le changement de fond n'est pas visuel : ces cartes doivent être les charges lues par NymeaEnergy.GetLoadConfig, pas des LoadDescriptor reconstruits depuis des EmsRole. C'est la cause racine du défaut constaté sur appareil — l'écran actuel affichait « 6/6 rôles configurés · tout est assigné » en pointant sur des appareils absents de la box, pendant que celle-ci arbitrait deux charges qui n'apparaissaient nulle part.

‹

Rôles & appareils

⟳
Arbitrage en direct · dernier cycle il y a 41 s
Budget de surplus du cycle2 571 W entrants
Surplus2 571
Réservé VE0
Recrédité500
Alloué3 000
Reliquat71
Charges pilotables · glissez les domaines, puis les charges
⠿

Eau chaude sanitaire

⠿1
Chauffe-eauRouteur de relais · 3 relais · min ON 60 s
Alloué 3 000 W · palier 3 000 W sur 3 500 W
Consigne de 3 000 W servie par le surplus, arrondie sur un palier déclaré (3 071 W de budget).
🔒 Maintien ON — 60 s restantes (au dernier cycle)
⠿

Chauffage

⠿2
PAC bancSG-Ready · maintien d'état 300 s
Alloué 3 000 W · état SG-Ready 4 — estimation 3 000 W
Pompe à chaleur en état 4 (forcé) — estimation 3 000 W sur 3 477 W de budget.
⠿

Non classé

⠿3
Sèche-serviettesRouteur de relais · 1 relais
Non arbitrée · absente du dernier cycle publié
Charge désactivée : son rôle reste décrit, elle ne consomme aucun budget.
⠿4
Plancher chauffantCharge modulable
⚠ En défaut Échec d'écriture : l'échelle de commande est épuisée, plus aucune commande n'est émise tant que le défaut n'est pas levé.
Sans appareil
Borne de rechargeAucune charge déclarée sur la box
Charges pilotables — deux niveaux + télémétrie
Ce qui part sur la box : le glisser-déposer produit une suite d'entiers priority à plat — la box ne sait rien des domaines, le rang de domaine se déduit de l'ordre d'apparition. Le toggle écrit enabled.
  • « Non arbitrée » n'est pas une erreur : une charge de GetLoadConfig absente de loads[] se lit désactivée, jamais perdue. L'inclusion ne vaut que dans un sens.
  • « Lever le défaut » n'apparaît que si available: false, et son résultat n'est jamais annoncé sur le retour du RPC : mesuré sur le banc, ClearLoadFault répond EnergyErrorNoError, lève réellement le verrou… et le cycle suivant le repose si la cause demeure. Le verdict vient de la télémétrie relue, deux cycles plus tard.
  • « Déclarer » mène au même formulaire que « Configurer », vide.