hmlan: überwachung internals daten

Begonnen von frank, 07 Februar 2014, 19:22:39

Vorheriges Thema - Nächstes Thema

frank

hallo allerseits,

ich wollte mal meinen hmlan unter die lupe nehmen und möglichst viele infos loggen. die interessantesten (msgKeepAlive, msgLoadEst, msgParseDly) stehen leider in der internals rubrik, generieren also keine events um sie bequem in eine datei zu loggen. darum habe ich über attr userReadings mit dem code

traffic {InternalVal("HMLAN1","msgLoadEst","???")}

versucht, ein reading zu erzeugen, das die nötigen events generiert. leider nein.

ZitatuserReadings
A comma-separated list of definitions of user-defined readings. Each definition has the form:

    <reading>[:<trigger>] [<modifier>] { <perl code> }

After a single or bulk readings update, the user-defined readings are set by evaluating the perl code { <perl code> } for all definitions and setting the value of the respective user-defined reading <reading> to the result. If <trigger> is given, then all processing for this specific user reading is only done if one of the just updated "reading: value" combinations matches <trigger>, which is treated as a regexp.

nach dieser definition wird die userReadings-berechnung erst durch ein erneutes setzen eines echten readings getriggert. da die readings beim hmlan fast gar nicht erneuert werden, kann ich dieses vorgehen wohl vergessen. ich hatte erwartet, dass die erneuerung des internalsReading die berechnung triggern würde.

gibt es eine möglichkeit auf die änderung eines internalsReading ein event zu erzeugen?

über den umweg eines "at", das mir mit setreading die readings bereitstellt, wäre ich nicht so angetan, da mir so eventuell informationen verloren gehen können. ebenso wie beim "fremdgesteuerten" userReading.

ich habe auch schon mit addvaltrigger rumgespielt. aber nichts besonderes festgestellt.

über eure vorschläge wäre ich erfreut.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

die internal values erzeugen keine events und du kannst weder notifys noch user readings dran hängen.

wenn dich die werte wirklich interessieren bleibt nur ein at.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

martinp876

Hi,
was willst du eigentlich sehen?
Zitatund möglichst viele infos loggen.
rohmessages - fast alles andere wird statistisch erfasst

Gruss Martin


frank

hallo martin,

Zitatwas willst du eigentlich sehen?

1. über msgLoadEst: zu welchen zeiten gibt es maxima, um gegenzuwirken oder zu erkennen wer erzeugt warum soviel traffic. ausprobieren welche auswirkung hat die unterdrückung jedes x-ten climateEvents beim vtc/vvd. lohnt sich sowas und wenn wieviel.

2. erkenntnisse zu den hmlan-disconnects gewinnen.

3. gibt es irgendwelche zusammenhänge mit den systemverzögerungen, die zu den miss beim vtc führen?

....usw.

als mess- und regeltechniler will man halt sehen, was so los ist, um erkenntnisse daraus zu gewinnen.  :)

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

Hi Frank,

zu 1) siehe auch HMInfo msgStat

zu 2) die kannst du per notify bearbeiten.

zu 3) warum nicht apptime loggen - per notify bei einem miss?

Zitatals mess- und regeltechniler will man halt sehen...
klar - aber dann weisst du sicher auch, dass man sich auf details konzentrieren muss. Will man zu viel aufzeichnen  verändert man das system. Passiv messen ist nicht. Daher die Frage, was du eigentlich untersuchen willst.

Ansonsten musst du das gesamte System einfach mit den Entsprechenden Tools instrumentieren - da wird dann alles gelogt.

Gruss Martin

frank

hallo martin,

also eigentlich wollte ich mir nur mal deinen schönen statistikwert msgLoadEst loggen, um zu sehen, wie der sich so über den tag verhält. wäre für mich halt mal ganz interessant. darum hatte ich, um einen trick gebeten!

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

ich habe das jetzt mal mit at gemacht.

nach wenigen minuten schon die ersten erkenntnisse!
bei einem disconnect setzt martin seine traffic-statistik zurück.
oder steckt da sogar mehr dahinter???  ???

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

Hi Frank,

ich kann dir nicht folgen
msgStat wird nach disconnect nicht zurückgesetzt.
msgparsedelay wird nach disconnect nicht zurückgesetzt.
protoEvents wird nach disconnect nicht zurückgesetzt.

welche Statistiken haben wir noch in hmlan/usb ?

msgLoadEst ist keine Statistic sondern eine angenommene Belastung des HMLAN - sollte so beschrieben sein. Wenn dieser resetet ist sie Null. Bei einem Disconnect muss dies angenommen werden, sonst blockieren wir.

was sind die Erkenntnisse?

Gruss Martin


frank

hallo martin,

Zitatwas sind die Erkenntnisse?
ich hätte wohl explizit angeben sollen, dass sich der traffic meiner grafik der 1hour-komponente von msgLoadEst entspricht, sorry.
meine persönlichen erkenntnisse sind, dass msgLoadEst nach einem diconnect auf 0 gesetzt wird.

dies wird nun von dir bestätigt:
ZitatWenn dieser resetet ist sie Null. Bei einem Disconnect muss dies angenommen werden, sonst blockieren wir.

nach deiner beschreibung in messageHandling.txt war mir nicht klar, dass auf 0 zurückgesetzt wird.
ZitatHMLAN Sendebeschränkung:
   HMLAN hat eine maximale Sendekapazität je Stunde. Wird diese überschritten wird nichts mehr gesendet bis der Wert wieder unterschritten ist. Diese Kapazität wird insbesondere belastet wenn burst gesendet werden muss um ein Device aufzuwecken. Daher sollte man sich überlegen wann man conditional burst einsetzt.
   Die aktuelle Belastung eines HMLAN kann in ioDevice "msgLoadEst" eingesehen werden. Dies ist eine Hochrechnung. Der exakte Wert kann insbesondere nach disconnects und restarts von FHEM nicht errechnet sondern nur angenommen werden.

gruss frank


FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

Hi Frank,

ok, steht so nicht drin. Es ist aber eine Hochrechnung der erwarteten aktuellen Belastung des HMLAN. Nach einem Disconnect ist damit zu rechnen, dass es ein Reboot war. Stimmt nicht immer, kann ich aber nicht unterscheiden.
Die Statistic sollte dir eigentlich einen schönen Überblick geben - schon fertig aufbereitet.
Gruss Martin

rtv

Kleines Heads-Up, falls noch jemand die 1% Regel plottet und kürzlich oder zukünftig aktualisiert: msgLoadEst wurde durch msgLoadCurrent ersetzt, welches direkt die stündliche Last angibt. Die Berechnung im Job "a_hmlan_internals" (wie sie im Wiki dokumentiert ist) kann also wegfallen.

frank

aber leider ist noch kein reading entstanden, wodurch das at zum auslesen immer noch benötigt wird.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html