2 Commits

Author SHA1 Message Date
Patrick Schurig
b4a6c97d3d feat(installateur): lot C — squelette discovery de things (pending SDM validation)
- nymea_models : discoveryParamTypes, isDiscoveryAddable, ThingDescriptor (+alreadyAdded), thingErrorMessage FR
- nymea_service : discoverThings() (0-résultat = "aucun appareil", distinct d'erreur), addThingFromDescriptor()
- thing_catalog : bouton "Découvrir" actif pour Discovery+JustAdd
- thing_discovery_screen (nouveau) : form slaveAddress (sans sélecteur master) -> scan global -> descriptors (master résolu) -> o:thingId = grisé "déjà ajouté" -> AddThing
- retrait d'un discoverThings mort (collision)

NON VALIDÉ SUR MATÉRIEL : 3 points marqués "À REVALIDER SUR SDM RÉEL" (résolution master par paramTypeId, timeout scan, title/description). Merge bloqué jusqu'à descriptor SDM réel sur hems .75.
Chaîne RPC prouvée live (GPIO : 26 descriptors ajoutables).
Réf. UI_DATA_CONTRACT.md §5.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 15:15:44 +02:00
Patrick Schurig
b7a7213ee4 feat(installateur): catalogue de things (lecture seule) + filtres
- nymea_models : NymeaVendor + NymeaThingClass étendu (vendorId, setupMethod, createMethods)
- nymea_service : getVendors() + getAllThingClasses() (typées, erreurs FR, guards sim/déco)
- thing_category : +simpleheatpump/smartgridheatpump -> hvac (interfaces réelles)
- thing_catalog_screen : liste groupée + 3 filtres combinables (fabricant/type/recherche) + détail read-only
- main.dart : /settings/system/things -> ThingCatalogScreen (remplace le stub)

Type dérivé des interfaces réelles (pas d'enum), fabricant résolu par vendorId (doublon ABB géré).
Aucun AddThing/Discovery/Pairing (lots B/C à venir).
Validé contre nymea réel (hems .75) : 6 vendors, 45 classes, 18 interfaces.
Réf. UI_DATA_CONTRACT.md §5.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:00:12 +02:00