Closed StrathCole closed 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.
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.
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
Ich habe nur einen Mäher. Aber zu deinen Fragen:
wenn man ihn von Hand in die Station schickt, dann sendet man ja den Befehl "PARK" entweder bis auf Widerruf oder bis zum nächsten Zeitplanwechsel. Wenn es natürlich nicht über den Adapter läuft, sondern über die App etc., kann man es auf dem Weg natürlich nicht erkennen.
die Mähzeit beendet muss man selbst berechnen, sofern der Mäher über den Adapter manuell gestartet wurde "X Sekunden/Minuten mähen". Sollte er via externem Zeitplan z. B. aus der App gestartet werden, kann man es über den Ladezustand sehen. (siehe letzter Kommentar)
Sensor-Control habe ich nicht, dazu kann ich also gar nichts sagen.
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.
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.
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.
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).
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 …?
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.
Hätte das alles gern "aus einem Guss" gehabt. Aber kann ich auch extern lösen.
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.
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.
erledigt mit v0.5.0
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.