FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: frank am 21 März 2014, 18:17:12

Titel: HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 21 März 2014, 18:17:12
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 21 März 2014, 19:15:18
ja, interessiert mich.
DeinAufbau ist also , dass HMLAN ausschliesslich ACKs senden muss - korrekt?

Ich werden einmal ein paar tests machen
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 21 März 2014, 20:09:05
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 21 März 2014, 20:22:13
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

Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 22 März 2014, 09:21:20
so - gerade eingecheckt, Version 5278 berücksichtigt die MessageLänge.

Immer noch nicht dabei: AES messages.
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 22 März 2014, 15:46:35
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.
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 22 März 2014, 17:10:17
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 22 März 2014, 18:37:03
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!  ;)
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 22 März 2014, 19:42:43
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 ;)
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 22 März 2014, 20:15:08
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

Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 22 März 2014, 20:41:00
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 22 März 2014, 20:56:06
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 23 März 2014, 11:42:13
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 23 März 2014, 14:11:22
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.
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 25 März 2014, 20:31:29
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 25 März 2014, 21:32:19
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 26 März 2014, 11:10:05
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: ph1959de am 26 März 2014, 11:41:55
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 26 März 2014, 11:51:54
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 27 März 2014, 15:23:05
Hallo Martin

Deine Vorschläge wurden soeben eingearbeitet.  8)

Gruß
   Sailor
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: frank am 27 März 2014, 17:57:12
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 27 März 2014, 20:32:56
Hi Frank,

da hast du recht - perl kann ja nicht wirklich rechnen ;) (oder hat keine sauberen variablen)
mein fehler

ist geändert

Danke
Martin
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 27 März 2014, 22:51:06
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: martinp876 am 27 März 2014, 22:54:16
nein, Wiki ist ok. das war nur ein Problem mit nicht korrent gesetzten Readings nach reboot
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 02 Oktober 2014, 23:23:12
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: networker am 03 Oktober 2014, 15:18:13
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: Sailor am 03 Oktober 2014, 20:07:52
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: networker am 03 Oktober 2014, 21:50:17
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
Titel: Antw:HMLAN: nennenswerte Abweichung zwischen msgLoadEst und Highload/Overload
Beitrag von: networker am 04 Oktober 2014, 15:49:01
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