Hallo,
ich versuche es dann hier noch einmal ausführlich, da ich an den Erklärungen in Wiki und CommanRef leider scheitere.
Also, ich habe ein at erstellt, um die Credits meines nanoCUL868 zu loggen.
Dazu habe ich mit
define at_Credits at +*00:05:00 get nanoCUL868 credit10ms
den at_Credits erstellt.
Dies scheint auch ordentlich zu funktionieren, da ich im Hauptlogfile folgende Meldungen erhalte
2016.12.19 20:15:44 3: at_Credits: nanoCUL868 credit10ms => 261
Nun ... aus dem fhem-2016-12.log zu plotten scheint ja nicht möglich zu sein, zumindest habe ich keine Möglichkeit gefunden.
Jetzt habe ich also gelesen, gelesen und probiert ... leider ohne Erfolg.
Ich habe mir den folgenden Befehl zusammengestellt (hier wird zwar ein LogFile erstellt, aber es bleibt leer): define 868Credits FileLog ./log/868Credits-%Y-%m.log at_Credits:nanoCUL868 credit10ms
Da ich nicht weiter weiss und auch meinen Fehler nicht sehe/verstehe bitte ich um eure Hilfe und eventuell auch eine kurze Erklärung zu <event> und <regexp>
Vielen Dank!
Es gibt sicher ganz viele Möglichkeiten das in einen logfile zu bekommen.
Erstmal die Erklärung warum das so nicht funktioniert. Generell sind filelogs quasi ein Protokoll von Readingänderungen/Events. Du hast hier aber ein Ergebnis eines fhem Befehls, der wird erstmal nicht im filelog des devices gespeichert.
Eine Möglichkeit wäre ein dummy device anzulegen und statt nur den get auszuführen, den wert in das dummy zu legen
define credit10ms dummy
und den at entsprechend zu modifizieren:
define at_Credits at +*00:05:00 { my $s =fhem("get nanoCUL868 credit10ms");; fhem("set credit10ms $s") }
Ohne dass ich das jetzt direkt ausprobiert hätte und natürlich wird dann noch ein Filelog für den dummy benötigt.
Es wäre aber auc möglich das ganze in ein userreading am nanocul zu hinterlegen und dann den Wert im normalen filelog des nanocul zu haben
Hey Hallo,
vielen Dank für Deine Antwort. So komme ich Stück für Stück der Erleuchtung ein bisschen näher.
Zitat von: viegener am 20 Dezember 2016, 09:43:35
Es wäre aber auc möglich das ganze in ein userreading am nanocul zu hinterlegen und dann den Wert im normalen filelog des nanocul zu haben
Dieser, Dein letzter Vorschlag scheint mir der "eleganteste" zu sein, oder?
Wie müsste man hier vorgehen?
Könntest Du mir helfen und sagen, wie dieses userreading dann definiert werden müsste?
Dankeschön!
Generell ist das relativ einfach dieses zu definieren, allerdings würde das dann vermutlich jedesmal aufgerufen wenn irgendein Ereignis am cul auftritt und damit vermutlich zu häufig. Das user reading ist eben nicht direkt zeitgesteuert.
Jetzt habe ich bei mir aber nochmal nachgeschaut. Mein Cul hat ein reading credit10ms, das jedesmal aktualisiert wird, wenn ich den get credit10ms aufrufe.
Gibt es an Deinem nanocul dieses Reading?
Wenn nicht, kannst Du mal das Attribut "addvaltrigger" am nanocul setzen und dann nochmal nachschauen, ob dieses Reading entsteht?
Dann brauchst Du nur einen Standard file log am nanocul, oder hast den vielleicht auch schon?
Zitat von: viegener am 20 Dezember 2016, 11:25:56
Generell ist das relativ einfach dieses zu definieren, allerdings würde das dann vermutlich jedesmal aufgerufen wenn irgendein Ereignis am cul auftritt und damit vermutlich zu häufig. Das user reading ist eben nicht direkt zeitgesteuert.
Ah ... dann ist das also weniger "elegant" als ich dachte ...
Zitat von: viegener am 20 Dezember 2016, 11:25:56
Jetzt habe ich bei mir aber nochmal nachgeschaut. Mein Cul hat ein reading credit10ms, das jedesmal aktualisiert wird, wenn ich den get credit10ms aufrufe.
Gibt es an Deinem nanocul dieses Reading?
Wenn nicht, kannst Du mal das Attribut "addvaltrigger" am nanocul setzen und dann nochmal nachschauen, ob dieses Reading entsteht?
Dann brauchst Du nur einen Standard file log am nanocul, oder hast den vielleicht auch schon?
Das kann ich leider erst heute Abend prüfen (sitze noch auf der Arbeit ... :-) )
Erstmal vielen, vielen Dank ... melde mich dann wieder.
Zitat von: viegener am 20 Dezember 2016, 11:25:56
Generell ist das relativ einfach dieses zu definieren, allerdings würde das dann vermutlich jedesmal aufgerufen wenn irgendein Ereignis am cul auftritt und damit vermutlich zu häufig. Das user reading ist eben nicht direkt zeitgesteuert.
Was man dann aber ggf mit event-on-change/update-reading und event-min-interval einschränken könnte. Oder?
Grüße
Stephan
Zitat von: abc2006 am 20 Dezember 2016, 12:46:19
Was man dann aber ggf mit event-on-change/update-reading und event-min-interval einschränken könnte. Oder?
Grüße
Stephan
Ja natürlich, deshalb bin ich ja darauf gekommen, habe dann aber festgestellt, dass mein cul sogar sehr wenige Readings und auch seltene updates enthält (als schien einschränken gar nicht nötig), aber das Reading war bereits da nach dem ersten Abruf (und mit dem angegebenen Attribut)
So, ich bin zu Hause ....
Zitat von: viegener am 20 Dezember 2016, 11:25:56
Jetzt habe ich bei mir aber nochmal nachgeschaut. Mein Cul hat ein reading credit10ms, das jedesmal aktualisiert wird, wenn ich den get credit10ms aufrufe.
Gibt es an Deinem nanocul dieses Reading?
Wenn nicht, kannst Du mal das Attribut "addvaltrigger" am nanocul setzen und dann nochmal nachschauen, ob dieses Reading entsteht?
Dann brauchst Du nur einen Standard file log am nanocul, oder hast den vielleicht auch schon?
Das Reading ist vorhanden.
credit10ms 234
... und das greife ich ja auch mit meinem "at" (siehe erster Post) ab:
define at_Credits at +*00:05:00 get nanoCUL868 credit10ms
Heisst also ich hätte eigentlich nur ein filelog für den nanoCUL868 erstellen müssen.
Würdest Du mir trotzdem bitte noch mit der Definition des Logs unter die Arme greifen? Meine letzten Versuche sind ja leider gescheitert. (Ich fürchte ich muss noch viel, viel lesen ..... )
Danke
Korrektur - Nein das Reading wird bei mir nur aktualtisiert durch den get - nicht wie von Dir geschrieben zurückgegeben durch den get
Also der get holt es vom cul und legt es als reading ab, es bleibt alt, wenn man den get nicht aufruft zumindet bei meinen tests
In diesem Fall müsste ein ganz einfacher Filelog erstmal ausreichen:
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868
attr FileLog_nanoCUL868 logtype text
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868
loggt aber alles vom nanoCUL868 ;)
Wenn es nur um die credit10ms geht und diese als Reading vorhanden sind und auch aktualisiert werden könnte man das FileLog noch einschränken:
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868:credit10ms
oder, wenn das nicht geht mal so versuchen
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868.credit10ms
Sollte kein : zwischen Device:Event sein sondern ein Leerzeichen Device Event dann sollte zweiteres helfen nur die credit10ms zu loggen.
Zitat von: Puschel74 am 20 Dezember 2016, 19:01:33
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868:credit10ms
oder, wenn das nicht geht mal so versuchen
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868 -%Y.log nanoCUL868.credit10ms
Hallo,
vielen Dank für eure Antworten, aber welchen eurer Codes ich auch verwende ich erhalte immer den gleichen Fehler:
wrong syntax: define <name> FileLog filename regexp [readonly]
Logisch ;D
Ein Leerzeichen zuviel.
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868:credit10ms
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868.credit10ms
Experimentierfreudig bist du aber auch nicht 8)
Zitat von: Puschel74 am 20 Dezember 2016, 19:35:43
Experimentierfreudig bist du aber auch nicht 8)
Doch doch, grundsätzlich schon, aber in diesem Fall glaube ich zunächst mal alles, was die Experten mir sagen.
Allerdings erhalte ich jetzt den Fehler
Unknown module FileLog./log/nanoCUL868
Tut mir leid solche Umstände zu machen .... :-\
Ja den Experten kannst Du ja glauben aber mir ;)
Sorry, das falsche Leerzeichen kam von mir als ich Deinen Devicenamen eingesetzt habe.
Zitat von: viegener am 20 Dezember 2016, 19:55:08
Ja den Experten kannst Du ja glauben aber mir ;)
Sorry, das falsche Leerzeichen kam von mir als ich Deinen Devicenamen eingesetzt habe.
:D - Jeder kann sich mal vertun ... aber was ist denn jetzt noch falsch?
Unknown module FileLog./log/nanoCUL868
als 2 Parameter nach dem define kommt ein Typ und der Typ ist FileLog. Sorry ein bisschen selber nachschauen und denken hätte hier wohl eine Lösung gebracht, oder
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868-%Y.log nanoCUL868
Und noch ein Leerzeichen zuviel ::)
Jetzt aber
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868:credit10ms
define FileLog_nanoCUL868 FileLog./log/nanoCUL868 -%Y.log nanoCUL868.credit10ms
Also bei mir klappt ein
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868-%Y.log CUNO1
einwandfrei.
Na wenn ich schon definiert habe schau ich mal nach dem Reading darin ;)
Zitat von: Puschel74 am 20 Dezember 2016, 20:14:04
Also bei mir klappt ein
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868-%Y.log CUNO1
einwandfrei.
Na wenn ich schon definiert habe schau ich mal nach dem Reading darin ;)
Hurra! - Danke!
So hat es jetzt funktioniert:
define FileLog_nanoCUL868 FileLog ./log/nanoCUL868-%Y.log nanoCUL868
Der Leerzeichen-Knoten ist gelöst!
Vielen Dank!
Aber wie geschrieben - das loggt alles vom Device nanoCUL868
Edith: Krass - erst 20 Beiträge und das Gelöst steht im Beitrag - und das ohne Aufforderung.
Ich würd mich beinahe hinknien vor dir ;)
Zitat von: Puschel74 am 20 Dezember 2016, 21:04:32
Aber wie geschrieben - das loggt alles vom Device nanoCUL868
nun, es läuft jetzt seit einer Stunde und bisher sind nur Einträge vom Typ credit10ms in dem Log. Scheint also unproblematisch.
Zitat von: Puschel74 am 20 Dezember 2016, 21:04:32Edith: Krass - erst 20 Beiträge und das Gelöst steht im Beitrag - und das ohne Aufforderung.
Ich würd mich beinahe hinknien vor dir ;)
Muss ich das verstehen?
Zitat von: Redneck am 20 Dezember 2016, 21:41:38
Muss ich das verstehen?
Nein, sei mal länger im Forum unterwegs dann kommt das verstehen von selbst ;)
Zitat von: Redneck am 20 Dezember 2016, 21:41:38
nun, es läuft jetzt seit einer Stunde und bisher sind nur Einträge vom Typ credit10ms in dem Log. Scheint also unproblematisch.
Und ich habe auch wieder etwas gelernt (und damit meine ich nicht die Leerzeichen), sondern die Readings am CUL
(Hilfe zur Selbsthilfe sozusagen ;) )