Hilfe bei Auswertung eines Robonect logfiles mit Ausgabe der täglichen Mähzeiten

Begonnen von B.Stromberg, 25 Juni 2018, 15:40:27

Vorheriges Thema - Nächstes Thema

B.Stromberg

Hallo in die Runde!

Ich habe einen Gardena R70li. Diesen betreibe ich mit Robonect Modul und natürlich auch FHEM / Tablet UI.

Ich würde nun sehr gern die täglichen Mähzeiten sehen.
Diese habe ich bereits via logfile, weiß nun aber nicht wirklich, wie ich diesen log weiter auslesen kann.

Hier erst einmal meine FHEM.cfg:


define Robby Robonect 192.168.2.55
attr Robby alias Robby
attr Robby basicAuth user:pass
attr Robby icon scene_robo_lawnmower
attr Robby pollInterval 121
attr Robby room Robonect
attr Robby stateFormat { ReadingsVal("Robby","allgemein-status",0).sprintf(" | %.0f"." %", ReadingsVal("Robby","allgemein-batteriezustand",0)).sprintf(" | %.0f"." %", ReadingsVal("Robby","wlan-signal-prozent",0)) }
attr Robby timestamp-on-change-reading 1
attr Robby useHealth 1
attr Robby verbose 3
attr Robby webCmd auto:start:stop:home:feierabend
define RobbyStatus dummy
attr RobbyStatus event-on-change-reading state
define StatusAnDummy at +*00:01:00 { my $d= ReadingsVal("Robby","state",0);; fhem("set RobbyStatus $d")}
define FileLog_RobbyStatus FileLog ./log/RobbyStatus-%Y-%m-%d.log RobbyStatus
attr FileLog_RobbyStatus logtype text
attr FileLog_RobbyStatus room Robonect


Dadurch werden folgende logfiles erzeugt:
Zitat
RobbyStatus-2018-06-05.log text
RobbyStatus-2018-06-06.log text
RobbyStatus-2018-06-07.log text

Durch die eventonchange Geschichte sieht der Log beim Click auf Text so aus:

Zitat
2018-06-25_10:01:47 RobbyStatus maehen
2018-06-25_11:14:45 RobbyStatus suche-base
2018-06-25_11:18:45 RobbyStatus laden
2018-06-25_12:17:45 RobbyStatus maehen
2018-06-25_13:32:45 RobbyStatus suche-base
2018-06-25_13:34:45 RobbyStatus laden
2018-06-25_14:28:45 RobbyStatus maehen

Diese Ausgabe hätte ich nun sehr sehr gern in der Tablet UI als Printout wie folgt:
Zitat
10:01:47 RobbyStatus maehen
11:14:45 RobbyStatus suche-base
11:18:45 RobbyStatus laden
12:17:45 RobbyStatus maehen
13:32:45 RobbyStatus suche-base
13:34:45 RobbyStatus laden
14:28:45 RobbyStatus maehen

Das Ganze dann IMMER NUR FÜR DEN AKTUELLEN TAG.

Hier versagen meine Programmierkenntnisse kläglich (wenn man überhaupt davon reden kann)

Kann mir bitte jemand auf die Sprünge helfen?

Vielen Dank im voraus!

rudolfkoenig

Mein Vorschlag: ein userReading erstellen, was auf suche-base triggert, und die Zeitdifferenz berechnet. In etwa so (ungetestet):

attr Robby userReading maehZeit:suche-base { time()-time_str2num(ReadingsTimestamp("Robby", "maehen", 0)) }


B.Stromberg

Zitat von: rudolfkoenig am 25 Juni 2018, 19:33:41
Mein Vorschlag: ein userReading erstellen, was auf suche-base triggert, und die Zeitdifferenz berechnet. In etwa so (ungetestet):

attr Robby userReading maehZeit:suche-base { time()-time_str2num(ReadingsTimestamp("Robby", "maehen", 0)) }

Hmmm
Hast du mich evtl. missvertanden?

Ich möchte gern in der Tablet UI folgendes sehen:
Zitat
10:01:47 RobbyStatus maehen
11:14:45 RobbyStatus suche-base
11:18:45 RobbyStatus laden
12:17:45 RobbyStatus maehen
13:32:45 RobbyStatus suche-base
13:34:45 RobbyStatus laden
14:28:45 RobbyStatus maehen

"Problem" ist ja, dass der Log jeden Tag anders heißt.

Ich glaube was du mir hier gegeben hast, ist eine Zeitdifferenzberechnung?
Auch nicht schlecht, sowas wäre sicher noch eine weitere Frage wert gewesen ;)

Nur möchte ich gern zu allererst die Werte vom Log Tagesaktuell gern in der Tablet UI sehen :)

rudolfkoenig

ZitatHast du mich evtl. missvertanden?
Vermutlich, bin heute etwas verpeilt.


Zitat"Problem" ist ja, dass der Log jeden Tag anders heißt.
Das hilft hier eher. Mit folgenden Befehl{ `awk -F_ '{print \$2}'  $defs{FileLog_RobbyStatus}{currentlogfile}` }kriegst du die gewuenschte Liste. Wie man das in TabletUI darstellt, muss jemand, der sich damit auskennt, erzaehlen.
Vermutlich sollte die Frage im TableUI Forumsbereich gestellt werden.

B.Stromberg

Zitat von: rudolfkoenig am 25 Juni 2018, 20:29:21
Vermutlich, bin heute etwas verpeilt.

Das hilft hier eher. Mit folgenden Befehl{ `awk -F_ '{print \$2}'  $defs{FileLog_RobbyStatus}{currentlogfile}` }kriegst du die gewuenschte Liste. Wie man das in TabletUI darstellt, muss jemand, der sich damit auskennt, erzaehlen.
Vermutlich sollte die Frage im TableUI Forumsbereich gestellt werden.

Habe das nun hinbekommen.

Wie kriege ich nun noch im Reading das "RobbyStatus" weg?