2.0 KiB
Raw Permalink Blame History

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.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