Le fil conducteur des six commits du jour tient en une phrase : l'app ne recalcule pas ce que la box publie, et n'anticipe pas ce qu'elle n'a pas encore publié. Le point à retenir est le seuil de réserve batterie : 0,9 en usine, batterie du banc à 50 %. Quand la règle montera dans le budget, `.75` ne pilotera plus rien par grand soleil, sans erreur ni panne. Le RECAP le dit, et le TODO garde les trois crochets laissés ouverts — dont le `Set` volontairement vide qui attend le code du moteur. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HajXLUczEyZd22JeewRfff
2.8 KiB
2.8 KiB
TODO — ETM PowerSync App
Charges pilotables — ce qui attend la box (2026-08-26)
kCodesReserveBatterie— leSetest volontairement VIDE danslib/services/telemetry_text.dart. Y mettre le code du motif « budget annulé par la réserve batterie » quand le moteur le publiera, pas avant : deviner son nom produirait un affichage qui ne se déclenche jamais.minPowerW == nullsans véhicule branché — couvert en test unitaire (test/ev_runtime_test.dart), pas exercé sur appareil : la borne n'entre pas dansloads[]avant3g. À reprendre quand l'arbitrage prendra la recharge en charge.- Réserve batterie — portée élargie. Le jour où le seuil gouverne tout le budget,
reprendre le texte de
BatteryReserveCard: il annonce aujourd'hui un futur, il devra décrire un présent. Zones—ac_screen.dartest de la donnée fictive et.75n'en déclare aucune. Décidé : à ne pas entreprendre.
En cours / priorité haute
-
TariffProvider — connexion RPC réelle
load()appelle encore unFuture.delayedfictif- Brancher sur nymea JSON-RPC pour récupérer les prix live (ENTSO-E, Tibber, etc.)
-
EnergySetupProvider — persistance
- Les assignations de rôles (EV, PAC, batterie…) ne survivent pas au redémarrage
- Sérialiser en SharedPreferences ou JSON local
-
SchedulerProvider — exécution réelle
forceRecalc()ne fait rien pour l'instant- Brancher sur l'API nymea Energy Scheduler (si disponible)
Screens à implémenter
- DeveloperScreen — logs, introspection JSON-RPC, test ping nymea
- AboutScreen — version app, version nymea, licences
- SystemSettingsScreen — adresse serveur nymea, port, transport (TCP/WS)
Amélioration UX
- Timeline — remplacer la simulation bell-curve par les vraies créneaux du scheduler nymea
- RoleConfigFlow Step 3 — test de connexion sur RPC réel au lieu du délai simulé
- InstallerModeProvider — persister le hash PIN dans SharedPreferences (actuellement en mémoire)
- AppSettingsProvider — persister les préférences (thème, densité, écrans actifs) dans SharedPreferences
Intégration nymea live
- Mapping
EmsRole → nymea thingClasspour les installations réelles - Vérifier les interfaces nymea sur serveur réel (comparer avec
docs/nymea_integrations.md) Energy.GetSchedule/Energy.SetSchedulesi l'API le supporte
Technique / dette
- Ajouter des tests unitaires pour
TariffProvideretEnergySetupProvider - Gérer le cas où
NymeaService.thingClassesest vide en mode live (classes non chargées) - Revoir
_Step1ThingList: passer encontext.watchpour réactivité si les things changent