Auswertung eines Logfiles mit Löschung der Variable Status

Begonnen von B.Stromberg, 29 Juni 2018, 23:05:21

Vorheriges Thema - Nächstes Thema

B.Stromberg

Hallo!

Schlage mich hier mit der Auswertung eines Logs von meinem Mähroboter rum und komme nicht weiter :(
Holen tue ich mir die Logs folgendermaßen:

Zitat
attr Robby userReadings Maehzeiten { `awk -F_ '{print \$2}'  $defs{FileLog_RobbyStatus}{currentlogfile}` }

Der Log sieht dann in FHEM so aus:

Zitat
10:00:53 RobbyStatus Maehstart
11:23:53 RobbyStatus Suche-Basis
11:29:53 RobbyStatus Aufladen
12:23:53 RobbyStatus Maehstart
13:48:53 RobbyStatus Suche-Basis
13:55:01 RobbyStatus Aufladen
14:49:20 RobbyStatus Maehstart
16:14:11 RobbyStatus Suche-Basis
16:16:11 RobbyStatus Aufladen
17:08:11 RobbyStatus Maehstart
18:33:11 RobbyStatus Aufladen
19:26:11 RobbyStatus Maehstart
20:01:20 RobbyStatus Suche-Basis
20:05:20 RobbyStatus Aufladen
20:30:09 RobbyStatus Schlafen

Ich hätte diesen printout jetzt aber sehr gern ohne die Worte "RobbyStatus"

So dass der Log gekürzt so aussehen soll:

Zitat
10:00:53  Maehstart
11:23:53  Suche-Basis
11:29:53  Aufladen
12:23:53  Maehstart
13:48:53  Suche-Basis
13:55:01  Aufladen
14:49:20  Maehstart
16:14:11  Suche-Basis
16:16:11  Aufladen
17:08:11  Maehstart
18:33:11  Aufladen
19:26:11  Maehstart
20:01:20  Suche-Basis
20:05:20  Aufladen
20:30:09  Schlafen

Kann mir dort bitte jemand helfen, der sicher mehr Programmierkenntnis in akw hat als ich?

Devender

Hi,

probiers mal bitte so


awk '{print $2 " " $3}' < test.txt


Den Dateinamen natürlich ersetzen.

VG,
Dirk
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

B.Stromberg

Zitat von: Devender am 30 Juni 2018, 09:55:34
Hi,

probiers mal bitte so


awk '{print $2 " " $3}' < test.txt

VG,
Dirk

Hallo Dirk!
Danke für deine Hilfe!

Ich habe es nun so übernommen:

Zitat
attr Robby userReadings Maehzeiten { `awk -F_ '{print $2 " " $3}' $defs{FileLog_RobbyStatus}{currentlogfile}` }

Damit bleibt die Ausgabe leer :(

Es gibt nur einen print bei $1 (da wird nur das Datum angezeigt) und $2 (dort wird das angezeigt, was ich oben gepostet habe)
Ein $3 und folgende bringen keine Ausgabe mehr.

Hast du noch eine andere Idee?



Devender

Ja, lass das -F_ weg  ;)
Das hatte ich in meinem Beispiel auch nicht geschrieben
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

B.Stromberg

Zitat von: Devender am 30 Juni 2018, 13:08:05
Ja, lass das -F_ weg  ;)

Ändert leider nichts. Habs auch in der Konsole getestet, es kommt keine Ausgabe.
Wie gesagt, $3 hat keinen Inhalt.

und nu? :(

Devender

Schon komisch, da ich es ja selbst auf der Konsole getestet hatte.
Kannst auch mal die ` weglassen.
Wenns immer RobbyStatus ist, kannst du es auch mit

sed 's/RobbyStatus//g'

Entfernen, anstelle awk.

Kannst ja sonst mal nen par Zeilen der logdatei angaengen als Datei.
Vielleicht hast da noch Steuerzeichen drin.
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

B.Stromberg

#6
Zitat von: Devender am 30 Juni 2018, 13:29:11
Wenns immer RobbyStatus ist, kannst du es auch mit

sed 's/RobbyStatus//g'

Entfernen, anstelle awk.

Zitat
Unknown command sed, try help.

Da scheint ja dann wirklich der Wurm drin zu sein.
Und weglassen der Steuerzeichen bringt auch nichts.

Was möchtest du aus dem log haben?
Den Inhalt vom Statuslog hatte ich oben gepostet...



Devender

FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

B.Stromberg


Devender

Hi,

also selbst mit deinem Original Logfile funktioniert der awk Befehl auf meiner Rpi Konsole:


pi@rechnername:/home/transfer $ awk '{print $1 " " $3}' < RobbyStatus-2018-06-29.log
2018-06-29_10:00:53 Maehstart
2018-06-29_11:23:53 Suche-Basis
2018-06-29_11:29:53 Aufladen
2018-06-29_12:23:53 Maehstart
2018-06-29_13:48:53 Suche-Basis
2018-06-29_13:55:01 Aufladen
2018-06-29_14:49:20 Maehstart
2018-06-29_16:14:11 Suche-Basis
2018-06-29_16:16:11 Aufladen
2018-06-29_17:08:11 Maehstart
2018-06-29_18:33:11 Aufladen
2018-06-29_19:26:11 Maehstart
2018-06-29_20:01:20 Suche-Basis
2018-06-29_20:05:20 Aufladen
2018-06-29_20:30:09 Schlafen


Du bekommst hier natürlich auch das Datum dazu, da es zusammenhängen mit der Zeit ist.
Daher funktioniert mein awk auf Basis deines ersten Post nicht zu 100%.

Zeigt es denn so die Ausgabe an?



FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

B.Stromberg

#10
Zitat von: Devender am 30 Juni 2018, 18:51:04
Hi,

Du bekommst hier natürlich auch das Datum dazu, da es zusammenhängen mit der Zeit ist.
Daher funktioniert mein awk auf Basis deines ersten Post nicht zu 100%.

Zeigt es denn so die Ausgabe an?

Nein, funktioniert so nicht.
Hat es damit zu tun, dass ja der zu verwendende Log ein Userreading ist, dass immer den tagesaktuellen log benutzt?

Zitat
.......$defs{FileLog_RobbyStatus}{currentlogfile}` }

Ich bekomme weder in der Konsole noch wenn ich es so wie von dir vorgegeben in die Config schreibe eine Ausgabe :(

das { `awk -F_ '{print kürzt übrigens die Ausgabe und reduziert diese nur auf die Uhrzeit...
Habe schon so ziemlich alle Varianten durch.

Wäre ein anderer Lösungsansatz den ganzen Log nicht als Userreading zu basteln?
Habe hier bei der Suche im Board einige gefunden, die der Meinung sind, das Userreading unnötig wären...
Aber

Ich hab ja keine Ahnung von nichts, plappere also auch nur das Gelesene nach...

Hast du noch eine andere Idee?

B.Stromberg

ich pushe das mal...

Der Kollege meldet sich nicht mehr, ist wohl an dem Problem verzweifelt, genau wie ich.

Ist hier noch jemand, der evtl. eine Idee hat?