diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..524b16b --- /dev/null +++ b/TODO.md @@ -0,0 +1,40 @@ +# TODO — ETM PowerSync App + +## En cours / priorité haute + +- [ ] **TariffProvider — connexion RPC réelle** + - `load()` appelle encore un `Future.delayed` fictif + - 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 thingClass` pour les installations réelles +- [ ] Vérifier les interfaces nymea sur serveur réel (comparer avec `docs/nymea_integrations.md`) +- [ ] `Energy.GetSchedule` / `Energy.SetSchedule` si l'API le supporte + +## Technique / dette + +- [ ] Ajouter des tests unitaires pour `TariffProvider` et `EnergySetupProvider` +- [ ] Gérer le cas où `NymeaService.thingClasses` est vide en mode live (classes non chargées) +- [ ] Revoir `_Step1ThingList` : passer en `context.watch` pour réactivité si les things changent