docs(interface): compteur et sonde — publiés toujours, persistés si renseignés

Vérifié sur .75 après déploiement de +etm17 : GetLoadConfig rend meterThingId='' et
sensorThingId='' sur les deux charges du banc, alors que le fichier persisté n'en porte
aucune trace. C'est la sérialisation par méta-objet, exactement comme domain — et c'est
ce qui rend l'aller-retour Get → Set neutre, donc ce sur quoi l'app s'appuie pour
écrire. Un client traite '' et l'absence de la même façon.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XPUo3RMr8SzK6qbFtfBm8H
This commit is contained in:
Patrick Schurig 2026-08-26 10:39:46 +02:00
parent bbb3492c2c
commit 7bbf467cc9

View File

@ -358,6 +358,13 @@ charge — jamais ce qu'on lui **commande**.
- **Ni l'un ni l'autre n'est exclusif**, contrairement à `relays[]`. Ils mesurent, ils ne
commandent pas : `validateSet()` les ignore, et deux charges peuvent partager une sonde de
pièce ou un compteur de tableau divisionnaire.
- **Publiés toujours, persistés seulement s'ils valent quelque chose** — exactement comme
`domain`, et pour la même raison (corollaire LM-302). `GetLoadConfig` sérialise via le
méta-objet : les deux clés **sortent toujours**, à `""` quand rien n'est rattaché, comme
`sgReady: {}` ou `powerLevels: []`. La forme **persistée**, elle, omet la clé. C'est ce qui
rend l'aller-retour `Get` → `Set` neutre : un client qui renvoie verbatim ce qu'il a lu ne
déclare rien par accident. **Un client traite `""` et l'absence comme « aucun Thing
rattaché ».**
> **Le compteur VÉRIFIE, il ne budgète pas.** Commandé 3 000 W, mesuré 0 W sur plusieurs
> cycles : la charge ne fait pas ce qu'on lui demande. La mesure n'est **pas** injectée dans le