Hallo,
wenn die Logs für einen gplot wenig Daten enthalten, also ein Gerät z.B. erst spät am Tag eingeschaltet wird,
einen oder mehrere Tage lang gar nicht eingeschaltet wird, oder an einem Tag ein und an einem anderen Tag wieder augeschaltet wird,
wird der Plot oft falsch erstellt oder die Grafik endet vor Stunden beim letzten Schaltzustand.
Dieses Problem kann ich, wenn ich es richtig verstehe, mit LogProxy korrigieren.
Ich wollte dies Mal testen, bekomme meine plots aber noch nicht mal 1 zu 1 umgesetzt.
Folgendes habe ich gemacht:
define lp logProxy
in der entsprechenden SVG gplot habe ich in der DEF Zeile
FileLog_EG.bu.DR.Brother.pre:SVG_FileLog_EG.bu.DR.Brother.pre_1:CURRENT
durch
lp:SVG_FileLog_EG.bu.DR.Brother.pre_1:CURRENT
ersetzt.
Mein PRESENCE Device, welches "absent" oder "present" als Zustand annehmen kann, heißt:
"EG.bu.DR.Brother.pre"
Das Log heißt:
"FileLog_EG.bu.DR.Brother.pre"
Das erstellte SVG Plot heißt:
"SVG_FileLog_EG.bu.DR.Brother.pre_1.gplot"
Nun muss ich in der gplot-Datei die Folgende Zeile ändern:
#FileLog_EG.bu.DR.Brother.pre 3:EG.bu.DR.Brother.pre.*::$fld[2]=~"present"?1:0
In der Commandref gibt es folgendes Beispiel:
Von: #FileLog 4:<SPEC1>:power\x3a::
Nach: #logProxy FileLog:FileLog_<SPEC1>:4:.power\x3a::
Für meine Zeile würde ich das so umsetzen:
1. #logProxy vorne ransetzen.
2. Zwei mal den Namen des Logs durch : getrennt
3. Der Wert (Die Zeile), der aus dem Log genutzt werden soll mit _ vorangestellt
4. :3: ist die Stelle des Wertes in der jeweiligen Zeile.
5. Bei .Power bin ich mir nicht sicher.
6. Default Value und Function aus dem gplot.
Das ergibt für mich:
#logProxy FileLog_EG.bu.DR.Brother.pre:FileLog_EG.bu.DR.Brother.pre_EG.bu.DR.Brother.pre.*:3:\$fld[2]=~"present"?1:0
Das fuktioniert aber nicht :-(
Die Ausgabe ist immer leer.
Oder habe ich noch etwas vergessen und muss an anderer Stelle noch was ändern?
Dies ist die Ausgabe im Log:
2015-12-02_11:24:08 EG.bu.DR.Brother.pre present
2015-12-05_01:49:28 EG.bu.DR.Brother.pre absent
2015-12-07_18:47:01 EG.bu.DR.Brother.pre present
2015-12-08_23:13:25 EG.bu.DR.Brother.pre absent
2015-12-15_12:42:05 EG.bu.DR.Brother.pre present
2015-12-15_13:36:43 EG.bu.DR.Brother.pre absent
Sorry, dass es ein so langer Text geworden ist.
Hat jemand einen Tipp für mich?
Vielen Dank schon Mal.
bei mir sieht es zb so aus
#lp FileLog:FileLog_Broetje,predict,extend=24*60*60:4:refRoom.refRoom\x3a::$fld[3]=~"Bad"?3:0
Hallo Frank,
wäre es Möglich, dass du mir einen Auszug aus der Logdatei und einen screenshot aus dem SVG gplot Editor erstellst, in denen ich mal ein wenig vergleichen kann?
Sonst hast du außer den Logproxy nichts angelegt oder?
Hallo spynet,
schau Dir mal die Beschreibung zu logProxy im Wiki an:
http://www.fhemwiki.de/wiki/LogProxy (http://www.fhemwiki.de/wiki/LogProxy)
Nach der habe ich meine Logs umgestellt.
aus:
define SVG_FileLog_1_Tuer_WO SVG FileLog_Tuer_IO:SVG_FileLog_1_Tuer_WO:CURRENT
und:
#FileLog 3:eg.wo.tuer::$fld[3]=~"open"?2:$fld[3]=~"tilted"?1:$fld[3]=~"closed"?0:0
habe ich:
define SVG_FileLog_1_Tuer_WO SVG myLogProxy:SVG_FileLog_1_Tuer_WO:CURRENT
und:
#logProxy FileLog:FileLog_Tuer_IO,predict,extend=86400:3:eg.wo.tuer::$fld[3]=~"open"?2:$fld[3]=~"tilted"?1:$fld[3]=~"closed"?0:0
gemacht.
Und funktioniert.
Grüße,
Nik
Bei mir funktioniert es jetzt.
Die Auszüge vom Mr. Flash waren für mich etwas eindeutiger, als die aus der Anleitung.
Danke dafür :)
Falls jemand mal vor dem gleichen Problem steht, hier mein Endstand:
In der gplot-Datei habe ich folgendes gemacht:
Vorher
#FileLog_EG.bu.DR.Brother.pre 3:EG.bu.DR.Brother.pre.*::$fld[2]=~"present"?1:0
Nachher: Alles rote wurde lediglich eingefügt.
#logProxy FileLog:FileLog_EG.bu.DR.Brother.pre,predict,extend=86400:3:EG.bu.DR.Brother.pre.*::$fld[2]=~"present"?1:0
Im gplot Editor in der DEF Zeile habe ich folgendes ersetzt:
Vorher
FileLog_EG.bu.DR.Brother.pre:SVG_FileLog_EG.bu.DR.Brother.pre_1:CURRENT
Nachher
lp:SVG_FileLog_EG.bu.DR.Brother.pre_1:CURRENT
Den logProxy hatte ich als erstes mit
define lp logProxy
angelegt.