HMCCU Events kommen nicht in FHEM an oder sind stark verzögert

Begonnen von Init, 26 November 2018, 09:11:18

Vorheriges Thema - Nächstes Thema

Init

Hallo zusammen,

seit geraumer Zeit habe ich das Problem, dass die Events von Homematic teilweise garnicht oder stark verzögert in FHEM ankommen.

Als Beispiel hier ein Bewegungsmelder, welcher über einen HMW-IO-12-Sw7-DR kommoniziert.

Ich habe mal in Homematic und FHEM für das Gerät das Log eingeschaltet und habe mal beide Logs von gestern zwischen 18 - 19 hier eingefügt:

Homematic Log
18:57:48 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:57:58 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:58:08 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:58:20 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:58:33 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:58:53 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:59:03 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck lang
18:59:13 25.11.2018 HMW_HSK1_BM_Kueche Tastendruck kurz

FHEM Log
2018-11-25_18:59:32 HMW_HSK1_BM_Kueche pressed: pressed
2018-11-25_18:59:32 HMW_HSK1_BM_Kueche pressed: pressed

Sowohl CCU2 als auch FHEM sind auf dem aktuellen Stand.

Hier meine FHEM Config:

#################################################################################
# CCU2 Setting
#
define d_ccu HMCCU 192.168.0.12
attr d_ccu ccuflags procrpc
attr d_ccu rpcinterfaces BidCos-RF,BidCos-Wired,HmIP-RF
attr d_ccu rpcport 2001,2000,2010
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
attr d_ccu verbose 1

define d_rpcBidCos_RF HMCCURPCPROC 192.168.0.12 BidCos-RF
attr d_rpcBidCos_RF eventMap /rpcserver on:on/rpcserver off:off/
attr d_rpcBidCos_RF stateFormat rpcstate/state
attr d_rpcBidCos_RF verbose 2

define d_rpcBidCos_Wired HMCCURPCPROC 192.168.0.12 BidCos-Wired
attr d_rpcBidCos_Wired eventMap /rpcserver on:on/rpcserver off:off/
attr d_rpcBidCos_Wired stateFormat rpcstate/state
attr d_rpcBidCos_Wired verbose 2

define d_rpcHmIP_RF HMCCURPCPROC 192.168.0.12 HmIP-RF
attr d_rpcHmIP_RF eventMap /rpcserver on:on/rpcserver off:off/
attr d_rpcHmIP_RF stateFormat rpcstate/state
attr d_rpcHmIP_RF verbose 2



define HMW_HSK1_BM_Kueche HMCCUCHN LEQ1286184:2
attr HMW_HSK1_BM_Kueche IODev d_ccu
attr HMW_HSK1_BM_Kueche ccureadingname 2.PRESS_(SHORT|LONG):pressed
attr HMW_HSK1_BM_Kueche event-on-update-reading pressed
attr HMW_HSK1_BM_Kueche stateFormat { ReadingsTimestamp ("HMW_HSK1_BM_Kueche", "pressed", "n/a") }
attr HMW_HSK1_BM_Kueche substitute PRESS_SHORT,PRESS_LONG!(1|true):pressed
define FileLog_HMW_HSK1_BM_Kueche FileLog ./log/HMW_HSK1_BM_Kueche-%Y.log HMW_HSK1_BM_Kueche
attr FileLog_HMW_HSK1_BM_Kueche room FileLog,Garten,HMCCU

Die Systemzeit beider Systeme sind in Ordung und haben keine relevante Abweichung.

Mir gehen langsam die Ideen aus. Vorallem ist die Verzögerung nicht immer vorhanden.

Gemäß top sieht FHEM gut aus und hat genug Ressourcen zur Verfügung.

Es laufen immer 4 fhem Prozesse:
fhem       980  2.2  3.9 276268 161364 ?       S    Nov21 165:57 perl fhem.pl fhem.cfg
fhem      1040  0.1  2.7 232752 111984 ?       S    Nov21   7:19  \_ perl fhem.pl fhem.cfg
fhem      1041  0.0  2.7 232752 111984 ?       S    Nov21   5:57  \_ perl fhem.pl fhem.cfg
fhem      1042  0.0  2.7 232752 111984 ?       S    Nov21   5:56  \_ perl fhem.pl fhem.cfg


Hat jemand eine Idee, was ich prüfen kann?

Vorab vielen Dank
Marc

zap

Führe bitte mal folgenden Befehl aus:

get d_ccu rpcevents

Dabei kommt sowas in der Art raus:

Event statistics for server CB2001001013
Average event delay = 0.0473936330718165
...


Die Zahl hinter "Average event delay" ist die durchschnittliche Verarbeitungszeit von Events der CCU in FHEM. Also die Zeit vom Empfang der Events durch HMCCURPCPROC bis zur Aktualisierung der Readings durch HMCCU. Wir Du siehst, liegt diese Zeit in meinem Fall bei 0,047 Sekunden. Bedeutet: In FHEM bzw. in den HMCCU Modulen kommt es zu einer Verzögerung von 4-5 Hundertstel Sekunden. Wenn bei Dir ein ähnlich niederiger Wert steht, liegt die Ursache Deines Problems in der CCU. Wenn der Wert signifikant höher ist, müssen wir weiter bei HMCCU oder FHEM suchen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Init

Hallo zap,

ich bekomme dieses Ergebnis:

Event statistics for server CB2001146010
Average event delay = 0.598014957244233


Ist dieser Wert für dich signifikant höher?

VG
Marc

zap

Das ist zwar deutlich langsamer als bei mir, allerdings sind das laut deinen Logs 20 Sekunden. Die gehen dann also in der CCU verloren.

Ich habe leider kein wired, also keine Erfahrung damit.

Gibt es im Log der CCU irgendwelche Fehlermeldungen?
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Init

Im Log der CCU erhalte ich leider keine Fehler oder Warnmeldungen :-(

Probem bei dem Wert ist natürlich, dass dieser einen Durchschnittswert zeigt und manchmal die Übertragung ohne jede Verzögerung ankommt.

Als Beispiel wird ein Foto von der Haustür gemacht, wenn jemand schellt.
Meistens sieht man noch den Finger am Taster der Schelle, aber manchmal ist die Person schon lange wieder weg :-(

zap

könnte natürlich auch sein, dass zu bestimmten Zeiten FHEM mit anderen Dingen beschäftigt ist und quasi blockiert.
oder der Rechner an sich hat zeitweise ein CPU Problem oder noch schlimmer ein Speicher Problem.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Init

Hast du eine Idee, wie ich dem Problem auf die Schliche kommen könnte?

Hatte überlegt in der CCU bei jedem Event von "HMW_HSK1_BM_Kueche" ein ssh auf FHEM zu machen und dort die aktuelle CPU- und Speicherauslastung in ein Log zu schreiben. Zusätzlich evtl. noch die aktiven FHEM-Prozesse.

Kenne mich leider bislang nicht mit der CCU aus und wüsste nicht, wie ich da bei einem Event ein Script starten kann.

Vielleicht würde ich so den Übertäter identifizieren. Was meinst du?

frank

modul freezemon => fhem freezes erkennen.

modul sysmon => zb used_ram monitoren, wegen eventuellem speicherleck in fhem/perl.

event "global:CANNOT_FORK" überwachen => speicherproblem erkennen und fhem eventuell "durchstarten".
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

Init

Hallo Frank,

vielen Dank für die Info. Werde mich mal damit beschäftigen und werde hier ein schreiben, wenn ich neue Infos habe.

VG
Marc

buzzmain

Halli Init,
gibt es neue Erkenntnisse?
ich habe bei mir ein ähnliches Problem.

... And on the 8th Day God Created The Homeautomation.