Ich habe folgendes schon mal unterModules geschildert aber keine richtige Antwort bekommen.
Wenn man sich mal eine Weile die PHP Informationen anschaut fällt auf dass mehrmals in der Minute und in unregelmäßigen Abständen die Threads mit requre_once Aufrufen voll laufen. Am häufigsten sind es …bumaas…HM_Inventory und …Blind_controll Aufrufe.
Es gibt zwar keine Probleme damit aber ist schon ungewöhnlich zumal z.B. HM_Inventory nicht mal ausgeführt wird (Interval=0)
Vielleicht hat ja hier einer eine Erklärung.
10.05.2020, 10:51:15 | FlowHandler | Kann Daten nicht zur Instanz #55898 weiterleiten: <br />
<b>Warning</b>: require_once(C:\ProgramData\Symcon\modules.store\bumaas.1\HM_Inventory\module.php): failed to open stream: No such file or directory in <b>C:\Windows\System32-</b> on line <b>2</b><br />
<br />
<b>Fatal error</b>: require_once(): Failed opening required ‚C:\ProgramData\Symcon\modules.store\bumaas.1\HM_Inventory\module.php‘ (include_path=’.:C:\ProgramData\Symcon\scripts’) in <b>C:\Windows\System32-</b> on line <b>2</b><br />
Eher wohl weil es sich an den Datenfluss hängt.
Aber da sollte eigentlich nichts passieren, weil du ja gar keine ReceiveData Methode deklariert hast.
Außer das hier intern etwas geändert wurde und diese Methode immer in der ipsmodule Klasse existiert.
Dann reicht es wenn du einen ReceiveDataFilter setzt, welche nie zutrifft.
Michael
Wenn das Modul am Datenfluss hängt, wird ReceiveData aufgerufen. Egal, ob dein Modul diese überschreibt oder nicht. Da muss, wie Nall Chan schon sagte, einfach ein ungültiger ReceiveFilter gesetzt werden.
Verstehe. Ich lerne immer an der Doku und an Beispielen. Bislang ist mir noch nirgends ein ungültiger Receive Filter aufgefallen. Daher ist das neu für mich und vielleicht für andere auch.
Da werde ich wohl alle meine Module mal überprüfen müssen.
Ein Beispiel/Hinweis in der Doku wäre sicherlich nicht schlecht.
Würde es ein UnregisterMessage nach einem KR_READY auch tun, wenn man nur auf den KR_READY warten will?
Tatsächlich hat dies nichts miteinander zu tun. RegisterMessage ist der MessageSink. Der wird bei deinem Beispiel fast nie aufgerufen.
Das Problem ist ReceiveData und somit der Datenfluss der vom HMSocket befeuert wird. Der Filter limitiert die Datenpakete auf nur die, die du wirklich brauchst. Per default empfängt man aber alles.
Mir war das auch so nie bewusst.
Allerdings hatte ich schon immer einen Filter gesetzt.
Vielleicht auch, weil es mir damals beim testen aufgefallen ist und ich habe es nur vergessen. Teilweise brauche ich ja auch wirklich Daten vom Datenfluss.
Michael
Dann habe ich es jetzt erst verstanden. Seitdem sich das Modul direkt mit dem HMSocket verbindet, bekommt es auch die Daten Nachrichten.
Da es aber keine verarbeiten will, muss ein Filter gesetzt werden.
Seltsamerweise steht aber hinter „Absender“ der Hinweis „RunScript“. Bei anderen Moduln steht da „TimerEvent“. Vielleicht mache ich da noch etwas falsch.
Die RequireOnce Einträge kann ich mir wiederum nicht erklären. Ein Filter scheint da aber wohl nicht zu fehlen, denn ein testweise eingebautes ReceiveData wird nie aufgerufen…