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!
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.
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.
Sowas kann man in einer Funktion setzen, die man so aufruft:
define ntfy_init notify global:INITIALIZED { MeineInitialisierungsFunktion() }