28 lines
2.0 KiB
Markdown
28 lines
2.0 KiB
Markdown
# CLAUDE.md — etm-powersync-plugins
|
||
|
||
## Rôle
|
||
Fork de nymea-plugins. On y développe **uniquement** les modules ETM : `openmeteo`, `linky`, `tarif-api`.
|
||
|
||
## Source de vérité
|
||
Toute décision transverse vient de [etm-powersync-docs / ARCHITECTURE.md](https://git.etm-powersync.fr/ETM-Schurig/etm-powersync-docs/src/branch/master/ARCHITECTURE.md). En cas de doute, c'est elle qui tranche.
|
||
|
||
## Frontière de licence (impérative)
|
||
GPL-3.0-or-later. **Ne jamais introduire ici** : transposition Perez, dérating NOCT, MPC/prévision, masque d'ombrage appris, stratégie de pondération, arbitrage économique. Tout ça vit dans `etm-powersync-optimizer` (propriétaire). Un plugin = capteurs/données/transport, point.
|
||
|
||
## Règles de travail
|
||
- **Ne pas modifier les plugins amont** (keba, fronius, awattar, tempo, etc.). On ajoute/maintient seulement les modules ETM.
|
||
- Un module = un dossier : `integrationplugin<nom>.json` (métadonnées, fait foi) + `.h` + `.cpp` + `CMakeLists`/`.pro`. `plugininfo.h` est **généré** depuis le JSON — ne pas l'éditer à la main.
|
||
- États **scalaires uniquement** (valeur instantanée). Aucune série temporelle dans un état nymea.
|
||
|
||
## Conventions (rappel, détail dans la doc)
|
||
- **Azimut** : stocké en géographique (180 = Sud). Conversion vers Open-Meteo : `azimuth_openmeteo = azimuth_geo − 180`.
|
||
- **Vocabulaire tarifaire** : `currentMarketPrice` (EuroCentPerKiloWattHour), `rank` (0–100, plus bas = meilleur), `validUntil`. La **pondération = `rank`**.
|
||
- Irradiances : pas d'unité `WattPerSquareMeter` dans nymea → omettre `unit`, mettre « (W/m²) » dans le libellé.
|
||
|
||
## Références dans l'arbre
|
||
- `openweathermap` : gabarit pour `openmeteo` (structure init/timer/update/parse).
|
||
- `awattar`, `tempo`, `spothinta` : vocabulaire de prix / `rank` pour `tarif-api`.
|
||
|
||
## Contrats
|
||
- `tarif-api` consomme [interfaces/tariff.md](https://git.etm-powersync.fr/ETM-Schurig/etm-powersync-docs/src/branch/master/interfaces/tariff.md) (endpoint `/now`).
|