Dans le cadre d’une intégration Roborock externe, plusieurs informations de maintenance sont disponibles mais n’ont actuellement pas de type Gladys dédié.
Exemples :
durée de vie restante de la brosse principale
durée de vie restante de la brosse latérale
nettoyage des capteurs
durée de vie de la crépine du dock
durée de vie de la brosse de nettoyage du dock
durée de vie du système de collecte des poussières
Aujourd’hui ces fonctionnalités doivent être déclarées en unknown, ce qui affiche simplement « Inconnu » dans Gladys.
Serait-il possible d’ajouter des types dédiés dans la catégorie vacuum-cleaner, par exemple :
Merci pour ta demande, le besoin est tout à fait légitime : ces données de maintenance ne devraient pas finir en « Inconnu » dans l’interface !
En regardant les 6 types proposés, on a fait un constat : ce sont tous exactement la même chose sémantiquement : « durée de vie restante d’un composant, en % ». Seul le nom de la pièce change (brosse principale, brosse latérale, sac à poussière…). Or dans Gladys, le nom est déjà porté par le champ name de la fonctionnalité, et un appareil peut avoir plusieurs fonctionnalités de même catégorie/type (comme une multiprise avec plusieurs switch/binary).
Concrètement, ça ajoute une catégorie transverse maintenance avec un seul type life-remaining (capteur 0-100 %, lecture seule). Ton intégration Roborock crée alors une fonctionnalité par composant :
catégorie maintenance, type life-remaining, nom « Brosse principale »
catégorie maintenance, type life-remaining, nom « Brosse latérale »
etc.
Ce que ça apporte par rapport aux types spécifiques :
Ça couvre tes 6 cas, mais aussi tous ceux qu’on n’a pas listés (patins de lavage, détergent…) et les autres appareils à consommables (purificateurs d’air, adoucisseurs…), sans avoir à refaire une PR dans Gladys à chaque nouveau composant ou nouvelle marque.
Rien n’est perdu côté usage : affichage en %, graphiques, et scènes (« m’alerter quand la brosse passe sous 10 % ») fonctionnent pareil, car les scènes ciblent une fonctionnalité précise, pas un type.
On évite de faire grossir indéfiniment le catalogue de types (et la liste déroulante MQTT ), chaque entrée étant un contrat public qu’on ne peut plus retirer ensuite.
La seule différence, c’est que le libellé du composant vient de ta fonctionnalité plutôt que d’une traduction intégrée à Gladys — mais c’est justement ce qui rend le système flexible.
Ça sera disponible dans la prochaine release. N’hésite pas si tu vois un cas que ce type générique ne couvrirait pas !