Perl Fehler vermutlich ml device Schuld

Begonnen von oracess, 19 Februar 2015, 08:23:57

Vorheriges Thema - Nächstes Thema

oracess

Habe seit einiger Zeit folgenden Fehler im Log:

2015.02.19 08:02:28 0: Server started with 155 defined entities (version $Id: fhem.pl 8030 2015-02-18 17:32:56Z rudolfkoenig $, os linux, user fhem, pid 23169)
2015.02.19 08:02:28 3: Opening ml device xxx.xxx.xxx.xxx:62910
2015.02.19 08:02:28 3: ml device opened
2015.02.19 08:02:30 1: PERL WARNING: Use of uninitialized value in string ne at fhem.pl line 3701.
2015.02.19 08:02:32 3: Device EG_Rauchmelder added to ActionDetector with 099:00 time

Bin zu unerfahren um den Fehler im fhem.pl line 3701 zu lokalisieren ! Kann mir wer weiter helfen ?? und ja line 3701 sieht so aus:

    3695# determine if an event should be created:
    # always create event if no attribute is set
    # or if the reading is listed in event-on-update-reading
    # or if the reading is listed in event-on-change-reading...
    # ...and its value has changed...
    # ...and the change greater then the threshold
    3701 $changed= !($attreocr || $attreour)
              || $eour 
              || ($eocr && ($value ne $readings->{VAL}));
    #Log 1, "EOCR:$eocr EOUR:$eour CHANGED:$changed";

    my @v = grep { my $l = $_;
                   $l =~ s/:.*//;
                   ($reading=~ m/^$l$/) ? $_ : undef} @{$hash->{".attrminint"}};
    if(@v) {
      my (undef, $minInt) = split(":", $v[0]);
      my $now = $hash->{".updateTime"};
      my $le = $hash->{".lastTime$reading"};
      if($le && $now-$le < $minInt) {
        if(!$eocr || ($eocr && $value eq $readings->{VAL})){
          $changed = 0;
        } else {
          $hash->{".lastTime$reading"} = $now;
        }
      } else {
        $hash->{".lastTime$reading"} = $now;
        $changed = 1 if($eocrExists);
      }
    }
   
3725 }

Hat das was mit "attr ml set-clock-on-init 1" zu tun ??
Liegt in der Zeile 3703 vielleicht der Hund ??

3703|| ($eocr && ($value ne $readings->{VAL}));

Herzlichen Dank für jede Hilfestellung !!

oracess

mircoby

Hallo oracess,

ich beobachte zeitweise ein ähnliches Verhalten, immer nach einem Neustart. Wenn ich vor dem Neustart den Cube Spannungslos schalte und anschließend Neu starte ist die Fehlermeldung weg.

Meine Vermutung ist, dass beim Neustart die Verbindung zum Cube nicht sauber getrennt wird. Beim Versuch erneut anzumelden kommt dann der Fehler.

Versuche bitte mal einen Neustart mit unterbrochener Verbindung zum Cube. Würde mich interessieren ob das bei Dir auch so ist.

Gruß Mirko
FHEM 6.2 auf Intel NUC mit Ubuntu 20.04 LTS
BUSWARE CUL, HM-RC-12, HM-SEC-RHS, HM-WDS30-OT2-SM, HM-ES-PMSw1-DR, CCU3, Sourceforge/hausbus (Beleuchtung + Rolläden + Audio), YAMAHA_AVR

oracess

#2
@mircoby
Naja der Stringfehler ist bei ausgeschaltenen Cube natürlich weg, aber verständlicherweise 7 Mio andere Fehlermeldungen. Deaktiviert man alle MAXGeräte im fhem.cfg, dann kann man nachweisen, dass diese Perl Meldung von MAX-Cube (MAXLAN) ausgelöst wird.

@Perl Profis
Verstehe aber trotzdem nicht die Perl Meldung:

PERL WARNING: Use of uninitialized value in string ne at fhem.pl line 3701.

Was ist der string "ne" und was bewirkt der ? Vielleicht kann ein Perl Profi hierzu Auskunft erteilen was die Zeilen 3695-3725 in der fhem.pl bedeuten oder abarbeiten. Eines sei noch erwähnt, die Fehlermeldung verursacht keinen bemerkbaren Fehler !

Danke oracess