Hallo Leute,
ich habe das irgendwo schon mal diskutiert und auch eine Antwort erhalten, finde es aber nicht wieder…
Es geht darum das gewisse Dinge nicht funktionieren wenn IP-Symcon noch im Startmodus ist und der Kernel noch nicht komplett hochgefahren. Die Instanzen laufen aber unbeirrt davon schon los, wenn dort nicht besondere Maßnahmen getroffen werden. Hier die Version die ich für korrekt halte:
In der Modul Funktion „Create“
parent::Create();
$this->RegisterMessage(0, IPS_KERNELSTARTED);
In der Modul-Funktion Apply Changes Programmteile ausschließen die nicht ausgeführt werden sollen wenn der Kernel noch nicht vollständig bereit ist
If (IPS_GetKernelRunlevel() == 10103) {
// Dinge die nur ausgeführt werden sollen wenn der Kernel läuft
}
In der MessageSink-Funktion
switch ($Message) {
case 10001:
// IPS_KERNELSTARTED
$this->ApplyChanges();
break;
}
Ich bitte um Bestätigung oder Korrektur weil ich bei meiner (schon fast historischen) Durchsicht aller meiner Module völlig verschiedene Vorgehensweisen vorgefunden habe.
Joachim