FileLog_logWrapper: ist plotReplace möglich??

Begonnen von didi-fritz, 18 November 2019, 18:09:12

Vorheriges Thema - Nächstes Thema

didi-fritz

Hallo,

ich erfasse von vielen meiner Geräte die Betriebszeiten mit dem Modul HourCounter.
zB:
Internals:
   CHANGED   
   DEF        s_Brenner_T2:switch..1 s_Brenner_T2:switch..0
   FUUID      5c435e5e-f33f-2a7c-a7c0-61d8ad64bcdbbc4d
   NAME       hc_Brenner
   NR         1574
   NTFY_ORDER 50-hc_Brenner
   STATE      T: 0.0 M: 21.4 Y: 409.0 __ last: T: 4.0 M: 5.3 Y: 104.2
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   READINGS:
     2019-11-18 00:00:01   appCountsPerDay 21
     2019-11-18 17:00:00   appCountsPerHour 0
     2019-11-18 17:00:00   appCountsPerHourTemp 0
     2019-11-01 00:00:01   appCountsPerMonth 24
     2019-11-17 22:27:22   appCountsPerMonthTemp 82
     2019-11-17 00:00:01   appCountsPerWeek 53
     2019-11-17 22:27:22   appCountsPerWeekTemp 21
     2019-01-01 00:00:02   appCountsPerYear 499
     2019-11-17 22:27:22   appCountsPerYearTemp 1976
     2019-11-18 00:00:01   appOpHoursPerDay 3.98472222222222
     2019-11-18 17:30:00   appOpHoursPerDayTemp 0
     2019-11-01 00:00:01   appOpHoursPerMonth 5.31527777777778
     2019-11-18 00:00:01   appOpHoursPerMonthTemp 21.4088888888889
     2019-11-17 00:00:01   appOpHoursPerWeek 14.3686111111111
     2019-11-18 00:00:01   appOpHoursPerWeekTemp 3.98472222222222
     2019-01-01 00:00:02   appOpHoursPerYear 104.194166666667
     2019-11-18 00:00:01   appOpHoursPerYearTemp 408.961944444443
     2019-11-18 00:00:01   appUtilization  16.7630733274905
     2019-11-18 17:30:00   appUtilizationTemp 0
     2019-11-18 17:30:00   appUtilizationTempOld 0
     2019-11-18 17:30:00   countsOverall   2475
     2019-11-18 17:30:00   countsPerDay    0
     2019-11-18 17:30:00   pauseTimeEdge   2122
     2019-11-18 17:30:00   pauseTimeIncrement 68105
     2019-11-18 17:30:00   pauseTimeOverall 28567759
     2019-11-18 17:30:00   pauseTimePerDay 62999
     2019-11-18 17:30:00   pulseTimeEdge   453
     2019-11-18 17:30:00   pulseTimeIncrement 453
     2019-11-18 17:30:00   pulseTimeOverall 1898844
     2019-11-18 17:30:00   pulseTimePerDay 0
     2019-11-18 17:30:00   state           0
     2019-11-17 22:34:55   tickChanged     954
     2019-11-18 00:00:01   tickDay         1
     2019-11-18 17:00:00   tickHour        31
     2019-11-17 10:03:35   tickMonth       0
     2019-11-18 17:30:00   tickUpdated     968
     2019-11-17 10:03:35   tickWeek        0
     2019-11-17 10:03:35   tickYear        0
     2019-11-18 17:30:00   value           0
.....


alle diese Logdaten sammle ich mit FileLog in einem File.
Internals:
   DEF        /opt/fhem/log/BetrStdHc-%Y.data hc_.*:appOpHoursPer(Day|Month|Year):.*
   FD         12
   FUUID      5c435e58-f33f-2a7c-b272-e26c638ba4c03226
   NAME       fl_hc
   NR         97
   NTFY_ORDER 50-fl_hc
   REGEXP     hc_.*:appOpHoursPer(Day|Month|Year):.*
   STATE      active
   TYPE       FileLog
   currentlogfile /opt/fhem/log/BetrStdHc-2019.data
   logfile    /opt/fhem/log/BetrStdHc-%Y.data
   READINGS:
     2019-11-18 00:00:02   linesInTheFile  7691
...

das dann so aussieht:
2019-11-18_00:00:02 hc_L_WZ_Stehlampe appOpHoursPerDay: 3.34222222222222
2019-11-18_00:00:02 hc_Sonne appOpHoursPerDay: 0.293055555555556
2019-11-18_00:00:02 hc_L_WZ_Tisch appOpHoursPerDay: 0.00611111111111111
2019-11-18_00:00:02 hc_DgVentilator appOpHoursPerDay: 0
2019-11-18_00:00:02 hc_Rain appOpHoursPerDay: 4.85694444444444
2019-11-18_00:00:02 hc_L_Sandra_S appOpHoursPerDay: 5.95416666666667
2019-11-18_00:00:02 hc_WzVentilator appOpHoursPerDay: 0
2019-11-18_00:00:02 hc_L_WZ_Kasten appOpHoursPerDay: 0
2019-11-18_00:00:02 hc_TvWz appOpHoursPerDay: 3.35527777777778
2019-11-18_00:00:01 hc_L_Kueche_Mitte appOpHoursPerDay: 0.282222222222222
2019-11-18_00:00:01 hc_L_WZ_Sofa appOpHoursPerDay: 0
2019-11-18_00:00:01 hc_L_Dach appOpHoursPerDay: 0.0286111111111111
2019-11-18_00:00:01 hc_L_Sandra_N appOpHoursPerDay: 5.95444444444444
2019-11-18_00:00:01 hc_L_Gartenhaus appOpHoursPerDay: 0.11
2019-11-18_00:00:01 hc_Brenner appOpHoursPerDay: 3.98472222222222
2019-11-18_00:00:01 hc_L_Kueche_Fenster appOpHoursPerDay: 0.0933333333333333
2019-11-18_00:00:01 hc_L_Vorraum appOpHoursPerDay: 0.870555555555556
2019-11-18_00:00:01 hc_L_Terrasse appOpHoursPerDay: 0.109722222222222
2019-11-18_00:00:00 hc_Internet appOpHoursPerDay: 23.9466666666667
2019-11-18_00:00:00 hc_IpCamPower appOpHoursPerDay: 0
2019-11-18_00:00:00 hc_L_Stiege appOpHoursPerDay: 0.0588888888888889
2019-11-18_00:00:00 hc_AD_Garage appOpHoursPerDay: 0.00361111111111111
2019-11-18_00:00:00 hc_AD_Eingangstuer appOpHoursPerDay: 0.141388888888889
2019-11-18_00:00:00 hc_TvSz appOpHoursPerDay: 0.673055555555556


Nun möchte ich diese Daten graphisch auswerten.

Dazu hab ich dieses gplot geschrieben:

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d"
set xlabel " "

set title '%K1% Betriebsstunden pro Tag'
set ylabel "std/tag"
set y2label "std/tag"
set grid xtics ytics
set ytics
set format y "%.1f"

#FileLog 4:%K1%.appOpHoursPerDay\x3a:0:

#     lines bars points histeps fsteps steps
plot  title '%K1%'           with fsteps ls l0fill


Wenn ich mir jetzt pro Betriebsstundenzähler (z.B: hc_Brenner) ein eigenes SVG-Device mit dem "attr plotReplace K1=<Devicenam>" (z.B: "attr plotReplace K1=hc_Brenner"), dann kann ich die Daten plotten.
Ich finde diesen Weg aber ziemlich umständlich und so bin ich auf den FileLog_logWrapper gestossen.

Wenn ich den Url http://x.x.x.x:8083/fhem/FileLog_logWrapper&dev=fl_hc&type=BetrStd&file=CURRENT&pos=zoom=week;off=0 erhalte ich einen leeren Plot mit den Beschriftungen "%K1%" . völlig klar - "%K1%" wird nicht ausgetauscht.

Währe es möglich, den  FileLog_logWrapper um den Parameter &plotReplace zu erweitern?
z.B: http://x.x.x.x:8083/fhem/FileLog_logWrapper&dev=fl_hc&type=BetrStd&file=CURRENT&pos=zoom=week;off=0&plotReplace=K1=hc_Brenner


gibt es einen anderen/besseren Weg, wo ich dynymisch auswerten kann?


danke
lg Didi



rudolfkoenig

ZitatWähre es möglich, den  FileLog_logWrapper um den Parameter &plotReplace zu erweitern?
War wohl weniger Aufwand, als ich am Anfang dachte.

Ich habe diese Funktion schon komplett verdraengt.
Wozu wird si sonst verwendet?

didi-fritz

ZitatWozu wird si sonst verwendet?
sie wird aufgerufen, wenn du beim Filelog bei attr logtype das gplot-file angibst und dann auf den Button klickst.

ZitatWar wohl weniger Aufwand, als ich am Anfang dachte.
heisst das, du hast den Parameter bereits hinzugefügt?  :D Danke!

didi-fritz

ich hab jetzt das heutige Update eingespielt.
funktioniert perfekt!!

danke Rudi

didi-fritz

Hallo Rudi,

eine Kleinigkeit ist mir noch aufgefallen: bei den Links der Zoom- und Vor/Zurück-Buttons fehlt der Parameter &plotReplace.

könntest du das bitte nocht einbauen?


Danke

rudolfkoenig

Ich weiss zwar (noch) nicht warum, aber bei mir wird plotReplace beim zoom/navigate mit FileLog_logWrapper aus dem URL _nicht_ entfernt.
Ich brauche eine genue Beschriebung zum Nachstellen, sonst kann ich es nicht sinnvoll fixen.

didi-fritz

ich hab einen  Hinweis gefunden: wenn &plotReplace an letzter Stelle angegeben wird, dann tritt der Fehler auf...

fehler:    /fhem/FileLog_logWrapper&dev=fl_hc&type=BetrStd&file=CURRENT&pos=zoom=year;off=0&plotReplace=K1=hc_Brenner
ok:    /fhem/FileLog_logWrapper&dev=fl_hc&type=BetrStd&file=CURRENT&plotReplace=K1=hc_Brenner&pos=zoom=year;off=0

rudolfkoenig

Das ist ja schoen.
Haettest Du ein Problem damit, es so aufzuzufen, dass es keinen Fehler provoziert wird?

didi-fritz

#8
ist kein Problem - habs bereits umgebaut

noch etwas ist mir aufgefallen.
wenn der SVGcache=1: Es werden beim Navigieren verschiedener "plotreplace"  die vorhin gecachten SVG (vom anderen plotReplace) gezeigt.


danke