FHEM Forum

FHEM => Automatisierung => Thema gestartet von: wolfgang99 am 05 Februar 2017, 13:57:45

Titel: 99_myUtils und $init_done
Beitrag von: wolfgang99 am 05 Februar 2017, 13:57:45
Hallo zusammen,

nach einem fhem-Neustart oder Shutdown/Restart ist beim Start der 99_myUtils die globale Variable $init_done=0, d.h. ReadingsVals stehen noch nicht zur Verfügung!

Eigentlich wundert mich das, das Einlesen der fhem.cfg sollte abgeschlossen sein und damit auch der Restore der letzten Werte. Kann man beeinflussen, dass die 99_myUtils erst dann von fhem.pl aufgerufen wird, wenn $init_done=1 ist.

Hintergrund ist, dass ich an divesen Stellen mit vielen Variablen arbeite, die (nur zu diesem Zeitpunkt) nicht richtig initialisiert werden.

Danke für Hinweise!
Titel: Antw:99_myUtils und $init_done
Beitrag von: rudolfkoenig am 05 Februar 2017, 14:37:04
ZitatKann man beeinflussen, dass die 99_myUtils erst dann von fhem.pl aufgerufen wird, wenn $init_done=1 ist.
Ja, indem man es nicht 99 nennt, und sie per notify auf global:INITIALIZED via reload (oder sonstwie) aktiviert.

Das Problem wundert mich, da in der 99_myUtils.pm eigentlch kein freier Code sondern Funktionen definiert sein sollten, die von at/notify/etc aufgerufen werden. Und sowas passiert erst nach dem fhem.cfg eingelesen wurde.
Titel: Antw:99_myUtils und $init_done
Beitrag von: wolfgang99 am 05 Februar 2017, 22:07:26
Danke!
Ich nutze globale Variable für Readings, die per Notify  Subs gesetzt werden, um an anderer Stelle schnell verfügbar sein sollen.
Damit das auch nach fhem restart (täglich nach Backup) funktioniert, muss ich beim Start etliche Readingsval absetzen, aber die stehen zu diesem Zeitpunkt noch nicht zur Verfügung.
Titel: Antw:99_myUtils und $init_done
Beitrag von: rudolfkoenig am 05 Februar 2017, 22:19:49
Sowas kann man in einer Funktion setzen, die man so aufruft:
define ntfy_init notify global:INITIALIZED { MeineInitialisierungsFunktion() }