undefined value at ./FHEM/72_FRITZBOX.pm line 803

Begonnen von setstate, 01 November 2017, 07:11:03

Vorheriges Thema - Nächstes Thema

setstate

Wenn der Fritz-Repeater gerade nicht angesteckt ist, wird das fhem.log mit Fehlermeldungen zugespamt. Vor dem letzten Update war das noch nicht so. Es würde reichen, wenn der Device-Status auf "not-connected" geht.

ZitatCan't call method "sockhost" on an undefined value at ./FHEM/72_FRITZBOX.pm line 803.
2017.11.01 06:12:36 1: FRITZBOX FritzRepeater: Readout_Aborted.1865 Error: Timeout when reading Fritz!Box data.

tupol

Das ist schon sehr lange implementiert.
Der Status sollte in diesem Fall auf "Error: Timeout when reading Fritz!Box data." gehen.
Wenn man keine Fehlermeldungen will, muss man das Attribut Verbose runtersetzen.

setstate

Trotz Attribute Verbose=0 bleibt die Fehlermeldung im log

attr FritzRepeater verbose 0

Can't call method "sockhost" on an undefined value at ./FHEM/72_FRITZBOX.pm line 803.

setstate


            my $socket = IO::Socket::INET->new( Proto => 'tcp', PeerAddr => $host, PeerPort    => 'http(80)' );
            # Wie wahrscheinlich ist, dass $socket erzeugt wurde? Wenn $socket nicht existiert, hat es auch keine sockhost Eigenschaft
            my $ip = $socket->sockhost;


Andere Module (z.B. 88_HMCCU.pm) gehen da auf Nummer Sicher

# Detect local IP address
my $socket = IO::Socket::INET->new (PeerAddr => $serveraddr, PeerPort => $rpcportlist[0]);
return HMCCU_Log ($hash, 1, "Can't connect to CCU port".$rpcportlist[0], 0) if (!$socket);
my $localaddr = $socket->sockhost ();