28 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` (0100, 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`).