jpgorganizer / ioBroker.smartgarden

GARDENA smart system adapter for ioBroker
Other
21 stars 8 forks source link

Vorhersagen der Mähdauer und nächster Start #1

Closed StrathCole closed 4 years ago

StrathCole commented 4 years ago

Voraussichtlicher nächster Start des Mähers

Das müsste ja prognostizierbar sein, indem man misst, wie schnell die Batterieladung voranschreitet, solange er auf OK_CHARGING steht. Dann könnte man die Restladedauer bis 100% schätzen. Natürlich funktioniert das nur, solange das Mähen laut Timer gerade aktiv ist und nicht in den Ruhephasen. Da liefert die API leider keinen Wert der Schedules.

Voraussichtliche Rest-Mähdauer

Das müsste auch wieder anhand der Restbatterieladung ermittelbar sein, indem man historisch misst und speichert, bei welcher Restladung der Mäher in die Station fährt und wie lange es bis zu dieser Restladung dauert.

jpgorganizer commented 4 years ago

interessante Idee - muss nur am Wochenende meinen Mäher wieder in Betrieb nehmen um zu testen. Wenn das so funktioniert, wie ich mir das vorstelle, dann kommt diese Feature in den Adapter.

StrathCole commented 4 years ago

Anmerkung dazu: Ich habe beobachtet, dass der Status "OK_CHARGING" nur dann kommt, wenn er eigentlich mähen soll. Das heißt, man könnte die Vorhersage für nächsten Start darauf beschränken, dass dieser Status gesetzt ist, und sonst keine Vorhersage machen.

jpgorganizer commented 4 years ago

aktuell gibt es mehrer offene Fragen meinerseits für die Rest-Mähzeit:

Alle diese Fragen drehen sich am Ende um die Frage: bei welchem Batteriestand fährt der Mäher in die Station weil die Batterie leer ist. Alle oben genannten Szenarien führen dazu, dass er früher reinfährt als es der Batteriestand eigentlich erfordern würde. Damit wird aber die historische Betrachtung verfälscht. Somit suche ich gerade eine Möglichkeit diese "Fehlerzustände" zu erkennen.

Und mir ist eingefallen, dass es ja möglich ist mehere Mäher zu haben. Hat jemand mehrere Mäher und könnte ggfs. mal testen?

VG jpgorganizer

StrathCole commented 4 years ago

Ich habe nur einen Mäher. Aber zu deinen Fragen:

Bei mir fährt der Mäher, soweit ich das derzeit sagen kann, bei etwa 40% in die Station, bzw. sobald die Batterie die 40% unterschreitet. Ob er danach noch weitermähen würde, kann man erkennen, ob es "OK_CHARGING" heißt. Dann müsste er nämlich noch mähen, hat aber nicht genug Batterieladung und lädt auf. Wenn er laut Zeitplan nicht mehr mähen muss, heißt es PARKED_TIMER, wenn er von hand komplett gestoppt wurde, PARKED_PARK_SELECTED.

StrathCole commented 4 years ago

Nachtrag bezüglich Erkennen, ob er wegen Batterie zur Station fährt: Ich würde eine Sammlung von Batterieständen machen, der beim Wechsel auf "OK_SEARCHING" vorliegt. Aus dieser Sammlung dann die Ausreißer werfen und und den Wert dann als Richtwert nutzen. So "lernt" der Adapter bei jedem User individuell. Als Default würde ich 40 nehmen, solange noch nicht genug Werte da sind.

jpgorganizer commented 4 years ago

Ja, genau diese Überlegungen hatte ich auch, denn ich habe bisher auch keinerlei VOrgaben für die Vorhersage gemacht. Reine Statistik bisher. Ich speichere bereits eine Historie. Für die Erkennung von Ausreißern muss ich diese vergrößern, aber keine Problem, ist eine Variable.

Ich werde alle o.a. Fragen über die Erkennung von Ausreißern lösen (versuchen). Ich würde gerne unabhängig davon bleiben, ob ein Befehl über den Adapter oder über die App oder über einen Zeitplan geschieht. Somit scheiden diese Ansätze für mich zunächst aus.

jpgorganizer commented 4 years ago

achso, nur um keine falschen Hoffnungen zu wecken: ich berechne keine Startzeitpunkte für das Mähen, sondern nur Rest-Ladezeiten und äquivalent dann auch Rest-Mähzeiten (die dann ggfs. übersteuert werden, womit wir dann wieder bei den Ausreißern wären).

StrathCole commented 4 years ago

achso, nur um keine falschen Hoffnungen zu wecken: ich berechne keine Startzeitpunkte für das Mähen, sondern nur Rest-Ladezeiten und äquivalent dann auch Rest-Mähzeiten (die dann ggfs. übersteuert werden, womit wir dann wieder bei den Ausreißern wären).

Hm, schade. Da ich komplett von der App weg will und mit eigener Zeitplanung und manuellen Zeiten via Adapter arbeiten, muss ich mir dann selbst etwas für die Vorhersage bauen. Dazu nur die Frage: Baue ich es als Element des Adapters und gebe dir einen Pull-Request dafür oder baue ich es mir als alleinstehendes Javascript für die Vorhersagen …?

jpgorganizer commented 4 years ago

wieso brauchst du eine Vorhersage für eine Startzeit? Das kann man nicht vorhersagen, da da die Zeitpläne reinspielen, die man im Adapter nicht kennt. Wenn du die Zeitpläne kennst, dann kannst du ja die Vorhersage für die Ladezeit nehmen und zur aktuellen Uhrzeit dazurechnen, dann weißt du wann der Mäher frühestens wieder rausfährt.

StrathCole commented 4 years ago

Hätte das alles gern "aus einem Guss" gehabt. Aber kann ich auch extern lösen.

jpgorganizer commented 4 years ago

ich habe jetzt nicht verstanden, was dir denn eigentlich fehlt. OK, es wird keine Uhrzeit ausgerechnet, sondern eine Zeitdifferenz. Aber das sollte ja nicht das Thema sein, das kann man in der Applikation machen.

StrathCole commented 4 years ago

Natürlich kann man das alles in der Applikation machen. Integriert ist es nur oft weniger Aufwand und ggf. weniger anfällig für Updateprobleme.

Beispiel für die Verwendung: Wenn ich via Datenpunkt dem Adapter sage, er soll für 2 Stunden mähen (zB via Vis) und er fährt nach 1,5h zum Laden in die Station, dann weiß der Adapter, dass er wohl nicht wieder losfahren wird, er wird aber die Restladezeit anzeigen und OK_CHARGING bis er dann nach 30 Minuten auf PARKED_TIMER wechselt. Extern müsste man also auf die ganzen Datenpunkte lauschen und ich denke einiges doppelt vorhalten. Wie gesagt, alles kein Problem. Der Adapter funktioniert ja wunderbar, danke dafür.

jpgorganizer commented 4 years ago

erledigt mit v0.5.0