10_CUL_HM.pm erzeugt ghost devices mit Anwendung von fhem delete

Begonnen von noansi, 03 Oktober 2026, 14:26:20

Vorheriges Thema - Nächstes Thema

noansi

Hallo Martin,

hier https://forum.fhem.de/index.php?topic=145558.0 habe ich auch auf das Problem aufmerksam gemacht.

Ab 10_CUL_HM.pm Zeile 1638
    elsif ($evnt =~ m/^(DELETED|RENAMED) (.*?) ?/){
      my ($cmd,$ent,$new) =split(" ",$evnt." ");
      # $ent no longer exist
      # $new is the renamed (if rename)
      if (($evnt eq "DELETED" && $defs{$ent}{TYPE} eq "CUL_HM")
wurde nicht beachtet, dass der gelöschtet device hash gelöscht ist und schon der Versuch
'$defs{$ent}{TYPE} eq "CUL_HM"'
erzeugt einen ghost hash auf den DELETED Trigger hin.
Und das nicht nur für HM devices, sondern generell bei Nutzung von 'delete' und geladenem CUL_HM!

Die HM-device spezifische Funktionalität kann in die UndefFn verlagert werden, denn diese wird von CommandDelete vorher mit noch existierendem device hash aufgerufen.

Insbesondere findet in der jetzigen Form auch kein 'remove' vom IO statt, wie es gedacht ist, als weiterer nicht funktionaler Effekt.

Und das primaryDevice wird nicht aktualisiert, weil die Abfrage scheitert. Umziehen darf das aber nicht, weil der device hash wirklich weg sein muss.