Modulentwicklung: Nach Reload wird _Attr() nicht ausgeführt

Begonnen von mwllgr, 18 April 2019, 16:51:58

Vorheriges Thema - Nächstes Thema

mwllgr

Hallo,

bei meinem Modul (siehe hier) wird die _Attr()-Funktion nach einem Reload des Moduls nicht ausgeführt.
Heißt, wenn enableAdvancedMode auf 1 ist, sind nach einem reload alle erweiterten Sets nicht mehr vorhanden. Erst mit erneutem ausführen von "attr .. enableAdvancedMode 1" sind sie wieder da.

Hat da jemand einen Tipp für mich?
Danke!

rudolfkoenig

Zitatbei meinem Modul (siehe hier) wird die _Attr()-Funktion nach einem Reload des Moduls nicht ausgeführt.
Das wird bei anderen Modulen auch nicht.
Ich empfehle Modul spezifischen Daten in $modules{<ModulName>}{defptr}{...} oder $modules{<ModulName>}{ldata}{...} zu speichern, diese Werte werden beim reload gerettet und nach ausfuehren von Initialize restauriert.

justme1968

reload an sich ändert aber doch nichts an der bestehenden und gerade laufenden konfiguration. gesetzte attribute gehen nicht verloren.

der einzige code der ausgeführt wird ist die InitializeFn.

verfolge in deinem code mal ganz genau was passiert. ich tippe eher auf einen nicht beabsichtigten seiteneffekt. ich vermute mit einer etwas geänderten logik kann man dein problem umgehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

hab mir gerade deinen code angeschaut.

das problem sind die globalen variablen. die werden beim reload überschrieben. in deinem fall vor allem das %WKRCD4_sets.

ich würde solche variablen alle in den device hash stecken und beim define initialisieren (falls noch nicht vorhanden -> wegen modify) dann hat ein reload keinen einfluss mehr.

das hat dann auch noch den netten nebeneffekt das man mehrere instanzen mit unterschiedlicher enableAdvancedMode einstellung haben kann. auch wenn das bei deinem modul keine wahrscheinliche konfiguration ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

mwllgr