Startup Verhalten - richtiges initialisieren

Begonnen von roli, 23 Februar 2018, 20:26:19

Vorheriges Thema - Nächstes Thema

roli

Mittlerweile  ist mein Smarthome immer größer geworden und  hat  devices für I2C Signal  und Ausgänge ...

Jetzt geht es darum einen sauberen Start zu machen.
So wie ich sehe ist die Reihenfolge  wie folgt:

  * laden der Perl Module
  * Ausführung der   my_Utils_Initialize
  * laden der  fhem.cfg 
  * einspielen der  save Werte
  *  -- Event  global:Initialize

Nun verwende ich  PERL Funktionen, welche  z.b.    an   notify  Regeln  hängen, wenn eine  Signal  anliegt.
Sprich wenn ein Signal kommt, wird meine Applikation was tun,  sprich  fhem  objekte verändern, z.w. globale
PERL variablen setzen  oder  Ausgabe Signale für Relais schicken.

Nun aber das Problem der Initialisierung.    In  my_Utils_Initialize  kann ich nur  PERL variablem initialisieren -- 
da noch keine FHEM objekte geladen sind !
Werden jedoch später  save  Werte zurückgespielt, so werden meine  Signal notify  ausgelöst  -- und zwar noch bevor
ein  global:Initialize  kommt,  mit welchem ich bisher meine  Initialisierungen angestoßen habe .

Frage:
   + Wie initialisiere ich  PERL und Fhem, bevor  ein  notify  getriggered wird ?

Habe mich bis jetzt nur als workaround so beholfen:

  + alle  notify   an  Signal-ports   sind 1 gruppe  X  zugeordnet
  + nach den defines  mache ich eine     "set group=X inactive "
  + in meiner  Perl routine, welche durch   notify global:initialize    aufgerufen wird,
     mache ich am Ende ein freischalten der Signal-ports  ---     "set group=X active "

Geht soweit ist aber nicht schön.   Habe ich irgendwo was nicht verstanden oder kann es besser machen ?


FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag