Hallo zusammen,
bei Nutzung des Moduls sind mir ein paar Dinge aufgefallen, die ggf. korrigiert werden sollten:
- alexaFHEM-log: funktioniert prinzipiell, allerdings beobachte ich bei einem Neustart, dass scheinbar zunächst ein Log mit dem Default-Namen angelegt wird und danach erst auf den neuen Namen umgeschaltet wird. Das alte verbleibt dann mit Größe 0 Byte.
- nrarchive: Bei anderen Logfiles bedeutet nrachive 1, dass 1 altes Logfile zusätzlich zum Aktuellen verbleibt. Die Alexa-Logfiles wurden bei Neustart aber ALLE bis auf das aktuelle gelöscht. Da hätte ich erwartet, dass das gestrige auch erhalten bleibt.
- Device alexaFHEMlog: Hatte ich mit rename gemäß eigenem Namensschema umbenannt. Bei Alexa restart entsteht wieder alexaFHEMlog
Ansonsten super Sache, vielen Dank!
1. könnte ab morgen behoben sein. bitte mal testen.
2. da intern die gleichen routinen verwendet werden habe ich auf den ersten blick noch keine idee warum das verhalten
unterschiedlich ist. mal sehen...
3. das log device ist nur zum anschauen der logs über einen klick links oben in der detail ansicht des alexa device.
es soll weder ein sichtbares fhem device sein noch sich umbenennen oder in irgendwelche räume schieben lassen.
Zitat von: justme1968 am 12 April 2020, 20:43:05
1. könnte ab morgen behoben sein. bitte mal testen.
"morgen" war wohl am 13. April, oder irre ich mich ?
Zitat
3. das log device ist nur zum anschauen der logs über einen klick links oben in der detail ansicht des alexa device.
es soll weder ein sichtbares fhem device sein noch sich umbenennen oder in irgendwelche räume schieben lassen.
Ich bin eher zufällig beim Aufräumen auf den Sachverhalt gestossen. Ich fände es schöner, wenn das Logging sich an den allgemeinen Usancen von FHEM orientiert, und alle Einträge in eine Standard-FileLog-Datei ausgegeben würden.
Bei Durchsicht des Codes für 39_alexa.pm fällt auf, daß "alexa-%Y-%m-%d.log" als Logdatei fest codiert ist. Wozu ein eigenes "device" alexaFHEMlog benötigt wird, erschließt sich ebenfalls nicht wirklich.
Auf Zeile 260 findet sich ein Vergleich, dessen Signifikanz mir rätselhaft erscheint:
if( $logfile && $logfile ne 'FHEM' )
Ansonsten stimme ich siggel zu: "Super Sache", Danke dafür.
es ist ein standard file log device bzw. kann alles was ein standart file log device im bezug auf benennung, rotation und betrachten aus fhemweb auch kann. aber der zweck ist ein anderer und die einträge sind die ausgaben von alexa-fhem und haben nichts mit dem normalen format von fhem log fies zu tun die zum platten verwendet werden. ausserdem braucht das modul die kontrolle darüber weil ausgaben direkt geparsed und umgeleitet werden.
es ist nichts fest codiert. mit dem alexaFHEM-log attribut kannst du den namen genau so wie bei jedem anderen file log device nach wunsch ändern.
wenn FHEM als name verwendet wird landen die ausgaben im normalen haupt log von fhem.
Zitat von: justme1968 am 06 September 2020, 17:44:11
wenn FHEM als name verwendet wird landen die ausgaben im normalen haupt log von fhem.
Vermutlich soll das meine Frage nach der Sinnhaftigkeit von Zeile 260 sein. Mag sein, daß der Effekt so eintritt, wie von Dir beschrieben. Allerdings bezweifle ich, daß Zeile 260 irgendeiner Logik folgt.
Eine Variable per && mit sich selbst zu verknüpfen, und anschlißend zu schauen, ob da Ergebnis "FHEM" ist, erscheint mir mehr als fragwürdig.
Zur Logdatei soviel: Wenn sie als Status - Merker gebraucht wird, sollte sie auch so heißen. Ein device vom Typ FileLog sollte sich auch so verhalten wie es dem Typ entspricht.
Zitat von: mimue am 07 September 2020, 05:25:02
Allerdings bezweifle ich, daß Zeile 260 irgendeiner Logik folgt.
Eine Variable per && mit sich selbst zu verknüpfen, und anschlißend zu schauen, ob da Ergebnis "FHEM" ist, erscheint mir mehr als fragwürdig.
Allerdings bezweifle ich, dass Du genug Ahnung von perl hast, um eine solche Aussage treffen zu können.
if( $logfile && $logfile ne 'FHEM' )
- && ist keine Verknüpfung sonndern ein Operator (logisches UND)
- if($logfile) bedeutet "hat die Variable $logfile irgendeinen Inhalt?"
- if/$logfile ne 'FHEM') bedeutet "ist der Inhalt von $logfile ungleich 'FHEM'?"
Die Abfrage mit zwei Bedingungen, die beide erfüllt sein müssen, um "wahr" zu ergeben, hat also durchaus einen Sinn.
Wenn die Variable gar keinen Inhalt hat, wird die zweite Prüfung nicht mehr ausgeführt.
Würde man die erste Prüfung weglassen und die Variable ggf. ohne Inhalt auf "ungleich FHEM" prüfen, gäbe es eine perl Warnung im Logfile.
ich weiss nicht was ein status merker sein soll. aber:
- du scheinst denn unterschied zwischen daten log und fehler/info log nicht zu verstehen
- wie oben geschrieben ist es kein daten log sondern ein fehler/info log das nicht zum plotten sondern zum anschauen ist
- genau so wie das haupt fhem log das auch kein 'normales' file log device ist.