chore(release): 1.15.2+etm26
La mesure par charge lue sur l'appareil piloté, et measuredW remplacé par
measurement {source, o:powerW}. Contrat déplacé — l'app a un écran à reprendre.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015F7G5VeaPVSMeVNjiGj36p
This commit is contained in:
parent
e392c1c7b8
commit
1f3b86adfc
@ -1,3 +1,42 @@
|
||||
powersync-energy-plugin-nymea (1.15.2+etm26) trixie; urgency=medium
|
||||
|
||||
* LA MESURE D'UNE CHARGE SE LIT SUR L'APPAREIL PILOTÉ (LM-1105). Il fallait jusqu'ici désigner
|
||||
une borne comme SON PROPRE compteur dans meterThingId pour qu'elle publie ce qu'elle mesure
|
||||
déjà. Ce n'est devinable par personne — c'est de la configuration demandée à l'installateur
|
||||
pour compenser ce que le moteur peut déduire. Quand le Thing piloté porte lui-même l'état de
|
||||
puissance, le moteur le lit, sans configuration.
|
||||
* La règle porte sur le THING, pas sur le mécanisme : certains powerswitch portent currentPower
|
||||
et RelayRouter sait déjà les sommer. Et le test se pose sur la CLASSE, sur TOUS les Things
|
||||
déclarés — jugé sur les relais actifs, il répondrait « non mesurable » au palier 0, et le bloc
|
||||
de mesure apparaîtrait et disparaîtrait au rythme du thermostat.
|
||||
* Le compteur explicite reste PRIORITAIRE, et pas d'abord parce qu'il mesure mieux : un réglage
|
||||
sans effet est pire que pas de réglage. La priorité porte sur la SOURCE, pas sur la valeur —
|
||||
compteur déclaré injoignable, on retombe sur l'appareil plutôt que de taire une mesure qu'on a.
|
||||
* measuredW DISPARAÎT au profit de measurement {source: meter|device|none, o:powerW} (LM-1106).
|
||||
Le moteur portait déjà trois régimes sous un seul nom et jetait la distinction : evcharger
|
||||
rend une mesure, relay-router une mesure OU le palier nominal — le booléen `metered` était
|
||||
calculé puis jeté — et sg-ready une puissance DÉCLARÉE, jamais mesurée. Le régime se PUBLIE,
|
||||
il ne se déduit pas d'une valeur.
|
||||
* `none` est un état POSITIF, et powerW y est OMIS : la puissance nominale reste lisible dans
|
||||
mechanism.*, elle ne se fait pas passer pour une mesure. Un écart commandé↔mesuré fabriqué
|
||||
depuis un nominal serait identiquement nul à tous les cycles — un « tout concorde » permanent,
|
||||
corollaire LM-104.
|
||||
* Deux affinements trouvés en implantant. LM-1105-a : une mesure PARTIELLE n'est pas une mesure
|
||||
— trois relais dont un seul mesure annonceraient 500 W là où 1 500 W coulent. LM-1105-b : la
|
||||
règle présuppose que le Thing piloté est TRAVERSÉ par la puissance ; un contact SG-Ready est
|
||||
un contact de SIGNAL, et sg-ready est donc `none` par CONSTRUCTION, même sur des relais qui
|
||||
mesurent. C'est le seul mécanisme où meterThingId reste la seule voie.
|
||||
* ILoadAdapter::deviceMeasurement() est PURE VIRTUELLE, comme runtimeView() : un mécanisme
|
||||
ajouté qui hériterait d'un « non mesurable » par défaut sortirait de la mesure sans bruit.
|
||||
* Ne touche PAS ce que l'arbitre lit : LM-1101 tient, LoadTelemetry::currentPowerW est inchangé,
|
||||
et le recrédit anti-clignotement n'a jamais transité par meterThingId.
|
||||
* Éprouvé par testMeasurementSourceIsPublished — trois sources, palier 0, PAC en `none`, et les
|
||||
deux règles de priorité ; la règle « capacité jugée sur la classe » vérifiée échouant quand on
|
||||
la juge sur les relais actifs. Suite complète : simulation 30/30, charging 16/16, loadmodel
|
||||
18/18, spotmarket 7/7. amd64 0 erreur / 0 avertissement.
|
||||
|
||||
-- Patrick Schurig <etm.schurig@gmail.com> Fri, 28 Aug 2026 16:05:00 +0200
|
||||
|
||||
powersync-energy-plugin-nymea (1.15.2+etm25) trixie; urgency=medium
|
||||
|
||||
* UNE BORNE SANS VOITURE ASSIGNÉE RESTE ARBITRÉE (LM-1208-b). Le cas de l'invité : au banc le
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user