docs(v2c): k_errorLimit = 3, seuil à réévaluer — avec le protocole pour le trancher

Trois polls échoués d'affilée marquent la borne injoignable. Sur le lien
dégradé du 2026-08-28 (~70 % de perte), cela donne 12 bascules « unreachable »
en vingt minutes. Une borne qui disparaît toutes les deux minutes ne se pilote
pas, quel que soit le code : LM-1204-b, le plancher réel et EV_GRID_START
porteraient tous ce bruit.

Rien n'est changé dans le comportement — seulement documenté, parce que le
seuil ne PEUT PAS être tranché sur un lien malade. Le protocole tient en trois
étapes, à dérouler une fois le point d'accès rapproché : mesurer le taux de
polls avortés, compter les bascules sur la même fenêtre, puis conclure. Si les
bascules disparaissent, le seuil est bon et détecte vite une borne réellement
absente ; si elles persistent malgré un bon signal, c'est lui qui est trop
serré.

Le relever maintenant masquerait le vrai défaut au lieu de le corriger, et
retarderait d'autant la détection d'une borne vraiment partie.

Commentaire seul côté code : le .so n'est pas modifié, pas de redéploiement.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A41CTzMvir1Y5ABPXW8xpB
This commit is contained in:
Patrick Schurig 2026-08-28 13:07:07 +02:00
parent 32779b39f4
commit fd94362e27

View File

@ -103,6 +103,17 @@ private:
// 3 consecutive failures → mark unreachable. With a 5 s timeout and no
// retry, 3 failed polls abort within 15 s — acceptable for HEMS decisions.
//
// \warning SEUIL À RÉÉVALUER, pas encore tranché (2026-08-28). Sur un lien
// WiFi dégradé (70 % de polls perdus mesurés sur le banc), trois échecs
// d'affilée arrivent constamment : 12 bascules « unreachable » en vingt
// minutes, et chaque bascule fait DISPARAÎTRE la borne de l'arbitrage.
// Le protocole de décision est dans PORTING_STATUS.md — il faut mesurer
// AVEC UN LIEN SAIN avant de toucher à cette valeur : si les bascules
// persistent, c'est le seuil ; si elles disparaissent, il est bon. Monter
// le seuil sur un lien malade masquerait le vrai défaut au lieu de le
// corriger, et retarderait d'autant la détection d'une borne réellement
// absente.
static constexpr int k_errorLimit = 3;
};