diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 3e06f1728..819ebd662 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -661,7 +661,16 @@ while (1) { } elsif(defined($hash->{$wbName})) { my $wb = $hash->{$wbName}; alarm($hash->{ALARMTIMEOUT}) if($hash->{ALARMTIMEOUT}); - my $ret = syswrite($hash->{CD}, $wb); + + my $ret; + eval { $ret = syswrite($hash->{CD}, $wb); }; + if($@) { + Log 4, "Syswrite: $@, deleting $hash->{NAME}"; + TcpServer_Close($hash); + CommandDelete(undef, $hash->{NAME}); + next; + } + my $werr = int($!); alarm(0) if($hash->{ALARMTIMEOUT});