HM-CFG-LAN: Überwachung der 1%-Regel
Plot von Highload/Overload und msgLoadEst-Werten
Aufgrund der gesetzlichen 1%-Regel kann es gerade in der Entwicklungsphase passieren, dass man mittels Testroutinen in den Bereich der 1% Regel manövriert. Hierzu kann es von Nutzen sein, einen kurzen Überblick mittels Plot über die aktuelle Auslastung zu bekommen um eigene Codefehler von dem werksseitig eingebauten Sendestopp zu unterscheiden.
Dazu muss im Einzelnen wie folgt vorgegangen werden:
Um ein Plot erzeugen zu können wird ein Log benötigt.
Um ein Log erzeugen zu können wird ein Event benötigt, welches wir loggen können.
Um das Event loggen zu können wird ein CronJob benötigt, der dieses Event wiederholt im Abstand x bereitstellt.
Der CronJob wird mittels "at" im Zeitabstand x= 1 Minute als Reading bereitgestellt, welches den Wert von "msgLoadEst-1hour" erhält:
Man sollte aber auf alle Faelle beachten, dass man 60 Werte in der Stunde schreibt.
Sollte dies zu Performanceeinbußen auf Seiten des fhem-Trägersystems führen, so kann man den "+*00:01:00" - Wert entsprechend erhöhen.
fhem.cfg
define a_hmlan_internals at +*00:01:00 {\ my $trafficStr = InternalVal("HMLAN1","msgLoadEst","???");;\ my $trafficHour = $1 if($trafficStr =~ m/1hour:(.*)% 10min steps/);;\ fhem("setreading HMLAN1 hmTrfHour ".$trafficHour." %" );;\ }
Dadurch wird gleichzeitig ein Event ausgelöst, das nur noch geloggt werden muss:
fhem.cfg
define FileLog_Technik_IO FileLog %L/Technik_IO-%Y-%M.log global:.*|HMLAN1:cond:.*|HMLAN1:hmTrfHour:.* attr FileLog_Technik_IO logtype text attr FileLog_Technik_IO room Log
Die Definition des Plots erstreckt sich dabei wie folgt:
fhem.cfg
define SVG_FileLog_Technik_IO_1 SVG FileLog_Technik_IO:SVG_FileLog_Technik_IO_1:CURRENT attr SVG_FileLog_Technik_IO_1 alias 10. hmlan attr SVG_FileLog_Technik_IO_1 label "traffic: min [$data{min1}] - avg [$data{avg1}] - max [$data{max1}] - last [$data{currval1}] ----- [".localtime()."]" attr SVG_FileLog_Technik_IO_1 room 90_Technik
Abschließend muss nur noch die gnuplot-Datei selbst erstellt werden.
SVG_FileLog_Technik_IO_1.gplot
# Created by FHEM/98_SVG.pm, 2014-03-22 12:11:58 set terminal png transparent size <SIZE> crop set output '<OUT>.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title '<L1>' set ytics "init" 6,"err" 4,"wng" 3,"?" 1,"ok" 0 set y2tics set grid y2tics set ylabel "condition" set y2label "msgLoadEst % / hr" set yrange [0:7] #FileLog 4:HMLAN1.hmTrfHour\x3a:: #FileLog 4:HMLAN1.cond\x3a::$fld[3]=~"init"?6:$fld[3]=~"ERROR-Overload"?4:$fld[3]=~"Warning-HighLoad"?3:$fld[3]=~"ok"?0:1 #FileLog 3:global.*::$fld[2]=~"SHUTDOWN"?6:$fld[2]=~"INITIALIZED"?0:0 plot "<IN>" using 1:2 axes x1y2 title 'msgLoadEst' ls l6fill lw 1 with steps,\ "<IN>" using 1:2 axes x1y1 title 'condition' ls l0 lw 1 with steps,\ "<IN>" using 1:2 axes x1y1 title 'shutdown' ls l2fill lw 1 with steps
Die angehängte Datei zeigt als Beispiel den bereits gut ausgelasteten Fall von 80% bzw. 0,8%.
Ich hoffe, so wird es in Deinem Plot nicht aussehen! :-)
Links
--Sailor (Diskussion) 19:29, 25. Mär. 2014 (UTC)