2.0 KiB
2.0 KiB
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. 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.hest 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é
WattPerSquareMeterdans nymea → omettreunit, mettre « (W/m²) » dans le libellé.
Références dans l'arbre
openweathermap: gabarit pouropenmeteo(structure init/timer/update/parse).awattar,tempo,spothinta: vocabulaire de prix /rankpourtarif-api.
Contrats
tarif-apiconsomme interfaces/tariff.md (endpoint/now).