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
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?
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!
ich hab jetzt das heutige Update eingespielt.
funktioniert perfekt!!
danke Rudi
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
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.
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
Das ist ja schoen.
Haettest Du ein Problem damit, es so aufzuzufen, dass es keinen Fehler provoziert wird?
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