Range dans tools/rpc/ les sondes qui vivaient dans un scratchpad volatil : probe (appel RPC quelconque), notifications (abonnement + comptage), locale et locale_diff (comportement o:locale et son effet réel), loadconfig_roundtrip (aller-retour neutre §7-1). README avec usages. loadconfig_roundtrip est le SEUL qui écrit sur la box : garde --yes ajouté pour qu'un SetLoadConfig ne parte jamais par réflexe de flèche haut. analysis_options : tools/** et les classes l10n générées sortent de l'analyse — flutter analyze revient à 25 issues (ligne de base). Fixtures : le lot plugin télémétrie EST déployé sur .75 depuis ce matin (20 méthodes / 14 notifications). Capturé avant que ça ne se reperde : - loadtelemetry_hems75.json : dump réel de GetLoadTelemetry - loadconfig_hems75_v2.json : GetLoadConfig avec la clé 'domain' - schema_hems75_v2.json : schémas SET + télémétrie introspectés Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
57 lines
1.6 KiB
JSON
57 lines
1.6 KiB
JSON
{
|
|
"_source": "dump réel HEMS 192.168.1.75, NymeaEnergy.GetLoadTelemetry, 2026-08-25 — lot plugin télémétrie déployé (20 méthodes / 14 notifications).",
|
|
"_note": "Charge utile IDENTIQUE à la notification LoadTelemetryChanged. decision.code et faultCode sont des CODES avec params numériques, jamais des phrases : le rendu en français est à la charge de l'app (clés ARB). 'timestamp' = fin du dernier cycle d'arbitrage, omis tant qu'aucun cycle n'a tourné — c'est lui qui rend un arbitre figé détectable.",
|
|
"telemetry": {
|
|
"budget": {
|
|
"allocatedW": 0,
|
|
"evReservedW": 0,
|
|
"recreditedW": 500,
|
|
"remainingW": 229.29998779296875,
|
|
"surplusW": -270.70001220703125
|
|
},
|
|
"degradedMode": false,
|
|
"loads": [
|
|
{
|
|
"allocatedW": 0,
|
|
"available": true,
|
|
"decision": {
|
|
"code": "SURPLUS_INSUFFICIENT",
|
|
"params": {
|
|
"budgetW": 229
|
|
}
|
|
},
|
|
"loadId": "chauffe-eau",
|
|
"lock": {
|
|
"kind": "minOff",
|
|
"remainingS": 60
|
|
},
|
|
"mechanism": {
|
|
"kind": "relay",
|
|
"maxStageW": 3500,
|
|
"stageW": 0
|
|
}
|
|
},
|
|
{
|
|
"allocatedW": 0,
|
|
"available": true,
|
|
"decision": {
|
|
"code": "SG_NORMAL",
|
|
"params": {
|
|
"budgetW": 229
|
|
}
|
|
},
|
|
"loadId": "pac-terrain",
|
|
"lock": {
|
|
"kind": "minStateHold",
|
|
"remainingS": 240
|
|
},
|
|
"mechanism": {
|
|
"estimatedPowerW": 0,
|
|
"kind": "sgReady",
|
|
"state": 2
|
|
}
|
|
}
|
|
],
|
|
"timestamp": "2026-08-25T12:37:00Z"
|
|
}
|
|
} |