zweistufigen Module Registrierung (AssignIoPort)

Begonnen von Risiko, 10 April 2015, 20:59:24

Vorheriges Thema - Nächstes Thema

Risiko

Hallo Entwickler,

ich würde gern die Registrierung von Submodulen (üblicherweise mittels AssignIoPort) im Hauptmodul mit bekommen.
Also ich möchte im Hauptmodul sofort wissen welche Submodule mit welcher Definition registriert sind.

Gibt es dafür bereits eine Möglichkeit oder wäre dafür eine Erweiterung in beispielsweise in AssignIoPort notwendig?

Es wäre gut, wenn man nicht immer wieder neu "kontrollieren" muss - also nicht z.B. immer wieder das ".clientArray" durchgehen muss.

Danke.

Risiko


rudolfkoenig

Do koenntest dich an "global DEFINED" haengen, allerdings bin ich der Ansicht, dass man sowas nicht wissen soll, da geht naemlich die Trennung floeten.

Risiko

@Rudi.
Danke für den Tipp.
Du meinst sicherlich innerhalb von X_Notify.

Das Problem ist, dass ich im Hauptmodul sehr viele Messages rein bekomme, die dann im Dispatch keinen Abnehmer finden.
Aktuell habe ich im Hauptmodul dafür eine IgnoreList, die aber sehr lang werden kann.
Idee war jetzt, nur geparste Meldungen an Dispatch zu geben, wenn auch ein Abnehmer da ist.

Aber du hast recht, die strikte Trennung geht dabei verloren.

Risiko.

rudolfkoenig

ZitatDas Problem ist, dass ich im Hauptmodul sehr viele Messages rein bekomme, die dann im Dispatch keinen Abnehmer finden.

Eine moegliche Loesung ist alle benoetigten Abnehmer anzulegen, und diese mit ignore zum Stillschweigen zu bringen.
Alternativ in deinem Modul manuell definieren (via Attribut oder define Parameter), an welche Daten man interessiert ist.

Risiko

Danke für die Hinweise\Ideen.

Zitat von: rudolfkoenig am 12 April 2015, 12:30:43
Eine moegliche Loesung ist alle benoetigten Abnehmer anzulegen, und diese mit ignore zum Stillschweigen zu bringen.
Das geht leider nicht. Es sind einfach zu viele Mögliche.

Zitat von: rudolfkoenig am 12 April 2015, 12:30:43
Alternativ in deinem Modul manuell definieren (via Attribut oder define Parameter), an welche Daten man interessiert ist.
Das sind implizit eben genau die Daten, für die Submodule definiert sind. Manuell --> dann müsste der User an zwei Stellen das angeben.
Ich rede übrigens über diese Module: http://forum.fhem.de/index.php/topic,34632.0.html

Ich denke, ich werde es mal über das global DEFINE probieren.  Entsprechend Architektur ist es ja zulässig, wenn auch wegen der Trennung evtl. nicht die optimalste Variante.

Danke.

Risiko.

Risiko

Hallo Rudi,
Zitat von: rudolfkoenig am 11 April 2015, 08:45:45
Do koenntest dich an "global DEFINED" haengen ....

dass geht leider nicht. Der Trigger wird erst nach dem fhem initialisiert ist aufgerufen.

DoTrigger("global", "DEFINED $name", 1) if($init_done);

Somit bekomme ich im Modul nur Notify für global DEFINED im laufenden Betrieb. Für alle über cfg-Datei definierten Devices eben nicht.

Risiko. 

justme1968

du hängst dich an global:INITIALIZED und gehst ein mal alle devices durch und über global:DEFINED erfährst du was zur laufzeit noch dazu kommt.

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

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

Risiko

Danke Andre.
Hätte man auch allein drauf kommen können. ::)

Risiko