FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: grappa24 am 20 August 2021, 08:24:34

Titel: [Erledigt] CUL_HM renamed a lot
Beitrag von: grappa24 am 20 August 2021, 08:24:34
Muss mich wohl mal mit dem ActionDetector befassen  ???

Gibts den schon "immer" oder wurde der nach einem der letzten updates automatisch angelegt?

Auf jeden Fall meldet der sich jetzt regelmäßig im Log mit folgenden Meldungen:
2021.08.19 18:34:06 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:34:07 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:34:08 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:34:09 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:34:10 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:34:10 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:17 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:17 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:18 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:19 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:20 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.19 18:36:21 3: NTFY return:  ActionDetector:CUL_HM renamed a lot


Frage: Was bedeuten diese Meldungen bzw. sind sie in irgend einer Form kritisch?
Titel: Antw:CUL_HM renamed a lot
Beitrag von: HansDampfHH am 22 August 2021, 07:07:16
Schließe ich mich an, diese Einträge sind mir heute im Log auch das erste mal aufgefallen.
Kann bisher nichts damit anfangen...
Titel: Antw:CUL_HM renamed a lot
Beitrag von: grappa24 am 23 August 2021, 08:49:22
hier mal das Modul aus 10_CUL_HM.pm was diese Meldungen erzeugt; leider bin ich nicht so fit, dass ich die Meldungen damit erklären könnte ...

sub CUL_HM_Notify(@){###############################
  my ($ntfy, $dev) = @_;
  #$ntfy - whom to notify
  #$dev  - who changed
  return undef if(  $dev->{NAME} eq $ntfy->{NAME}
                  ||$dev->{NAME} ne "global"
                 );# no notification about myself
  my $events = $dev->{CHANGED};
  return undef if(!$events); # Some previous notify deleted the array.
  my $cws = join(";#",@{$dev->{CHANGED}});
  foreach my $evnt(@{$events}){
    if($evnt =~ m/^(DELETEATTR)/){
    }
    elsif ($evnt =~ m/^(ATTR)/){#ATTR
      if($evnt =~ m/^ATTR (.*) ignore 1/){#ATTR ignore - was it the primary notification device?
        my (undef,$ent) =split(" ",$evnt);
        if ($ent eq $modules{CUL_HM}{helper}{primary}){
          $modules{CUL_HM}{helper}{primary} = ""; # force rescan 
          CUL_HM_primaryDev();
        }
      }
    }
    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")
        ||($evnt eq "RENAMED" && $defs{$new}{TYPE} eq "CUL_HM")){
        CUL_HM_Rename($new,$ent) if($evnt eq "RENAMED");
        CUL_HM_primaryDev() if ($ent eq $modules{CUL_HM}{helper}{primary});
      }
      else{##------- update dependancies to IO devices used
        my @culHmDevs = grep{$defs{$_}{DEF} =~ m/^......$/} grep{$defs{$_}{TYPE} eq "CUL_HM"} keys %defs;
        ## ------ correct IOList and IOGrp
        foreach my $vccu (grep{AttrVal($_,"IOList","") =~ m/,?$ent/} @culHmDevs){# for each vccu
          my $ea = my $eaOld = AttrVal($vccu,"IOList","");
          $ea = join(",",map{my $foo = $_;$foo =~ s/$ent/$new/;$foo}
                         split(",",$ea));
          foreach my $HMdef(grep{AttrVal($_,"IOgrp","") =~ m/$vccu:.*$ent/} @culHmDevs){
            if($ea){#vccu still operational
              my (undef,$ios) = split(":",AttrVal($HMdef,"IOgrp",""));
              $ios = join(",",
                     grep{defined $defs{$_}}
                     map{my $foo = $_;$foo =~ s/$ent/$new/;$foo}
                     split(",",$ios)
                     );
              $attr{$HMdef}{IOgrp} = "$vccu:$ios";
            }
            else {# the vccu has no IO anymore - delete clients
              CommandDeleteAttr (undef,"$HMdef IOgrp") ;
            }
          }
          CommandAttr (undef,"$vccu IOList $ea")if ($ea ne $eaOld);
        }
        foreach my $HMdef (grep{AttrVal($_,"IODev","") eq $ent} @culHmDevs){# for each IODev
          CommandAttr (undef,"$HMdef IODev $new");
        }
      }
      return "CUL_HM renamed a lot";
    }
    elsif (!$modules{CUL_HM}{helper}{initDone} &&  $evnt =~ m/INITIALIZED/){# grep the first initialize
      CUL_HM_updateConfig("startUp");
      InternalTimer(1,"CUL_HM_setupHMLAN", "initHMLAN", 0);#start asap once FHEM is operational
    }
#    elsif($evnt =~ m/(DEFINED)/  ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(SHUTDOWN)/ ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}#SHUTDOWN|DELAYEDSHUTDOWN
#    elsif($evnt =~ m/(SAVE)/     ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(REREADCFG)/){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(MODIFIED)/ ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    else                          { Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}

  }   

  return undef;
}
Titel: Antw:CUL_HM renamed a lot
Beitrag von: frank am 23 August 2021, 11:21:52
hast du denn auch ein "echtes" problem?
Titel: Antw:CUL_HM renamed a lot
Beitrag von: grappa24 am 23 August 2021, 12:52:48
nicht wirklich  :).  Ich möchte es nur verstehen, wer und was da umbenannt wird.
Titel: Antw:CUL_HM renamed a lot
Beitrag von: connormcl am 23 August 2021, 13:02:53
Zitat von: frank am 23 August 2021, 11:21:52
hast du denn auch ein "echtes" problem?

Nach ca. einem Jahr hat er dann schon 2 GB nur durch diesen Logtext erzeugt :)
Titel: Antw:CUL_HM renamed a lot
Beitrag von: HansDampfHH am 23 August 2021, 14:18:15
Ich finde es auch legitim zu hinterfragen was so eine Meldung bedeutet. Das etwas renamed wird klingt erst mal irritierend.
Titel: Antw:CUL_HM renamed a lot
Beitrag von: grappa24 am 25 August 2021, 21:31:49
Ich hab jetzt bei allen HM-Devices die attribute actCycle gelöscht, weil ich dachte, der ActionDetector gibt dann Ruhe, aber diese "renamed a lot" Meldungen kommen unbeeindruckt weiter und müllen mir mein Logfile zu - wäre für Hilfe dazu wirklich dankbar.
Titel: Antw:CUL_HM renamed a lot
Beitrag von: Beta-User am 26 August 2021, 10:00:44
Na ja, wenn ich das richtig verstanden habe, wird die Zeile bei jedem Rename-Event geschrieben, völlig egal, ob es was mit CUL_HM (oder einem der verwendeten IO's) zu tun hat oder nicht.

Hier ein Reparaturversuch:
sub CUL_HM_Notify(@){###############################
  my ($ntfy, $dev) = @_;
  #$ntfy - whom to notify
  #$dev  - who changed
  return undef if(  $dev->{NAME} eq $ntfy->{NAME}
                  ||$dev->{NAME} ne "global"
                 );# no notification about myself
  my $events = $dev->{CHANGED};
  return undef if(!$events); # Some previous notify deleted the array.
  #my $cws = join(";#",@{$dev->{CHANGED}});
  my $count;
  foreach my $evnt(@{$events}){
    if($evnt =~ m/^(DELETEATTR)/){
    }
    elsif ($evnt =~ m/^(ATTR)/){#ATTR
      if($evnt =~ m/^ATTR (.*) ignore 1/){#ATTR ignore - was it the primary notification device?
        my (undef,$ent) =split(" ",$evnt);
        if ($ent eq $modules{CUL_HM}{helper}{primary}){
          $modules{CUL_HM}{helper}{primary} = ""; # force rescan 
          CUL_HM_primaryDev();
          $count++;
        }
      }
    }
    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")
        ||($evnt eq "RENAMED" && $defs{$new}{TYPE} eq "CUL_HM")){
        CUL_HM_Rename($new,$ent) if($evnt eq "RENAMED");
        CUL_HM_primaryDev() if ($ent eq $modules{CUL_HM}{helper}{primary});
        $count++;
      }
      else{##------- update dependancies to IO devices used
        my @culHmDevs = grep{$defs{$_}{DEF} =~ m/^......$/} grep{$defs{$_}{TYPE} eq "CUL_HM"} keys %defs;
        ## ------ correct IOList and IOGrp
        foreach my $vccu (grep{AttrVal($_,"IOList","") =~ m/,?$ent/} @culHmDevs){# for each vccu
          my $ea = my $eaOld = AttrVal($vccu,"IOList","");
          $ea = join(",",map{my $foo = $_;$foo =~ s/$ent/$new/;$foo}
                         split(",",$ea));
          foreach my $HMdef(grep{AttrVal($_,"IOgrp","") =~ m/$vccu:.*$ent/} @culHmDevs){
            if($ea){#vccu still operational
              my (undef,$ios) = split(":",AttrVal($HMdef,"IOgrp",""));
              $ios = join(",",
                     grep{defined $defs{$_}}
                     map{my $foo = $_;$foo =~ s/$ent/$new/;$foo}
                     split(",",$ios)
                     );
              $attr{$HMdef}{IOgrp} = "$vccu:$ios";
              $count++;
            }
            else {# the vccu has no IO anymore - delete clients
              CommandDeleteAttr (undef,"$HMdef IOgrp") ;
              $count++;
            }
          }
          if ($ea ne $eaOld) {
            CommandAttr (undef,"$vccu IOList $ea");
            $count++;
          }
        }
        foreach my $HMdef (grep{AttrVal($_,"IODev","") eq $ent} @culHmDevs){# for each IODev
          CommandAttr (undef,"$HMdef IODev $new");
          $count++;
        }
      }
      return "CUL_HM: $count device(s) renamed or attributes changed due to DELETED or RENAMED event" if $count;
      return;
    }
    elsif (!$modules{CUL_HM}{helper}{initDone} &&  $evnt =~ m/INITIALIZED/){# grep the first initialize
      CUL_HM_updateConfig("startUp");
      InternalTimer(1,"CUL_HM_setupHMLAN", "initHMLAN", 0);#start asap once FHEM is operational
    }
#    elsif($evnt =~ m/(DEFINED)/  ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(SHUTDOWN)/ ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}#SHUTDOWN|DELAYEDSHUTDOWN
#    elsif($evnt =~ m/(SAVE)/     ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(REREADCFG)/){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    elsif($evnt =~ m/(MODIFIED)/ ){ Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}
#    else                          { Log 1,"Info --- $dev->{NAME} -->$ntfy->{NAME} :  $evnt";}

  }   

  return undef;
}

Kompletten Modul-Code mit weiteren Fixes findet ihr in https://forum.fhem.de/index.php/topic,122422.msg1171797.html#msg1171797.
Titel: Antw:CUL_HM renamed a lot
Beitrag von: grappa24 am 26 August 2021, 19:51:33
Danke Beta-User,

hab das neue Modul 10_CUL_HM.pm mal eingespielt, läuft zunächst alles.

Werde mich morgen früh melden, ob diese "renamed a lot" Meldungen weiterhin auftreten.

Gruß, grappa24

Update: Leider sind die Meldungen auch mit dem veränderten Modul vorhanden: 2021.08.27 07:33:13 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:33:14 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:33:15 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:33:15 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:33:16 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:33:17 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:51 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:52 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:53 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:53 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:54 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:34:55 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:01 3: FS20 set wz_ambilight off
2021.08.27 07:35:29 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:30 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:30 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:31 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:32 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:35:33 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:29 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:30 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:30 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:31 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:32 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:36:33 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 07:39:28 2: netatmo_M03_00_00_07_d0_f2: invalid json detected
2021.08.27 08:14:22 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 08:14:23 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 08:14:24 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 08:14:25 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 08:14:26 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.08.27 08:14:26 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
Titel: Antw:CUL_HM renamed a lot
Beitrag von: Beta-User am 27 August 2021, 09:44:02
Ähm, sicher, dass du den Code aus dem verlinkten Post hast und nicht den von ein paar posts vorher? (den habe ich jetzt gelöscht, Danke insofern für den Hinweis)
(Nur) wenn was "renamed" wurde, sollte da nämlich jetzt eine _andere_ Meldung erfolgen.
Titel: Antw:CUL_HM renamed a lot
Beitrag von: grappa24 am 27 August 2021, 11:25:13
Zitat von: Beta-User am 27 August 2021, 09:44:02
Ähm, sicher, dass du den Code aus dem verlinkten Post hast
sorry, hatte tatsächlich nicht deinen aktuellen  :-[ Aber jetzt  ;)

Update: Diese "renamed a lot" Meldungen sind jetzt weg, vielen Dank @Beta-User

Jetzt kann ich mich auch wieder am "clean-logfile-contest" beteiligen  ;D
Titel: Antw:[Erledigt] CUL_HM renamed a lot
Beitrag von: uron am 10 Oktober 2021, 10:20:04
Habe heute auch wieder einmal in mein Logfile geschaut und die gleiche Meldung festgestellt.
Nach update (das Modul 10_CUL_HM.pm wurde aktualisiert) und shutdown restart
bekomme ich leider immer noch die gleichen Meldungen:
2021.10.10 09:11:36.620 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 09:21:36.631 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 09:31:36.633 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 09:41:36.646 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 09:51:36.662 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 10:01:36.698 3: NTFY return:  ActionDetector:CUL_HM renamed a lot
2021.10.10 10:11:36.633 3: NTFY return:  ActionDetector:CUL_HM renamed a lot

Gibt es noch einen weiteren Lösungsansatz außer ich deaktiviere den ActionDetector?
Titel: Antw:[Erledigt] CUL_HM renamed a lot
Beitrag von: Beta-User am 10 Oktober 2021, 10:29:08
Morgen ein update machen!
Titel: Antw:[Erledigt] CUL_HM renamed a lot
Beitrag von: uron am 11 Oktober 2021, 10:26:55
Jetzt taucht auch bei mir keine Meldung mehr auf.
Dank an Beta-User!