Ce miroir était resté en rév. 2 alors que le canonique du dépôt moteur est en rév. 3 depuis
le 2026-08-09. La divergence portait sur le point le plus structurant : la rév. 2 plaçait la
combinatoire watts→relais « dans le thing », ce que la rév. 3 renverse — un integration-plugin
nymea ne peut PAS piloter les things d'un autre plugin, donc la combinatoire vit côté
experience-plugin, et l'écran « Configurer » change (§10, annoncé « impact app majeur »).
Le bandeau désignait en outre un chemin canonique faux (racine au lieu de docs/).
Contenu neuf pour l'app, au-delà du rattrapage de révision :
- §4-bis — LM-201, UN CANAL DE COMMANDE, UNE CHARGE. Décide de ce que l'écran « Configurer »
doit CRÉER : une PAC chauffage+ECS sans ballon séparé = UNE charge, pas deux. Avec ballon
séparé = deux. Une PAC qui fait aussi du froid = toujours une seule.
- §4-bis — LM-202, thermostats et zones NE SONT PAS des charges : ils ouvrent une vanne, ils ne
portent pas la consommation. Leur écran, leur namespace, jamais LoadConfig.
- §4-ter — LM-200, mécanismes recevables selon l'organe, et le piège d'UI « ma PAC est pilotée
par deux relais donc relay-router » : les contacts SG-Ready SONT des things power, mais ils
signalent au lieu de porter la charge.
- domain est explicitement SANS force normative — ne construire aucune règle dessus. Le moteur
n'interdit rien : c'est l'app qui guide au moment du choix, seul endroit fiable puisqu'elle
sait quel appareil l'installateur déclare.
- Lot B-bis : loads[] de GetLoadTelemetry est désormais INCLUS dans GetLoadConfig ; la règle de
détection « loadId sans équivalent » est retirée et aucun configurable:false n'existe.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HajXLUczEyZd22JeewRfff