Hallo zusammen,
ich spiele gerade mit meinem Landroid-S und dem LANDROID device rum. Hab schon einiges wie die Berechnung der gemähten Fläche hinbekommen.
Jetzt würde ich mir gern anzeigen lassen, wie lang der Mäher mit einer Akkuladung fährt. Dazu müsste ich die Zeit messen ab dem Moment, wenn das Attribute MowerState auf "mowing" wechselt bis das Attribut batteryCharging auf "true" wechselt.
Hat jemand hier sowas schonmal gemacht? Bzw. hat jemand eine Idee, wie ich das anstelle?
Vielen Dank schonmal für Eure Hilfe.
Falls Du das noch probierst:
lege Dir 2 User-Readings unter dem Landroid-Device an: Startzeit und Endzeit.
Dann kannst Du Dir ein DOIF anlegen, was beim Status Mowing den Wert des Startzeit Readings mit der aktuellen Uhrzeit füllt. Bspw so: { fhem 'setreading shaun startzeit '.strftime('%H:%M:%S', localtime) } und gleichzeit die Endzeit leerst.
Alternativ kannst Du auch den Timestamp des Statustext-Readings nehmen: {ReadingsTimestamp($name,'reading','')}
Wenn der Status wieder auf Charging geht, dann gleiches Spiel mit den Endzeit. Nun kannst Du die Differenz zwischen Start und Endzeit in einem 3. Reading Mähzeit ausgeben lassen.
In einem anderen Fall nutze ich das Modul HourCounter. Das kannst Du Dir auch mal anschauen.
Aber ich hätte auch eine Frage. Wie hast Du das mit der Berechnung der gemähten Fläche gemacht?
Im lawnmower Device ein UserReading angelegt in dem ich die gefahrene Strecke mal der Schneidebreite nehme:
totalSurface {sprintf("%.2f",((ReadingsVal("lawnmower","totalDistance",0)/ReadingsVal("lawnmower","totalTime",0))*ReadingsVal("lawnmower","bladeTimeCounter",0))*0.18)}