FHEM Forum

FHEM => Sonstiges => Thema gestartet von: psycho160 am 20 März 2025, 08:22:27

Titel: Modulfunktion Undef bzw. Delete
Beitrag von: psycho160 am 20 März 2025, 08:22:27
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
Titel: Aw: Modulfunktion Undef bzw. Delete
Beitrag von: betateilchen am 20 März 2025, 08:28:09
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.



---
Titel: Aw: Modulfunktion Undef bzw. Delete
Beitrag von: psycho160 am 20 März 2025, 08:31:04
Zitat von: betateilchen am 20 März 2025, 08:28:09
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.



---

Nein aber das war die einzig größere änderung seitdem es nicht mehr funktioniert.. man weiß ja nie
Titel: Aw: Modulfunktion Undef bzw. Delete
Beitrag von: psycho160 am 20 März 2025, 08:33:03
aber danke für den Tipp, jez weiß ich schon wo das Problem liegt.
Titel: Aw: Modulfunktion Undef bzw. Delete
Beitrag von: betateilchen am 20 März 2025, 08:38:53
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;
}


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.

Titel: Aw: Modulfunktion Undef bzw. Delete
Beitrag von: psycho160 am 20 März 2025, 08:50:07
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!