FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: igami am 30 Dezember 2018, 16:19:19

Titel: eigenes Changelog für die Übersicht
Beitrag von: igami am 30 Dezember 2018, 16:19:19
Hallo Forum,

da hier (https://forum.fhem.de/index.php/topic,62403.msg878374.html#msg878374) nach meinem changelog gefragt wurde mache ich nun einen eigenen Thread dafür auf.

Um nicht die Übersicht zu verlieren wann ich welche Änderung gemacht habe gibt es bei mir ein changelog in das ich manuell Text eingebe (z.B. Lichszenen in der Küche angepasst).
Weiterhin werden noch Systemereignisse in das Log geschrieben (INITIALIZED|SHUTDOWN|UPDATE).

Bestehen tut das aus einem dummy für die Benutzereinträge, einem notify für die Systemeinträge und einem FileLog.
Folgend der Code in Raw definition:

defmod user dummy
attr user group changelog
attr user icon people_sensor
attr user readingList change
attr user room changelog
attr user setList change
attr user stateFormat {return ""}
attr user userReadings change {delete $defs{$name}->{READINGS}{change};; return;;}

defmod system notify global:(INITIALIZED|SHUTDOWN|UPDATE) {fhem("trigger $SELF change: ".lc("$EVENT"))}
attr system devStateIcon {ReadingsVal($name, "state", "inactive") eq "active" ? ".*:ios-on-green:inactive" : ".*:ios-off:active"}
attr system group changelog
attr system icon system_fhem
attr system room changelog

defmod changelog FileLog ./log/changelog-%Y.log (user|system):.*
attr changelog room changelog


Vielleicht für den ein oder anderen Interessant.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Raemsna am 30 Dezember 2018, 16:55:32
Hallo igami,

vielen vielen Dank für deine Hilfe und dein changelog!
ist direkt übernommen und wird nun getestet! :)

Grüße
Raemsna
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: KernSani am 30 Dezember 2018, 18:08:51
Sehr einfache und schöne Lösung... Eingebaut und gleich die DEF des notifies noch erweitert:

global:(INITIALIZED|SHUTDOWN|UPDATE|DEFINED.*|DELETED.*|MODIFIED.*|RENAMED.*) {fhem("trigger $SELF change: ".lc("$EVENT"))}
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: igami am 30 Dezember 2018, 19:09:33
Zitat von: KernSani am 30 Dezember 2018, 18:08:51
Sehr einfache und schöne Lösung... Eingebaut und gleich die DEF des notifies noch erweitert:

global:(INITIALIZED|SHUTDOWN|UPDATE|DEFINED.*|DELETED.*|MODIFIED.*|RENAMED.*) {fhem("trigger $SELF change: ".lc("$EVENT"))}

Dann sollte das lc aber noch überarbeitet werden, da device Namen ja druchaus auch Großbuchstaben enthalten können.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: KernSani am 30 Dezember 2018, 19:19:51
Das ist korrekt, aber zumindest in meinem Fall sollte es trotzdem eindeutig sein


Kurz, weil mobil
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: jkriegl am 16 Januar 2019, 20:13:43
wie bekomme ich ein backup protokolliert?
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: igami am 17 Januar 2019, 06:02:37
Zitat von: jkriegl am 16 Januar 2019, 20:13:43
wie bekomme ich ein backup protokolliert?
Manuell eintragen über den user dummy.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 18 Januar 2019, 15:51:27
Hallo,

wäre es bitte möglich, für nicht so tief in der Materie steckende zu erklären, was da eigentlich passiert und was man dann ggf. händisch zu erledigen hat?

Und Einzelheit: Beitrag #2 - ist die Zeile zusätzlich oder ersetzt die eine andere Zeile? Wie muss sie geändert werden für "auch Großbuchstaben"?

Herzlichen Dank.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: mi.ke am 03 Februar 2019, 23:20:52
Hi igami,

sehr schöne Idee !
Und Danke für's teilen.

Ich hab mir den user dummy leicht mofifiziert.

attr user setList change:textField
attr user webCmd change


Damit kann man direkt in den user dummy schreiben, ohne erst in details zu gehen.

Wen's interessiert
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 05 März 2019, 01:27:37
Was mache ich denn bitte mit


Messages collected while initializing FHEM:
configfile: system: unknown attribute attributesExclude.

Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Christoph Morrison am 05 März 2019, 09:16:48
Zitat von: curt am 05 März 2019, 01:27:37
Was mache ich denn bitte mit


Messages collected while initializing FHEM:
configfile: system: unknown attribute attributesExclude.


igami hat vergessen zu erwähnen, dass attributesExclude aus 98_archetype kommt und in einer Installation ohne 98_archetype-Device nicht vorhanden ist. Kannst du aber auch einfach weglassen.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: obi am 05 März 2019, 14:22:05
Hallo,

ich habe das Changelog wie beschrieben eingerichtet. Wie bekomme ich nun Links in das Menü einen Link um die Log-Datei anzuzeigen so wie es beim default Log der Fall ist?
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: mi.ke am 05 März 2019, 17:02:39
Zitat von: obi am 05 März 2019, 14:22:05
Wie bekomme ich nun Links in das Menü einen Link um die Log-Datei anzuzeigen so wie es beim default Log der Fall ist?

in Deinen FHEMWEB --> attr menuEntries --> Pfad_Zu_Deinem_Log

Cheers
mi.ke
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 05 März 2019, 17:26:43
Zitat von: igami am 30 Dezember 2018, 19:09:33
ZitatSehr einfache und schöne Lösung... Eingebaut und gleich die DEF des notifies noch erweitert:
global:(INITIALIZED|SHUTDOWN|UPDATE|DEFINED.*|DELETED.*|MODIFIED.*|RENAMED.*) {fhem("trigger $SELF change: ".lc("$EVENT"))}
Dann sollte das lc aber noch überarbeitet werden, da device Namen ja druchaus auch Großbuchstaben enthalten können.

Ich habe da noch "SAVE" reingeschrieben. - Frage: Wie muss die Überarbeitung wegen Großbuchstaben aussehen?

Weitere Frage: Im Augenwinkel sah ich https://forum.fhem.de/index.php/topic,98129.0/topicseen.html - macht das das Gleiche? Oder ähnliches?
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 06 März 2019, 01:00:22
Zitat von: mi.ke am 05 März 2019, 17:02:39
in Deinen FHEMWEB --> attr menuEntries --> Pfad_Zu_Deinem_Log

Wäre es bitte möglich, dass ganz konkret zu sagen?


# grep menuEntries fhem.cfg
attr WEB menuEntries Update,cmd=update,UpdateCheck,cmd=update+check,Restart,cmd=shutdown+restart


Was muss ich da konkret hinzufügen?

Sei mal bitte nicht böse - ich habe ein Problem mit diesen Kurzantworten.
Denn das führt regelmäßig dazu, dass ich nicht traue, weitere Frage mit der Bitte um Hilfe zu stellen.

Ein Beispiel:
Da ich recht intensiv FTUI nutze, fände ich es nicht schlecht, wenn man (ich, klar) die letzten fünf Logeinträge in inverser Reihenfolge in einem Reading haben könnte - idealerweise gleich mit html-Struktur wie beispielsweise bei Blitzer.

Ich weiß, dass ich das nicht kann. Ich weiß, dass ich immerzu auf freundliche Hilfe angewiesen bin. Andererseits ist meine Leidensfähigkeit begrenzt: Ein Bettler mit einem Rest von Selbstwertgefühl. Ja, das trifft es recht gut.

P.S: Restart tut übrigens bei mir nicht, das steht nur aus nostalgischen Gründen da.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: ComputerZOO am 06 März 2019, 08:06:46
Du hängst dort einfach folgendes an:
,ChangeLog,/<FHEMNAME>/FileLog_logWrapper&dev=changelog&type=text&file=<CHANGELOG>

<FHEMNAME> = Name von FHEM (meist fhem, oder FHEM)
<CHANGELOG> = Name deines Logfiles (bei mir z.B. changelog-2019.log)
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 07 März 2019, 04:22:51
Das funktioniert perfekt - sehr herzlichen Dank!

Bitte noch eine Frage: Also im nächsten Januar (dann ist ja 2020) werde ich mir vermutlich einen Wolf suchen - könnte man das denn allgemeiner gestalten, also das da immer das aktuelle Logfile adressiert wird?
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Benni am 07 März 2019, 08:01:39
Zitat von: curt am 07 März 2019, 04:22:51
Bitte noch eine Frage: Also im nächsten Januar (dann ist ja 2020) werde ich mir vermutlich einen Wolf suchen - könnte man das denn allgemeiner gestalten, also das da immer das aktuelle Logfile adressiert wird?

Ohne das jetzt komplett auszuarbeiten (habe gerade kein System verfügbar!):

Den Pfad zur aktuell verwendeten Datei eines FileLog (https://commandref.fhem.de/commandref_DE.html#FileLog)-Devices kannst du dir in Perl mittels InternalVal() (https://wiki.fhem.de/wiki/DevelopmentModuleAPI#InternalVal) über das Internal currentlogfile abholen:
InternalVal(<Name des FileLog-Devices>,'currentlogfile',undef)

Jetzt müsstest du dir ein at (https://commandref.fhem.de/commandref_DE.html#at) bauen, das einmal jährlich am 01.01., bspw. um 00:01:00 den o.g. Wert aus dem Internal holt und das Attribut menuEntries (https://commandref.fhem.de/commandref_DE.html#menuEntries) am FHEMWEB (https://commandref.fhem.de/commandref_DE.html#FHEMWEB)-Device entsprechend anpasst (Stichworte attr -a und attr -r (https://commandref.fhem.de/commandref_DE.html#attr))

Dazu noch ein Hinweis: Ein at kann nicht jährlich ausgeführt werden, sondern nur maximal täglich. Daher müsstest du im Ausführungsteil des at prüfen, ob zum Ausführungszeitpunkt das Datum der 01.01. eines Jahres ist. Alternativ könnte man auch das at explizit am 01.01.2020 ausführen lassen und dann im Ausführungsteil des at ein neues at für das Folgejahr erzeugen. Das ist aber noch etwas anspruchsvoller! Bestimmt kommt dafür auch ein DOIF (https://commandref.fhem.de/commandref_DE.html#DOIF) in Frage, dafür gibt es aber andere Spezialisten.

Weiterer hinweis: Die Attributänderung durch das at müsste ggf. noch durch ein save (https://commandref.fhem.de/commandref_DE.html#save) gespeichert werden.
Ob man automatisiert ein save ausführen lassen will, muss jeder selbst entscheiden.

Alternativ, falls dir das alles zu kompliziert erscheint, dann kannst du dir, um die Suche 2020 zu vereinfachen,  im comment-Attribut (https://commandref.fhem.de/commandref_DE.html#comment) des FileLog-Devices auch einfach entsprechende Notizen (bspw. Link auf den Foren-Thread hier) dazu machen.


Gruß Benni.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 09 März 2019, 02:11:20
Zitat von: Benni am 07 März 2019, 08:01:39
Ohne das jetzt komplett auszuarbeiten (habe gerade kein System verfügbar!):
...
Dazu noch ein Hinweis: Ein at kann nicht jährlich ausgeführt werden, sondern

Das klingt alles fürchterlich kompliziert - ich weiß nicht ob ich das sagen darf: Das ist ein Designfehler.

Bei FTUI ist das bei mehreren Widgets so gelöst: Ein "-" adressiert das aktuelle Logfile. Damit ist dann alles schon geklärt. Wenn die das bei FTUI können, warum soll das bei Changelog nicht gehen? Wen muss man denn da überreden?

Andere Frage, @Benny
Ich habe system und user nun in einen eigenen room gepackt. Es wäre nun sehr schön, wenn es dort auch noch einen weblink auf das (jaja, aktuelle) Filelog gäbe. Das kann ich leider nicht. Sagst Du mir bitte, wie man das macht?
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Benni am 09 März 2019, 07:00:53
Zitat von: curt am 09 März 2019, 02:11:20
Das klingt alles fürchterlich kompliziert - ich weiß nicht ob ich das sagen darf: Das ist ein Designfehler.
Das hatte ich befürchtet! Und nein, nur weil man was nicht versteht oder weil etwas komplex ist es nicht gleich ein Designfehler. 

Zitat von: curt am 09 März 2019, 02:11:20
Wen muss man denn da überreden?
https://fhem.de/MAINTAINER.txt kennst du?


Zitat von: curt am 09 März 2019, 02:11:20
Sagst Du mir bitte, wie man das macht?

Nein!
Sorry, aber mit den Informationen aus diesem Thread und der Commandref (https://commandref.fhem.de/commandref.html#weblink) solltest du das selbst bewältigen können!

Gruß Benni
(am Ende mit "i")

Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 09 März 2019, 07:08:40
Zitat von: Benni am 09 März 2019, 07:00:53
Das hatte ich befürchtet! Und nein, nur weil man was nicht versteht oder weil etwas komplex ist es nicht gleich ein Designfehler. 

Selbstverständlich ist es ein Designfehler, wenn man das aktuell gültige Log nicht direkt adressieren kann. Du hast ja selbst den Beweis geliefert: Ich müsse nur ein at und ein doif, das aber nur zu Mitternacht des Jahreswechsels. Aber die tote schwarze Katze muss ich jede Nacht zu Mitternacht über dem Kopf kreisen lassen. Sorry - das ist Vollpanne.

Also wenn das kein Designfehler ist - dann weiß ich auch nicht.

Wie gesagt: Die Jungs vom Team FTUI kriegen das hin. Dann sollte das Team FHEM das auch können.

Zitat von: Benni am 09 März 2019, 07:00:53
Gruß Benni
(am Ende mit "i")

Ja, Benny <rennt um sein Leben>

P.S: Komm, lach mal wieder.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Benni am 09 März 2019, 07:14:21
*plonk* (https://de.wikipedia.org/wiki/Plonk)
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 09 März 2019, 07:27:04
Ach je.

P.S: Komm, lach mal wieder. Das Leben ist schon ernst genug.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Christoph Morrison am 09 März 2019, 09:49:31
Zitat von: curt am 09 März 2019, 02:11:20
Das klingt alles fürchterlich kompliziert - ich weiß nicht ob ich das sagen darf: Das ist ein Designfehler.

Das ist echt Stuss. Wie der Logfile benannt ist hast du selbst entschieden, vermutlich hast du einfach ./log/changelog-%Y.log aus dem ersten Posting übernommen. Damit hast du selbst dafür gesorgt, dass sich der Name des Logfiles jährlich ändert. Meiner tut das einfach nicht, sondern wird von logrotate (https://linux.die.net/man/8/logrotate) rotiert, FHEM kann das nicht besser als logrotate. Lass halt -%Y weg und dann hast du nur noch eine Datei und du "suchst dir keinen Wolf", aber irgendwann wird die sehr groß wenn du sie nicht rotierst. Ansonsten was Benni gesagt hat: Kommentar dran und dann findest du den Eintrag schon.

Was soll daran ein Designfehler sein?

Lies auch unbedingt mal How To Ask Questions The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html). Benni hat sonst (imho) ein ruhiges und geduldiges Wesen. Es ist übrigens tatsächlich ziemlich respektlos erst seinen Namen falsch zu schreiben und dann auch noch darauf zu insistieren, dass er der Humorlose und nicht du der Respektlose bist.

EOT, meinerseits.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: mi.ke am 09 März 2019, 13:22:05
Zitat von: Christoph Morrison am 09 März 2019, 09:49:31
Lies auch unbedingt mal How To Ask Questions The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html).

. . . und hier in Deutsch . . .  (https://tty1.net/smart-questions_de.html#intro)


Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: curt am 12 März 2019, 07:04:16
@Christoph Morrison
Zitat von: Christoph Morrison am 09 März 2019, 09:49:31
Zitat von: curt am 09 März 2019, 02:11:20
Das klingt alles fürchterlich kompliziert - ich weiß nicht ob ich das sagen darf: Das ist ein Designfehler.
Das ist echt Stuss.

Die einen sagen so - die anderen so. Natürlich ist es logisch, dass "die Software" zunächst einmal als default das aktuelle Logfile adressiert (es ist völlig Banane, wie das konkret heißt, die Information ist vorhanden) und erst im Falle des Überschreibens ein anderes Log nimmt. Das wäre der Idealfall.

Zitat von: Christoph Morrison am 09 März 2019, 09:49:31
Wie der Logfile benannt ist hast du selbst entschieden, vermutlich hast du einfach ./log/changelog-%Y.log aus dem ersten Posting übernommen.
...
Was soll daran ein Designfehler sein?

Siehe oben.

Zitat von: Christoph Morrison am 09 März 2019, 09:49:31
Es ist übrigens tatsächlich ziemlich respektlos erst seinen Namen falsch zu schreiben

Das war ein Typo, der mir in diesem Moment nicht gegenwärtig war.

Zitat von: Christoph Morrison am 09 März 2019, 09:49:31
und dann auch noch darauf zu insistieren, dass er der Humorlose und nicht du der Respektlose bist.

Du liest bitte ganz vorsichtig nochmals Beitrag #19 nach? Und dann denkst Du nochmal über Respektlosigkeiten nach?

Dieses überhebliche "Du bist doof, ich sage Dir aber nicht warum", gepaart mit einem hingerotzten Link auf MAINTAINER - das ist ein Machtspiel. Mal abgesehen davon, dass aus meiner Sicht Teile des Forums genau daran kranken und harmlos Fragende abschrecken - das war auch eine Nebelkerze. Die Antwort sagt genau nichts zu der eigentlich von mir aufgeworfenen (vielleicht dummen) Fragestellung.

Respekt -das mal ins Stammbuch aller Beteiligten- ist immer eine zweiseitige Sache. Man kann nicht Respekt erheischen und gleichzeitig selbst respektlos sein.

So sehr ich @benni sonst schätze.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: Benni am 12 März 2019, 08:10:24
Zitat von: curt am 12 März 2019, 07:04:16
Dieses überhebliche "Du bist doof, ich sage Dir aber nicht warum", gepaart mit einem hingerotzten Link auf MAINTAINER

"Hingerotzt" habe ich hier gar nichts!
Diese Ausdrucksweise von dir ist schon eine unerhörte Respektlosigkeit!

Vor allem nachdem ich dir in meinem vorherigen Post vesucht habe ziemlich konkret zu helfen, mit vielen Links  zu den entsprechenden Dokumentationen und unter Hinweis auf mögliche Fallstricke.

Zitat von: curt am 09 März 2019, 07:08:40
Ja, Benny <rennt um sein Leben>

P.S: Komm, lach mal wieder.

UND DANN, mit Absicht, obwohl ich dich zuvor extra darauf hingewiesen habe, dass du meinen Namen falsch Schreibst, dieses dann nochmal zu tun mit irgendeinem blöden Spruch dazu ("rennt um sein Leben", was soll das sein? Eine Drohung?)

DAS IST DER GIPFEL DER RESPEKTLOSIGKEIT!
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: igami am 12 März 2019, 18:27:18
Und nun kommen wir bitte wieder zum Thema zurück. Für Verhaltensregeln könnt ihr einen separaten Thread eröffnen.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: teufelchen am 13 März 2019, 10:18:34
@Igami:

Super Idee und Danke für das Bereitstellen.

Was meinst Du aber mit, bzw. was müsste noch angepasst werden?
Zitat von: igami am 30 Dezember 2018, 19:09:33
Dann sollte das lc aber noch überarbeitet werden, da device Namen ja druchaus auch Großbuchstaben enthalten können.
Titel: Antw:eigenes Changelog für die Übersicht
Beitrag von: igami am 13 März 2019, 19:39:12
Zitat von: teufelchen am 13 März 2019, 10:18:34
Was meinst Du aber mit, bzw. was müsste noch angepasst werden?
lc wandelt den ganzen String in Kleinbuchstaben um, also auch den Device Namen. Der einfachheithalber könnte man das lc einfach weglassen. Nur dann steht SHUTDOWN etc. auch in Großnbuchstaben im Log.