Wartungsfunktionen für Staubsauger hinzufügen

Im Rahmen einer externen Roborock-Integration sind mehrere Wartungsinformationen verfügbar, die derzeit jedoch keinen dedizierten Gladys-Typ haben.

Beispiele:

  • verbleibende Lebensdauer der Hauptbürste
  • verbleibende Lebensdauer der Seitenbürste
  • Reinigung der Sensoren
  • Lebensdauer des Dock-Siebs
  • Lebensdauer der Dock-Reinigungsbürste
  • Lebensdauer des Staubsammelsystems

Derzeit müssen diese Funktionen als unknown deklariert werden, was in Gladys einfach „Unbekannt“ anzeigt.

Wäre es möglich, dedizierte Typen in der Kategorie vacuum-cleaner hinzuzufügen, zum Beispiel:

MAIN_BRUSH_LIFE_REMAINING
SIDE_BRUSH_LIFE_REMAINING
SENSOR_CLEANING_LIFE_REMAINING
DOCK_STRAINER_LIFE_REMAINING
DOCK_CLEANING_BRUSH_LIFE_REMAINING
DUST_COLLECTION_LIFE_REMAINING

Diese Werte würden in Prozent ausgedrückt werden.

Das könnte nicht nur für Roborock, sondern auch für andere Roboterstaubsauger-Integrationen nützlich sein.

Hallo @spenceur,

Danke für deine Anfrage, der Bedarf ist absolut legitim: Diese Wartungsdaten sollten nicht im Interface unter „Unbekannt“ landen!

Bei Betrachtung der 6 vorgeschlagenen Typen haben wir festgestellt: Semantisch sind sie alle genau dasselbe: „Verbleibende Lebensdauer einer Komponente in %“. Nur der Name des Teils ändert sich (Hauptbürste, Seitenbürste, Staubbeutel…). In Gladys wird der Name bereits durch das Feld name der Funktionalität getragen, und ein Gerät kann mehrere Funktionalitäten derselben Kategorie/Art haben (wie eine Mehrfachsteckdose mit mehreren switch/binary).

Statt 6 spezifische Staubsauger-Typen hinzuzufügen, haben wir uns in diesem PR für einen generischen Ansatz entschieden: feat(device): add generic maintenance feature category

Konkrekt fügt dies eine übergreifende Kategorie maintenance mit einem einzigen Typ life-remaining (Sensor 0-100 %, schreibgeschützt) hinzu. Deine Roborock-Integration erstellt dann eine Funktionalität pro Komponente:

  • Kategorie maintenance, Typ life-remaining, Name « Hauptbürste »
  • Kategorie maintenance, Typ life-remaining, Name « Seitenbürste »
  • usw.

Was das gegenüber spezifischen Typen bringt:

  • Es deckt deine 6 Fälle ab, aber auch alle anderen, die wir nicht aufgelistet haben (Waschpads, Reinigungsmittel…) und andere Geräte mit Verbrauchsmaterialien (Luftreiniger, Enthärtungsanlagen…), ohne dass wir für jede neue Komponente oder Marke einen neuen PR in Gladys erstellen müssen.
  • Nichts geht an Benutzerfreundlichkeit verloren: Anzeige in %, Grafiken und Szenen (« mich benachrichtigen, wenn die Bürste unter 10 % fällt ») funktionieren genauso, da Szenen eine bestimmte Funktionalität ansteuern, nicht einen Typ.
  • Wir vermeiden, das Typenverzeichnis unendlich wachsen zu lassen (und die MQTT-Ausklappliste :sweat_smile:), da jeder Eintrag ein öffentlicher Vertrag ist, den wir danach nicht mehr entfernen können.

Der einzige Unterschied ist, dass die Bezeichnung der Komponente aus deiner Funktionalität stammt und nicht aus einer in Gladys integrierten Übersetzung — aber genau das macht das System flexibel.

Das wird in der nächsten Version verfügbar sein. Zögere nicht, wenn du einen Fall siehst, den dieser generische Typ nicht abdeckt!

Ich schließe diesen Beitrag, da die Funktion in Gladys Assistant 4.86 verfügbar ist: