Hallo,
vielleicht kann mir jemand weiterhelfen, ich hab heut bei meinem Modul paar Dinge erweitert und im Zuge dessen ist mir aufgefallen, wenn ich das Device aus fhem lösche die Sub X_Undef bzw. X_Delete nicht aufgerufen werden.
Lt. DevelopmentModuleIntro (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_Delete) soll bei einem delete ja die Sub aufgerufen werden...
Das hat aber ziemlich sicher vor einiger Zeit noch funktioniert, oder könnte das mit der configDb zusammenhängen?
Konkret geht es um dieses Modul: https://git.wolfmajer.at/Public/FHEM-Tado (https://git.wolfmajer.at/Public/FHEM-Tado), aber die 2 genannten Subs sind ja fhem standard.
Irgend einen Tipp für mich?
lg
Zitat von: psycho160 am 20 März 2025, 08:22:27der könnte das mit der configDb zusammenhängen?
Und wenn es morgen regnet, ist bestimmt auch configDB schuld? Gehts noch?
Man sollte halt einigermaßen verstanden haben, wie ein "Modul" aufgebaut sein muss, damit es funktioniert.
xxx_Undef() und xxx_Delete() werden in der Initialisierung des genannten Moduls schlichtweg nicht definiert, deshalb weiß FHEM nichts davon, dass es diese Funktionen zu gegebener Zeit aufrufen soll.
---
Zitat von: betateilchen am 20 März 2025, 08:28:09Zitat von: psycho160 am 20 März 2025, 08:22:27der könnte das mit der configDb zusammenhängen?
Und wenn es morgen regnet, ist bestimmt auch configDB schuld? Gehts noch?
Man sollte halt einigermaßen verstanden haben, wie ein "Modul" aufgebaut sein muss, damit es funktioniert.
xxx_Undef() und xxx_Delete() werden in der Initialisierung des genannten Moduls schlichtweg nicht definiert, deshalb weiß FHEM nichts davon, dass es diese Funktionen zu gegebener Zeit aufrufen soll.
---
Nein aber das war die einzig größere änderung seitdem es nicht mehr funktioniert.. man weiß ja nie
aber danke für den Tipp, jez weiß ich schon wo das Problem liegt.
Zitat von: psycho160 am 20 März 2025, 08:31:04Nein aber das war die einzig größere änderung seitdem es nicht mehr funktioniert.. man weiß ja nie
Wenn das im code schon immer so aussieht wie aktuell, kann das noch nie funktioniert haben.
sub TadoAPI_Initialize {
my $hash = shift;
my $TYPE = "TadoAPI";
$hash->{DefFn} = \&TadoAPI_Define;
$hash->{InitFn} = \&TadoAPI_Init;
$hash->{SetFn} = \&TadoAPI_Set;
$hash->{GetFn} = \&TadoAPI_Get;
$hash->{AttrList} = ""
. "homeID "
. "mobileID "
. "showPosData:0,1 "
. "updateIntervall "
. "disable:0,1 "
. $readingFnAttributes;
return;
}
- xxx_Init kenne ich nicht - was soll das sein?
- xxx_Delete ist nicht definiert
- xxx_Undef ist nicht definiert
- den TYPE gibt man nicht explizit an. Die Variable wird ja in x_Initialize sowieso nirgends verwendet...
Die von Dir zitierten Guidelines in DevelopmentModuleIntro nochmal genau lesen, insbesondere den Teil zu xxx_Initialize(), könnte ziemlich sicher weiterhelfen.
ZitatFunktionsname
X_Initialize
Kurzbeschreibung
Initialisiert das Modul und gibt den Namen zusätzlicher Modulfunktionen bekannt, sowie modulspezifische Einstellungen. Wird direkt nach dem erfolgreichen Laden des Moduls durch fhem.pl aufgerufen.
Danke @betateilchen, haut schon hin.
Der Teil aus dem Modul war uralt, hab ich damals in den ersten Schritten irgendwo übernommen. Dann muss das undef mal rausgeflogen sein, keine ahnung, hab jetzt nach einiger zeit was angepasst und da fiel mir das problem erst jetzt auf...
Trotzdem Danke!