Erweiterung Lawn Mower um einen weiteren Gerätestatus

Guten Tag zusammen!

Es geht um folgendes: Wir haben einen smarten Mähroboter Gardena Sileno, den wir über die HACS-Integration (GitHub - py-smart-gardena/hass-gardena-smart-system: Home Assistant custom component integration for Gardena Smart System) in Home Assistant eingebunden haben. Da der Sileno schon etwas älter ist, unterstützt er keine Kartenerstellung oder ähnliches. Allerdings kann man ihm drei Startpunkte entlang des Leitkabels zuweisen, damit verschiedene Bereiche des Gartens ähnlich oft erreicht werden. Dies wollte ich nutzen um mir mit Home Assistant eine kleine Mähstatistik zu bauen. Ich weiß, der Mähroboter braucht so und so lang um in Bereich 1, 2 und 3 zu gelangen und damit könnte ich zumindest nachvollziehen, wo er begonnen hat zu mähen.

Das Problem dabei ist: während der Sileno selbst sobald er losfährt den Status “ok_leaving” ausgibt, wird in Home Assistant sofort “Mowing” angezeigt. Ich kann also leider in HA nicht die Zeit messen, die der Mähroboter im Status “ok_leaving” verbringt bis er zu “ok_cutting” wechselt und damit anzeigt, dass er mit dem Mähen begonnen hat.

Jetzt hab ich mal ein bisschen recherchiert und habe die Stelle in der externen Integration gefunden - dort wird “ok_leaving” genauso wie “ok_cutting” als MowerActivity.MOWING an HA übergeben:

elif activity in [ "OK_CUTTING", "OK_CUTTING_TIMER_OVERRIDDEN", "OK_LEAVING", ]: if self._activity != LawnMowerActivity.MOWING: self._stint_start = datetime.now() self._stint_end = None self._activity = LawnMowerActivity.MOWING

Das könnte ich ja einfach anpassen. Aber leider unterstützt die HA Lawn Mower Entity keinen passenden Status:

Hat jemand eine Idee, wie ich das umgehen oder einbauen könnte?

Vielen Dank schonmal! :slight_smile:
Lg
Arcx

Bitte Quelltext auch als solchen markieren!
vorformatierterText

Hier mein Vorschlag:

`elif activity in [
                "OK_CUTTING",
                "OK_CUTTING_TIMER_OVERRIDDEN",
            ]:
                if self._activity != LawnMowerActivity.CUTTING:
                    self._stint_start = datetime.now()
                    self._stint_end = None
                self._activity = LawnMowerActivity.MOWING`
`elif activity in [
                 "OK_LEAVING",
            ]:
                if self._activity != LawnMowerActivity.MOWING:
                    self._stint_start = datetime.now()
                    self._stint_end = None
                self._activity = LawnMowerActivity.LEAVING`

Super, danke schonmal!

Ungefähr so hätte ich es auch gemacht innerhalb der Integration. Aber was ist mit Home Assistant und der Lawn Mower entitiy, die den Status nicht kennt? Ist das egal und er zeigt mir trotzdem an, dass der Mäher gerade rausfährt?