specs: record acceptance criteria status and remaining gaps
This commit is contained in:
parent
89406495a8
commit
372be1644c
@ -359,20 +359,62 @@ confirmation humaine au moment de l'implémentation.
|
||||
|
||||
## Tableau de statut
|
||||
|
||||
Suite : `sunspec/tests/`, **38 tests, 38 verts**.
|
||||
|
||||
Build : `qmake6 NYMEA_SUNSPEC_PATH=<sysroot> sunspec/tests/tests.pro && make check`.
|
||||
Sans `NYMEA_SUNSPEC_PATH`, `sunspec.pri` résout `libnymea-sunspec` par
|
||||
`pkg-config`, ce qui suppose `libnymea-sunspec-dev` installé système.
|
||||
|
||||
| AC | Objet | Test | Statut |
|
||||
|---|---|---|---|
|
||||
| AC-1 | plage −100…+100 | `test_AC_1_*` | à renseigner |
|
||||
| AC-2 | lecture `inWRte`/`outWRte` | `test_AC_2_*` | à renseigner |
|
||||
| AC-3 | `enableDischarging` relu | `test_AC_3_*` | à renseigner |
|
||||
| AC-4 | `RvrtTms` écrit en dernier | `test_AC_4_*` | à renseigner |
|
||||
| AC-5 | filtre fabricant | `test_AC_5_*` | à renseigner |
|
||||
| AC-6 | little-endian | `test_AC_6_*` | à renseigner |
|
||||
| AC-7 | paramètres `froniusConnection` | `test_AC_7_*` | à renseigner |
|
||||
| AC-8 | plancher 7 s | `test_AC_8_*` | à renseigner |
|
||||
| AC-9 | registres interdits | `test_AC_9_*` | à renseigner |
|
||||
| AC-10 | `revertTime` 300 s | `test_AC_10_*` | à renseigner |
|
||||
| AC-11 | table mode → registres | `test_AC_11_*` | à renseigner |
|
||||
| AC-12 | relecture du SF | `test_AC_12_*` | à renseigner |
|
||||
| AC-13 | relecture + `controlHealthy` | `test_AC_13_*` | à renseigner |
|
||||
| AC-14 | classement par `IDStr` | `test_AC_14_*` | à renseigner |
|
||||
| AC-15 | agrégats modèle 160 | `test_AC_15_*` | à renseigner |
|
||||
| AC-1 | plage −100…+100 | `test_AC_1_*` | vert |
|
||||
| AC-2 | lecture `inWRte`/`outWRte` | `test_AC_2_*` | vert |
|
||||
| AC-3 | `enableDischarging` relu | `test_AC_3_*` | vert |
|
||||
| AC-4 | `RvrtTms` écrit en dernier | `test_AC_4_*` | vert |
|
||||
| AC-5 | filtre fabricant | `test_AC_5_*` | vert |
|
||||
| AC-6 | little-endian | `test_AC_6_*` | vert — mais c'est une **inférence** (H-3), pas une mesure |
|
||||
| AC-7 | paramètres `froniusConnection` | `test_AC_7_*` | vert |
|
||||
| AC-8 | plancher 7 s | `test_AC_8_*` | vert, avec réserve ci-dessous |
|
||||
| AC-9 | registres interdits | `test_AC_9_*` | vert |
|
||||
| AC-10 | `revertTime` 300 s | `test_AC_10_*` | vert |
|
||||
| AC-11 | table mode → registres | `test_AC_11_*` | vert au niveau du plan ; **aucune action n'expose encore les six modes** |
|
||||
| AC-12 | relecture du SF | `test_AC_12_*` | vert |
|
||||
| AC-13 | relecture + `controlHealthy` | `test_AC_13_*` | vert |
|
||||
| AC-14 | classement par `IDStr` | `test_AC_14_*` | vert ; **non branché** — modèle 160 toujours absent du `switch` (anomalie A5, hors périmètre) |
|
||||
| AC-15 | agrégats modèle 160 | `test_AC_15_*` | idem AC-14 |
|
||||
|
||||
### Réserves à lever
|
||||
|
||||
- **AC-8** — le minuteur d'interrogation de nymea est **global au plugin**, pas
|
||||
par connexion. Le plancher est donc appliqué à l'échelle du plugin dès qu'une
|
||||
connexion `fronius` est configurée : c'est plus strict que l'AC, jamais moins.
|
||||
Le paramètre `updateInterval` par thing a été **retiré** de
|
||||
`froniusConnection` : l'architecture du plugin ne peut pas l'honorer par
|
||||
connexion, et un réglage sans effet serait pire que son absence.
|
||||
- **AC-11** — la fonction `FroniusRules::planBatteryMode()` produit exactement
|
||||
la table du contrat, et le plan est exécutable par
|
||||
`IntegrationPluginSunSpec::executeSetpointPlan()`. Il manque l'action nymea
|
||||
qui l'appelle : le nommage de cette action et de ses paramètres n'est pas
|
||||
tranché par le contrat.
|
||||
- **AC-14 / AC-15** — les fonctions de classement et d'agrégation sont écrites
|
||||
et testées, mais aucun thing du modèle 160 n'est créé tant que l'anomalie A5
|
||||
(`ModelIdMppt` absent du `switch` de `processDiscoveryResult()`) n'est pas
|
||||
corrigée. A5 est hors du périmètre des quatre correctifs demandés.
|
||||
- **AC-15.4** — respecté par construction : aucun calcul de production PV par
|
||||
différence n'a été ajouté.
|
||||
|
||||
### Multi-unit-ID (H-1)
|
||||
|
||||
**Non implémenté.** `froniusConnection` porte bien le paramètre `meterSlaveId`
|
||||
(AC-7, vert), mais le plugin n'instancie encore qu'une seule `SunSpecConnection`
|
||||
par thing. Le passage à deux connexions internes touche `m_sunSpecConnections`,
|
||||
`createConnection()`, `setupThing()`, `processDiscoveryResult()`,
|
||||
`thingRemoved()`, `postSetupThing()` et `onRefreshTimer()`.
|
||||
|
||||
Deux raisons de ne pas l'avoir fait dans la foulée : la décision D1 n'est pas
|
||||
validée, et le brief demande explicitement de traiter ce lot **isolément**,
|
||||
après que le reste soit fonctionnel sur l'onduleur seul. S'y ajoute H-4 : rien
|
||||
ne dit que l'onduleur accepte deux connexions TCP simultanées, et le
|
||||
constructeur recommande des requêtes séquentielles. Ce point se mesure au banc ;
|
||||
le supposer serait exactement le mode de défaillance que le contrat cherche à
|
||||
éviter.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user