hallo martin,
vielleicht interessiert dich der folgende fall von regelmässigen highload/overload ereignissen mit den dabei aufgezeichneten msgLoadEst-werten. danach liegt msgLoadEst im schnitt 20-35 % zu hoch. siehe angehängte bilder. ausgelöst durch folgende regelmässige messages meines geflashten sw1pbu. ansonsten sollte msgloadest bei mir zwischen 8-11% liegen.
falls du deine berechnung etwas modifizieren möchtest, könnte ich noch ein paar versuche starten.
2014.03.21 08:21:58.421 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B2F33 d:FF r:FFCC m:51 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:00.527 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B376D d:FF r:FFCD m:52 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:01.229 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B3A2B d:FF r:FFCD m:53 805E 266EA5 123ABC 00000000000000D6000000
2014.03.21 08:22:02.463 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B3EFE d:FF r:FFCC m:54 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:03.688 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B43C7 d:FF r:FFCD m:55 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:04.948 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B48B3 d:FF r:FFCD m:56 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:07.368 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B5227 d:FF r:FFCD m:57 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:09.145 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B5919 d:FF r:FFCC m:58 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:11.269 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B6165 d:FF r:FFCD m:59 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:12.566 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B6676 d:FF r:FFCC m:5A A410 266EA5 123ABC 0604000000
2014.03.21 08:22:14.280 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B6D28 d:FF r:FFCD m:5B A410 266EA5 123ABC 0604000000
2014.03.21 08:22:15.989 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B73D5 d:FF r:FFCC m:5C A410 266EA5 123ABC 0604000000
2014.03.21 08:22:17.947 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B7B7C d:FF r:FFCC m:5D A410 266EA5 123ABC 0604000000
2014.03.21 08:22:19.529 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B81AA d:FF r:FFCC m:5E A410 266EA5 123ABC 0604000000
2014.03.21 08:22:22.474 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B8D2A d:FF r:FFCD m:5F A410 266EA5 123ABC 0604000000
2014.03.21 08:22:24.322 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B9463 d:FF r:FFCD m:60 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:25.999 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081B9AF1 d:FF r:FFCD m:61 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:27.700 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081BA195 d:FF r:FFCD m:62 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:29.675 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081BA94E d:FF r:FFCD m:63 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:30.968 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081BAE59 d:FF r:FFCD m:64 805E 266EA5 123ABC 00000000000000EC000000
2014.03.21 08:22:32.782 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081BB572 d:FF r:FFCD m:65 A410 266EA5 123ABC 0604000000
2014.03.21 08:22:34.752 0: HMLAN_Parse: HMLAN1 R:E266EA5 stat:0000 t:081BBD24 d:FF r:FFCD m:66 A410 266EA5 123ABC 0604000000
gruss frank
ja, interessiert mich.
DeinAufbau ist also , dass HMLAN ausschliesslich ACKs senden muss - korrekt?
Ich werden einmal ein paar tests machen
ZitatDeinAufbau ist also , dass HMLAN ausschliesslich ACKs senden muss - korrekt?
nein.
mein normaler hmlan-traffic beruht hauptsächlich auf 5x virtueller tc + 4x virtueller vd. die erzeugen einen msgloadest von 8-11% (min,max), wenn die vd konstant sind.
die modulation der max werte aus den bildern entpricht meinem normalem verlauf.
die könnte ich doch aber mal abstellen über nacht. am besten auf ignore setzen oder?
die vvd kann ich auf dummy setzen, dann kommen dort auch ack´s.
gruss frank
Hallo Frank,
ich denke mir ist die Abweichung klar. Es ist die Länge der Messages. In deinem Log sehe ich nur ACKs, die sind sehr kurz. Im Mittel ist das nicht realistisch... denke ich.
Eine genauere Berechnung müsste die Länge mit einbeziehen. werde ich einmal testen, wie man das hin bekommt.
Übrigens ignorieren ich auch die AES message.
Nicht berücksichtigen kann man gelegentliche wiederholer.... nur wenn es gescheitert ist, kann ich es rechnen.
Gruss Martin
so - gerade eingecheckt, Version 5278 berücksichtigt die MessageLänge.
Immer noch nicht dabei: AES messages.
hallo martin,
ich habe die version mal getestet. anbei der plot.
über stunden hatte ich wie gewohnt ca 10% traffic. dann um 11.25 das update eingespielt und mit shutdown restart gestartet. um eine markierung zu haben noch den blauen peak bei shutdown eingebaut. also ein zweiten restart.
gegeüber vorher sind keine weiteren aktionen dazugekommen.
eigentlich hätte ich sogar eine reduzierung erwartet, da der hmlan meinen tc ebenfalls meistens mit kurzen ack antwortet. nun das. würde ich nun noch das msgreduce der virtuellen tc auf null stellen, müssten sich werte von über 150% ergeben.
irgendwas ist faul.
gruss frank
ps: gab es nicht früher mal ein "HMLAN:cond: init" nach restart. im augenblick kann man über condition keinen shutdown restart erkennen.
Hallo Frank,
Ich habe eine Bitte:
Magst uns deine kompletten Codeschnippsel ueberlassen, die letztendlich zu dem plot hinsichtlich der prozentualen Sendeauslastung des HMLANs gefuehrt hat. (1% - Regel Ueberwachung)
Ich habe auch deine Beitraege unter: http://forum.fhem.de/index.php/topic,19892.msg135026.html#msg135026 zwar gelesen, aber irgendwie werde ich daraus nicht schlau.
Quasi: Was brauche ich in der fhem.cfg, myUtils.pm und .plot - Datei um zu den plot zu kommen den du oben in deinem Beitrag gepostet hast.
Vielleicht ist das einen WIKI - EIntrag Wert.
Da ich in Kuerze in meinem Haus 12 Heizkoerpentile + 10 Thermostate + 10 Fenstersensoren + 9 Rauchmelder installieren moechte, wuerde ich gerne auf einen Blick sehen, wann es eng wird.
Habe heute den halben Tag damit verbracht dahingehend eine Loesung zu finden.
Nicht einmal das modul "HMinfo" hat mich weiter gebracht.
Danke fuer Deine Hilfe und wuensche Dir noch ein schoenes Wochenende falls wir uns erst ab Mo lesen
Sailor
Gesendet von meinem iPhone mit Tapatalk
hallo sailor,
eigentlich ganz einfach.
ich schreibe mit einem at jede minute beim hmlan ein reading, welches den wert von msgLoadEst-1hour erhält:
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 du nur noch loggen musst. meine fileLog definition ist:
define FileLog_Technik_IO FileLog %L/Technik_IO-%Y.log global:.*|HMLAN1:cond:.*|HMLAN1:hmTrfHour:.*
attr FileLog_Technik_IO logtype text
attr FileLog_Technik_IO room Log
die plot definition:
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
und nun noch das gnuplotfile
# 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
dein wunschsystem sollte dem hmlan aber keine probleme bereiten. bei der 1%-regel sind ja nur die vom hmlan gesendeten messages von bedeutung. solange er nur lauscht, um eventuell logs zu erstellen und nicht permanent etwas zum steuern oder regeln hat, also kein problem. die besagten devices werden sich ja im normalfall direkt unterhalten, ohne hmlan.
denk dran, dass du jede minute ein event auslöst, eventuell verringern. ansonsten viel spass.
gruss frank
ps:
ZitatVielleicht ist das einen WIKI - EIntrag Wert.
meine zustimmung hast du! ;)
ja da hat doch eine Klammer gefehlt.
Da sind ACKs als Burst gezählt worden - das gibt eine 20fachen Wert.... dummer Fehler.
Ist korrigiert - hoffenltlich stimmt es jetzt ;)
also der 'last-minute-bug' scheint draussen zu sein...
Aktuell löst der Alarm 1% zu früh aus... zumindest in meinem Fall.
Ich hoffe dass es jetzt passt - für den Normalbetrieb.
Nicht berücksichtigt werden
- wiederholen von Messages durch HMLAN, wenn es erfolgreich ist (wenn es 3-mal fehl schlägt finde ich es)
=> sollte ein geringer Anteil sein
- AES mesages, die HMLAN selbst sendet
=> könnte erheblich sein. Die kann man fangen und berechnen - habe es nur noch nicht.
die üblichen Einschränkungen, bezüglich neustart/vermuteter Neustart gelten weiter.
Init war nie weg kommt immer noch als Condition. Nach Overload kommt kein Init, nach reboot oder disconnect sollte es kommen
Gruss Martin
hallo martin,
nach 25 minuten laufzeit sieht es gut aus. morgen werde ich den hmlan dann ein bisschen quälen.
wegen condition init:
in fhem.log gibt es einen eintrag "new condition init" oder so. ich bekomme aber kein event cond:init nach reboot. nur cond:ok. ich bin mir relativ sicher, dass das früher mal da war. also init gefolgt von ok nach reboot.
gruss frank
Zitat.... dummer Fehler.
mein ausbilder hat mir mal unter vier augen gesagt:
wer viel macht, macht viele fehler.
wer nichts macht, macht keine fehler.
mit dem 2. satz meinte er sich selber.
du hast bestimmt noch viele fehler gut. ;)
gruss frank
hi martin,
echt klasse! punktlandung. :)
2014-03-23_11:18:09 HMLAN1 hmTrfHour: 87 %
2014-03-23_11:19:09 HMLAN1 hmTrfHour: 89 %
2014-03-23_11:20:09 HMLAN1 hmTrfHour: 88 %
2014-03-23_11:20:53 HMLAN1 cond: Warning-HighLoad
2014-03-23_11:21:09 HMLAN1 hmTrfHour: 90 %
2014-03-23_11:22:09 HMLAN1 hmTrfHour: 91 %
2014-03-23_11:23:09 HMLAN1 hmTrfHour: 93 %
2014-03-23_11:24:09 HMLAN1 hmTrfHour: 95 %
2014-03-23_11:25:09 HMLAN1 hmTrfHour: 97 %
2014-03-23_11:26:09 HMLAN1 hmTrfHour: 99 %
2014-03-23_11:26:17 HMLAN1 cond: ERROR-Overload
2014-03-23_11:27:09 HMLAN1 hmTrfHour: 102 %
2014-03-23_11:28:09 HMLAN1 hmTrfHour: 105 %
gruss frank
zu beachten sind natürlich
- unterschiedliche messagelängen
- burst-access
- wakeup (ich denke da gibt es keinen Unterschied)
- lacyConfig(ich denke da gibt es keinen Unterschied)
und ui - wie komme ich über 100%..... das könnte noch ein Fehler sein. Zählen muss schon über 100 gehen, aber nach ErrorOverload sollte nicht mehr gesendet werden.... dann kann der Level auch nicht mehr steigen.
Hallo zusammen:
Et voila: Mein allererster WIKI - Beitrag:
http://www.fhemwiki.de/wiki/HM-CFG-LAN:_%C3%9Cberwachung_der_1%25-Regel
Mit der Bitte um konstruktive Kritik 8)
Sailor
hallo sailor,
dann hat es wohl bei dir auch geklappt.
du könntest den wert msgloadest vielleicht näher beschreiben. ist ja nur gerechnet und nicht der echte wert des hmlan.
siehe:
http://forum.fhem.de/index.php?action=dlattach;topic=15921.0;attach=7780 (http://forum.fhem.de/index.php?action=dlattach;topic=15921.0;attach=7780)
http://fhem.de/commandref.html#HMLAN (http://fhem.de/commandref.html#HMLAN)
und das, was martin in diesem thread über nicht in die berechnung eingehende messages geschrieben hat.
gruss frank
Hallo Frank
vielen Dank fuer den Hinweis! Habe ich soeben umgesetzt!
Sogar das Inhaltsverzeichnis ist wie von Geisterhand entstanden! 8)
@martinp876: Magst Du Dir das Kapitel 2 bzw 2.1 einmal durchlesen und mir dagen, ob ich dies richtig wiedergegeben habe?
Vielen Dank
Sailor
Zitat von: Sailor am 26 März 2014, 11:10:05
Sogar das Inhaltsverzeichnis ist wie von Geisterhand entstanden! 8)
Nur zur Erläuterung: das macht die Wiki-Engine ab einer bestimmten Anzahl "Überschriften".
Gruß, Peter
Hi,
hier ein paar kommentare
typo
um direkte Readings des HMLANs uns sind auf alle
um direkte Readings des HMLANs und sind auf alle
Korrektur
noch nicht für die AES Verschlüsselung welche die Länge des Telegrams darüber hinaus zu verändern vermag.
noch nicht für die AES Verschlüsselung welche weitere Telegramme sendet, die aktuell nicht gezählt werden.
Liste der Einschränkungen
- nach restart fängt FHEM bei 0 an zu zählen. Da HMLAN aber nicht reseted hat kann bereits eineeine messageload vorliegen
- FHEM kann nicht zwischen reboot und disconnect der HMLAN unterscheiden. Ein disconnect wird als reboot gewertet.
- automatische Wiederholungen es HMLAN werden nicht erkannt und nicht berücksichtigt.
Evtl. könntest du msgLoad gleich einmal erklären
msgLoadEst 1hour:44% 10min steps: 12/2/7/23/0/0
HMLAN halt sich an den Standard, nach dem eine maximale Sendelast je Stunde zulässig ist. Sollte diese überschritten werden stellt HMLAN das senden ein, empfängt aber weiter.
msgLoadEst 1hour:44% 10min steps: 12/2/7/23/0/0
besagt, dass in der aktuellen Stunde 44% der Sendekapazität verbraucht sind. Im aktuellen 10 min Rahmen sind es 12%, in den 10min davor waren es 2%, davor 7% und davor 23%.
Dieser Zähler ist im HMLAN - FHEM kann es nicht rücksetzen. Nur durch Warten oder einen reset den HMLAN ist ein rückstellen möglich.
Gruss Martin
Hallo Martin
Deine Vorschläge wurden soeben eingearbeitet. 8)
Gruß
Sailor
hallo martin,
ZitatInit war nie weg kommt immer noch als Condition. Nach Overload kommt kein Init, nach reboot oder disconnect sollte es kommen
also, mit deinem code in 00_hmlan in zeile 764
HMLAN_condUpdate($hash,0xff);
bekomme ich nur folgende events nach reboot
2014-03-27_17:26:37 global SHUTDOWN
2014-03-27_17:27:10 global INITIALIZED
2014-03-27_17:27:12 HMLAN1 cond: ok
ändern des codes in
HMLAN_condUpdate($hash,255);
bringt wieder folgende events nach reboot
2014-03-27_17:33:29 global SHUTDOWN
2014-03-27_17:34:02 global INITIALIZED
2014-03-27_17:34:03 HMLAN1 cond: disconnected
2014-03-27_17:34:03 HMLAN1 cond: init
2014-03-27_17:34:03 HMLAN1 cond: ok
gruss frank
Hi Frank,
da hast du recht - perl kann ja nicht wirklich rechnen ;) (oder hat keine sauberen variablen)
mein fehler
ist geändert
Danke
Martin
Hi Martin
hoere ich da einen Update-Eintrag fuers WIKI raus? ;D
Nenn mir nur die Versionsnummer und einen netten kleinen Satz dazu und ich arbeite es ein.
Gruss
Sailor
nein, Wiki ist ok. das war nur ein Problem mit nicht korrent gesetzten Readings nach reboot
Hallo Martin
ich bin mit meinem fhem - System auf den RasPi umgestiegen und bei der Gelegenheit auch auf dbLog. 8)
Bedauerlicherweise gibt der Plot seit dem nichts mehr aus und ich kann beim besten Willen den Wurm nicht finden. :o
Bei der Gelegenheit wuerde ich den Wiki-Eintrag fuer die 1%-Regel gleich mit auf den neusten Stand bringen.
Sofern es denn irgendwie hinkriege... ;D
fhem.cfg
###START########## Dummy for indication of message load #######################################################START####
define HmlanIndicator dummy
attr HmlanIndicator alias HMLAN Radio Load
attr HmlanIndicator group fhem on Raspberry Pi
attr HmlanIndicator room System,System_Short
####END########### Dummy for indication of message load ########################################################END#####
###START########## Initialize CronJob to write "msgLoadEst-1hour"-reading to HMLAN1 ###########################START####
define a_hmlan_internals at +*00:01:00 {\
my $trafficStr = InternalVal("HMLAN1","msgLoadEst",0);;\
my $trafficHour = $1 if($trafficStr =~ m/1hour:(.*)% 10min steps/);;\
fhem("setreading HMLAN1 hmTrfHour ".$trafficHour." %" );;\
fhem("set HmlanIndicator $trafficStr");;\
}
# my $trafficStr = InternalVal("HMLAN1","msgLoadEst","???");;\ #Original version suspected to cause error message "Argument "???" isn't numeric in numeriq eq (==)"
####END########### Initialize CronJob to write "msgLoadEst-1hour"-reading to HMLAN1 ############################END#####
###START########## Define plot #################################################################################START###
define SVG_DB_HMLAN1 SVG myDbLog:HMLAN1:CURRENT
attr SVG_DB_HMLAN1 alias 10. hmlan
attr SVG_DB_HMLAN1 group fhem on Raspberry Pi
attr SVG_DB_HMLAN1 label "HMLAN1 traffic: min [$data{min1}] - avg [$data{avg1}] - max [$data{max1}] - last [$data{currval1}] ----- [".localtime()."]"
attr SVG_DB_HMLAN1 room System
#attr SVG_DB_HMLAN1 plotsize 300,80
####END########### Define plot ##################################################################################END####
plot_HMLAN1.gplot
# Created by FHEM/98_SVG.pm, 2014-04-28 21:48:21
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]
set y2range [0:100]
#DbLog <SPEC1>:HMLAN1:hmTrfHour::
#DbLog <SPEC1>:HMLAN1:cond\x3a::$fld[3]=~"init"?6:$fld[3]=~"ERROR-Overload"?4:$fld[3]=~"Warning-HighLoad"?3:$fld[3]=~"ok"?0:1
#DbLog <SPEC1>:HMLAN1: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
Danke
Gruss
Sailor
Was mir beim drüberschauen so aufgefallen ist folgendes:
Du hast bei der Definition keine plotfunction (attr SVG_DB_HMLAN1 plotfunction deinDevice) definiert
Entweder du fügst das Attribut plotfunction hinzu oder du ersetzt <SPEC1> durch deinDevice
PS: ich glaub CURRENT ist durch HISTORY zu ersetzten.
lG, Michael
Hallo networker
Oh Mann, das wars.
Mein Device stand schon im Plotfile aber ich habe vergessen die Zeichenfolge <SPEC1>: zu loeschen.
Ganz gemaess dem Zitat: "Ich bin immer wieder ueberrascht: Kaum macht man es richtig, funktioniert es!" 8)
Danke!
Gruss
Sailor
Hallo Sailor
Kannst du einmal überprüfen ob bei dir alle 3 Anzeigen (msgLoadEst, condition, shutdown) funktionieren?
Ich bekomme nur Werte für msgLoadEst angezeigt.
Das sind meine Daten aus der DB
2014-10-03 16:26:20|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 16:26:23|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 16:26:23|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 16:26:24|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 16:26:30|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 16:26:33|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 16:29:03|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 16:29:08|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 16:30:28|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 16:31:22|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 17:00:28|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:12:00|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:17:37|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:19:26|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:29:09|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:38:49|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 17:52:02|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 19:00:10|HMLAN1|HMLAN|cond: Warning-HighLoad|cond|Warning-HighLoad|
2014-10-03 19:01:02|HMLAN1|HMLAN|cond: ERROR-Overload|cond|ERROR-Overload|
2014-10-03 20:00:12|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 20:45:50|HMLAN1|HMLAN|cond: timeout|cond|timeout|
2014-10-03 20:45:50|HMLAN1|HMLAN|cond: disconnected|cond|disconnected|
2014-10-03 20:46:56|HMLAN1|HMLAN|cond: init|cond|init|
2014-10-03 20:46:56|HMLAN1|HMLAN|cond: ok|cond|ok|
2014-10-03 15:00:07|HMLAN1|HMLAN|hmTrfHour: 0 %|hmTrfHour|0 %|
2014-10-03 15:01:07|HMLAN1|HMLAN|hmTrfHour: 0 %|hmTrfHour|0 %|
2014-10-03 15:02:07|HMLAN1|HMLAN|hmTrfHour: 0 %|hmTrfHour|0 %|
Irgendwie greift die Umsetzung der cond - Werte auf die Zahlen bei mir nicht.
#DbLog HMLAN1:cond\x3a::$fld[3]=~"init"?6:$fld[3]=~"ERROR-Overload"?4:$fld[3]=~"Warning-HighLoad"?3:$fld[3]=~"ok"?0:1
#DbLog HMLAN1:global.*::$fld[2]=~"SHUTDOWN"?6:$fld[2]=~"INITIALIZED"?0:0
lG, Michael
OK eine Nacht darüber geschlafen und das ist dabei herausgekommen:
FHEM.cfg
# Dummy fuer Sendeauslastung
define HmlanIndicator dummy
attr HmlanIndicator alias HMLAN Radio Load
attr HmlanIndicator group fhem on Raspberry Pi
attr HmlanIndicator room 9.99_Technik,9.98_Technik_Short
#CronJob um Sendestatistik in Reading und Dummy zu schreiben
define a_hmlan_internals at +*00:01:00 {\
my $trafficStr = InternalVal("HMLAN1","msgLoadEst",0);;\
my $trafficHour = $1 if($trafficStr =~ m/1hour:(.*)% 10min steps/);;\
fhem("setreading HMLAN1 hmTrfHour ".$trafficHour." %");;\
fhem("set HmlanIndicator $trafficStr");;\
}
#attr a_hmlan_internals verbose 5
#HMLAN Sendestatistik und Statusanzeige
define SVG_DB_HMLAN1 SVG myDbLog:HMLAN1:HISTORY
attr SVG_DB_HMLAN1 alias HMLAN
attr SVG_DB_HMLAN1 group fhem on Raspberry Pi
attr SVG_DB_HMLAN1 label "HMLAN1 traffic: min [$data{min1}] - avg [$data{avg1}] - max [$data{max1}] - last [$data{currval1}] ----- [".localtime()."]"
attr SVG_DB_HMLAN1 room 9.99_Technik
attr SVG_DB_HMLAN1 plotsize 840,300
#attr SVG_DB_HMLAN1 verbose 5
HMLAN1.gplot
# Created by FHEM/98_SVG.pm, 2014-04-28 21:48:21
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 "shtdwn" 10,"err" 9,"warn" 8,"init" 6,"disc." 5,"timout" 2,"?" 1,"ok" 0
set y2tics("shutdown" 8, "initialed" 0)
set grid ytics
set ylabel "Betriebsstatus"
set y2label "HMLAN Sendestatus %/H"
set yrange [0:12]
set y2range [0:120]
#DbLog HMLAN1:hmTrfHour::
#DbLog HMLAN1:cond:::$val=~s/(init|disconnected|timeout|ERROR-Overload|Warning-HighLoad|ok).*/$1eq"init"?6:$1eq"disconnected"?5:$1eq"timeout"?2:$1eq"ERROR-Overload"?9:$1eq"Warning-HighLoad"?8:$1eq"ok"?0:1/eg
#DbLog global:state:::$val=~s/(SHUTDOWN|INITIALIZED).*/$1eq"SHUTDOWN"?10:0/eg
plot \
using 1:2 axes x1y2 title 'Sendestatistik' ls l6fill lw 1 with steps,\
using 1:2 axes x1y1 title 'Status' ls l0fill lw 1 with steps,\
using 1:2 axes x1y1 title 'FHEM Shutdown' ls l3 lw 1 with steps
leider noch nicht ganz perfekt, denn im Log kommt noch folgendes wenn die Grafik aufgerufen wird.
Argument "REREADCFG" isn't numeric in sprintf at /opt/fhem/FHEM/98_SVG.pm line 1118.
Argument "DEFINED" isn't numeric in numeric gt (>) at /opt/fhem/FHEM/98_SVG.pm line 1169.
Argument "REREADCFG" isn't numeric in numeric gt (>) at /opt/fhem/FHEM/98_SVG.pm line 1169.
Argument "REREADCFG" isn't numeric in numeric gt (>) at /opt/fhem/FHEM/98_SVG.pm line 1169.
Argument "SAVE" isn't numeric in numeric gt (>) at /opt/fhem/FHEM/98_SVG.pm line 1169.
Argument "REREADCFG" isn't numeric in numeric gt (>) at /opt/fhem/FHEM/98_SVG.pm line 1169.
Argument "DEFINED" isn't numeric in subtraction (-) at /opt/fhem/FHEM/98_SVG.pm line 1468.
möglicherweise hilft's jemanden
lG, Michael