FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tom111 am 30 Oktober 2021, 18:13:24

Titel: Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 30 Oktober 2021, 18:13:24
Hallo,
Ich würde gerne aus einer FHEM-LOG-Datei mir die letzte Uhrzeit anzeigen lassen.
Hat irgendjemand eine Idee wie ich das machen kann?

Die LOG-Datei sieht folgendermaßen aus:
2021-10-28_16:57:10 myIP1 IP: 2.244.140.92
2021-10-29_16:57:16 myIP1 IP: 93.131.149.201
2021-10-30_16:57:15 myIP1 IP: 93.49.181.126


Optimal wäre es wenn ich also die 16:57 auslesen und zur Anzeige bringen kann (Stunde und Minute reicht).

Vielen Dank für eure Hilfe!

Gruß
Tom
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 30 Oktober 2021, 18:49:58
Z.B. per tail:


{my $Line=qx(tail -1 ./log/fhem-2021-10.log);; return (split(/ /, $Line))[1];;}


Ist jetzt allerdings für das fhem-log.

Bei dir müsste (wenn der Ausschnitt stimmt) split so aussehen:


{my $Line=qx(tail -1 ./log/fhem-2021-10.log);; return (split(/_/, $Line))[1];;}


Für Sekunden weg bzw. nur Stunden und Minuten halt weiter splitten /:/ und dann eben davon nur
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: betateilchen am 30 Oktober 2021, 19:11:29
Wenn es einen Logeintrag gibt, gibt es auch ein event. Also ein notify anlegen, das nix tut, dann ist die letzte Auslösung des notify die letzte Uhrzeit im Log.
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 30 Oktober 2021, 19:23:49
Zitat von: betateilchen am 30 Oktober 2021, 19:11:29
Wenn es einen Logeintrag gibt, gibt es auch ein event. Also ein notify anlegen, das nix tut, dann ist die letzte Auslösung des notify die letzte Uhrzeit im Log.

Drum hab ich ja nach dem WARUM gefragt ;)

Weil ich ebenso denke, dass man das/die Reading(s) "überwachen" kann das/die die Einträge machen...

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: betateilchen am 30 Oktober 2021, 20:07:59
In letzter Zeit frage ich mich immer häufiger, warum die Anwender nicht die einfachsten Lösungen verwenden, sondern sich immer die am meisten komplizierten Wege aussuchen.

Die "basics" von FHEM geraten immer mehr in Vergessenheit. Sehr schade.
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 31 Oktober 2021, 17:40:53
So, hab das mal folgendermaßen eingegeben:
define IP_Time notify {my $Line=qx(tail -1 ./log/myIP1-2021.log);; return (split(/_/, $Line))[1];;}
Die Datei heißt übrigens "myIP1-2021.log" hatte ich vergessen, zudem ändert sich auch jedes Jahr das "Jahr" also aus 2021 wird dann 2022
dann würde es ja nicht mehr funktionieren.

Mit dem Ergebnis kann ich aber nichts anfangen, als STATE habe ich nur ein "active", siehe Bild!

Gruß
Tom
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 31 Oktober 2021, 17:44:58
Dein notify ist ja (gelinde gesagt) Quatsch!

eigentlich:

define NotifyName notify NotifyRegex Ausführung


Du:

define NotifyName notify Ausführung


Wie/wodurch soll das notify denn ausgelöst werden?

Und noch mal: was willst du eigentlich?
Weil (wie auch schon mehrfach geschrieben): es lässt sich bestimmt besser/anders lösen, wenn man das "Grundproblem" kennen würde...

Ansonsten: fhem lernen, commandref lesen...

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 31 Oktober 2021, 18:17:19
Also nochmal...

"Ich würde mir gerne aus einer FHEM-LOG-Datei die letzte Uhrzeit anzeigen lassen."
und zwar in dem Format 16:57 ...
...nicht mehr und nicht weniger!

Ich bin Anwender von FHEM und habe von Linux bzw. Perl nicht die geringste Ahnung.

Gruß
Tom
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 31 Oktober 2021, 19:00:37
Zitat von: Tom111 am 31 Oktober 2021, 18:17:19
Also nochmal...

"Ich würde mir gerne aus einer FHEM-LOG-Datei die letzte Uhrzeit anzeigen lassen."
und zwar in dem Format 16:57 ...
...nicht mehr und nicht weniger!

Dann auch noch mal: WANN/WARUM/WELCHER AUSLÖSER soll denn dazu führen, dass du die Uhrzeit des letzten Eintrages haben willst?
Weil "irgendwas" muss ja den tail...-Aufruf auslösen. Der passiert ja nicht einfach so, nur weil du ihn "irgendwohin" schreibst...
Und: WO soll die Uhrzeit landen? Weil aktuell wird die ja nur am Ende des Aufrufs an den "Aufrufer" (den es ja noch nicht gibt) zurückgegeben, fertig...

Uhrzeit auslesen habe ich dir gezeigt, das mit "Sekunden weglassen" erläutert...

Aber dann halt, das sollte aus der in $Line stehenden kompletten Uhrzeit das gewünschte Format machen:

my $Time=(spilt(/:/,(split(/_/, $Line))[1]))[0] . ":" . (spilt(/:/,(split(/_/, $Line))[1]))[1];

EDIT: statt $Line muss nat. nur der Teil mit Uhrzeit hin ;) -> korrigiert... Ist aber jetzt ungetestet (kann also noch etwas fehlen oder "verrutscht" sein)...

Zitat von: Tom111 am 31 Oktober 2021, 18:17:19
Ich bin Anwender von FHEM und habe von Linux bzw. Perl nicht die geringste Ahnung.

Ich bin auch nur Anwender von fhem.

Linux habe ich halt mit fhem gelernt, ja das geht, wenn man will...

Ebenso Perl, auch das geht, wenn man will...

Und: der Fehler hatte nichts mit Perl oder Linux zu tun, sondern war rein fhem! Nämlich: wie definiere ich ein notify...

EDIT: dann trotzdem noch mal: WAS willst du eigentlich tun? Also warum willst du die Uhrzeit des letzten Eintrages haben? Weil (noch mal): es muss ja einen Event geben, der zu dem Eintrag führt (das sind fhem-Basics) und man kann ja auch ganz einfach diesen Event "abgreifen" und dann weiß man wann das war, nämlich immer dann, wenn der Event kommt...

EDIT: ansonsten ist wohl alles gesagt...

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 01 November 2021, 01:07:38
Na ok, schade auch, ich lass es einfach, das wird nichts!  :-\
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 01 November 2021, 07:36:40
Zitat von: Tom111 am 01 November 2021, 01:07:38
Na ok, schade auch, ich lass es einfach, das wird nichts!  :-\

Wenn du nicht mit machst/machen willst...
...und/oder z.B. nicht erläuterst was du EIGENTLICH erreichen willst (und jetzt nicht wieder: ich will nur von dem letzten Eintrag die Uhrzeit, weil du so ja nicht mal weißt von welchem Tag der Eintrag ist ;)  )...

Dann wird das wohl so sein (müssen)...

Viel Spaß noch, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Wolle02 am 01 November 2021, 08:59:48
Zitat von: Tom111 am 31 Oktober 2021, 18:17:19
Also nochmal...

"Ich würde mir gerne aus einer FHEM-LOG-Datei die letzte Uhrzeit anzeigen lassen."
und zwar in dem Format 16:57 ...
...nicht mehr und nicht weniger!

Ich bin Anwender von FHEM und habe von Linux bzw. Perl nicht die geringste Ahnung.




betateilchen hat dir doch den einfachsten Weg schon gewiesen. Du musst ja in deinem System irgendeinen Eventhandler (notify/doif/mswitch) haben, der für den Eintrag "myIP1 IP: 93.49.181.126" in dein Logfile verantwortlich ist. Nimm doch einfach den Timestamp wann dieser Eventhandler das letzte Mal ausgelöst hat; das sollte die gleiche Zeit sein wie die, die in deinem Logfile steht. Diese Zeit kannst du dann ja mit ReadingsVal, Value oder was auch immer auslesen und damit mache was du willst.

Such doch mal diesen Eventhandler in deinem System und poste hier ein List, dann kann man dir vielleicht auch weiterhelfen.
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 01 November 2021, 09:32:55
Naja, dann fehlt immer noch: wo soll denn die Uhrzeit landen? ;)
Bzw. was weiter damit geschehen?

Weil auch der von mir gepostete Code ja schon macht was gefragt wurde... :)

Nur an der Nutzung ist es ja gescheitert...

Mal sehen, vielleicht kommen ja noch Infos...

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 27 Dezember 2021, 10:23:01
So, ich habe wieder ein kleines bisschen Zeit.

Ich hoffe DIESMAL dass jemand eine Lösung findet!

Folgenden Code habe ich nun erstellt (aufsplitten kann ich später):
define myIP1_time notify myIP1 {ReadingsTimestamp("myIP1","state","")}


Das Problem:
Das Notify wird nicht automatisch aktualisiert, dh. ich muss (wenn sich die IP-Adresse ändert) FHEM erst aktualisieren bevor mir die Zeit angezeigt wird!
Was muss ich machen damit sich auch die Zeit automatisch in der Anzeige ändert?

Gruß
Tom
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 27 Dezember 2021, 10:34:57
Zitat von: Tom111 am 27 Dezember 2021, 10:23:01
So, ich habe wieder ein kleines bisschen Zeit.

Ich hoffe DIESMAL dass jemand eine Lösung findet!

Folgenden Code habe ich nun erstellt (aufsplitten kann ich später):
define myIP1_time notify myIP1 {ReadingsTimestamp("myIP1","state","")}


Das Problem:
Das Notify wird nicht automatisch aktualisiert, dh. ich muss (wenn sich die IP-Adresse ändert) FHEM erst aktualisieren bevor mir die Zeit angezeigt wird!
Was muss ich machen damit sich auch die Zeit automatisch in der Anzeige ändert?

Gruß
Tom

FHEM LERNEN! ENDLICH MAL!!!

Was du tust: ein notify anlegen, welches auf ALLES was sich im DEVICE myIP tut reagiert (bei dir [wenn ich das noch im Kopf habe] nur die IP ist, also: "ausnahmsweise" egal)...
...und dann NUR Änderungs-Datum/-Uhrzeit der state-Änderung ABFRÄGT aber NICHTS damit tut!!

Was soll denn passieren?
Wo sollen denn Datum/Uhrzeit die du (aktuell) nur ABFRÄGST (aber nichts damit machst) hin bzw. was soll denn mit dem Wert passieren?

Was dein notify tut:

ups es hat sich was bei myIP getan, juhu ich schau mal nach wann sich state geändert hat, ok aha gerade jetzt, toll. Ok, dann warte ich halt wieder bis sich noch mal was tut...

EDIT: wenn du damit meinst, dass (dann) "im" notify Datum/Uhrzeit der Änderung steht: ja, das ist "Zufall" bzw. halt weil eben das notify reagiert hat und zwar (du wirst es nicht glauben) zur selben Zeit wie sich auch die IP geändert hat, weil ja das notify genau auf alle Änderungen von myIP reagiert. D.h. evtl. denkst du das kommt von deinem Code, nein, das ist die Ausführungszeit des notify, die nat. zur selben Zeit war wie die IP-Änderung, that's it... Dass du ein "Refresh" brauchst liegt (verm.) daran, dass bei dieser "Aktion" kein Event erfolgt, somit also auch FhemWeb keine Aktualisierung macht/machen kann...

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 27 Dezember 2021, 10:41:07
Zitat von: Tom111 am 27 Dezember 2021, 10:23:01
So, ich habe wieder ein kleines bisschen Zeit.

Ich hoffe DIESMAL dass jemand eine Lösung findet!

Es gab ja schon mal eine Lösung für den letzten Logeintrag, den du nicht wolltest?
-> vergebene Mühe(n) unsererseits... :-\ ;)

Dann ist eben IMMER NOCH OFFEN: wo sollen denn Uhrzeit/Datum landen?

Bzw. eben noch mal: was genau willst du denn haben? Also was soll der Aulöser sein? -> gut ein Wechsel der IP-Adresse (der ja offenbar tut) ABER: wo soll dann Datum/Uhrzeit des IP-Wechsels landen? Außer, dass das ja schon "hinter" dem Reading der IP-Adresse steht?

Wenn du das mal schreibst und auch ein list der beteiligten Devices lieferst (wie ja schon mal angefragt und auch "üblich"), dann kann man evtl. sogar (weil Weihnachten ist) einen entsprechenden "Code" posten...
...ansonsten kann man nur erläutern was die von dir geposteten Sachen machen oder eben was sie auch nicht machen...
...also: "an der Hand nehmen und fhem-Basics abturnen": anstrengend (für beide Seiten)...

EDIT: diese Sachen schon mal angeschaut?
https://forum.fhem.de/index.php/topic,19621.0.html
https://forum.fhem.de/index.php/topic,41693.0.html
und v.a.: https://forum.fhem.de/index.php/topic,71806.0.html

Gruß, Joachim
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: Tom111 am 27 Dezember 2021, 10:43:15
Zitat von: MadMax-FHEM am 27 Dezember 2021, 10:34:57
FHEM LERNEN! ENDLICH MAL!!!
Gruß, Joachim

Also ich kann mit DEINER "Hilfe" hier absolut nichts anfangen, alles was DU hier machst ist Meckern!

Ich würde dich bitten mal andere User zu Wort kommen zu lassen und mich nicht weiter belästigen!

Danke!

Gruß
Tom
Titel: Antw:Letzte Uhrzeit aus LOG-Datei anzeigen!
Beitrag von: MadMax-FHEM am 27 Dezember 2021, 10:49:21
Zitat von: Tom111 am 27 Dezember 2021, 10:43:15
Also ich kann mit DEINER "Hilfe" hier absolut nichts anfangen, alles was DU hier machst ist Meckern!

Ich würde dich bitten mal andere User zu Wort kommen zu lassen und mich nicht weiter belästigen!

Danke!

Gruß
Tom

Ich meckere nicht!
Ich versuche zu helfen aber wenn du nicht mal die Aufgabe formulieren kannst, so dass man (ich) die vertshen kann, dann ist helfen halt schwer...
...und auch auf Anfrage keine Infos lieferst...

UND: wenn man an allen deinen Versuchen sieht, dass du nicht mal weißt wie fhem tickt bzw. wie man ein notify etc. nutzt (oder was das überhaupt ist) und man auch nicht sieht, dass du dir die Sachen mal angeschaut hast und versucht hast zu lernen, dann ist es halt echt mühsam!

Vielleicht ist dir aufgefallen, dass sich ja gar niemand anders mehr meldet/gemeldet hat ;)

Und: auch "nur Anwender" sollten zumindest lernen wie die genuztze Software funktioniert!

Aber mir ist das eh zu mühsam, wobei ich schon eher geduldig bin...
...wenn du andere meiner Hilfen ansiehst...

Dann lasse ich dich halt in Ruhe...
...alleine mit deinem Problem!

Die Seiten zum Lernen sind verlinkt und eigentlich alles gesagt was du (zum selbst Weiterhelfen) brauchst...

Viel Erfolg, Joachim