diff --git a/FHEM/82_LGTV_WebOS.pm b/FHEM/82_LGTV_WebOS.pm
index d129a2a..cc1e473 100644
--- a/FHEM/82_LGTV_WebOS.pm
+++ b/FHEM/82_LGTV_WebOS.pm
@@ -368,7 +368,7 @@ __END__
   ],
   "release_status": "stable",
   "license": "GPL_2",
-  "version": "v3.6.2",
+  "version": "v3.6.3",
   "author": [
     "Marko Oldenburg <fhemdevelopment@cooltux.net>"
   ],
diff --git a/controls_LGTV_WebOS.txt b/controls_LGTV_WebOS.txt
index ee238ed..0f50936 100644
--- a/controls_LGTV_WebOS.txt
+++ b/controls_LGTV_WebOS.txt
@@ -1,2 +1,2 @@
-UPD 2022-03-13_11:17:13 18968 FHEM/82_LGTV_WebOS.pm
-UPD 2022-03-17_08:40:15 54825 lib/FHEM/Devices/LGTV/LGTVWebOS.pm
+UPD 2022-03-17_11:00:18 18968 FHEM/82_LGTV_WebOS.pm
+UPD 2022-03-17_10:59:44 54628 lib/FHEM/Devices/LGTV/LGTVWebOS.pm
diff --git a/lib/FHEM/Devices/LGTV/LGTVWebOS.pm b/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
index 0e6ac03..f0408bc 100644
--- a/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
+++ b/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
@@ -736,8 +736,20 @@ sub Read {
 
     $hash->{helper}->{lastResponse} =
       int( ::gettimeofday() );    # Check Socket KeepAlive
-    $len = sysread( $hash->{CD}, $buf, 10240 )
-      if exists( $hash->{CD} );
+
+    try {
+        $len = sysread( $hash->{CD}, $buf, 10240 );
+    }
+    catch {
+        if ( $_->isa('autodie::exception') && $_->matches(':io') ) {
+            Log3( $name, 2, "LGTV_WebOS ($name) - can't read from socket: $_" );
+            return;
+        }
+        else {
+            Log3( $name, 2, "LGTV_WebOS ($name) - can't read from socket: $_" );
+            return;
+        }
+    };
 
     if ( !defined($len) || !$len ) {
 
@@ -994,8 +1006,6 @@ sub WriteServiceReadings {
     my $hash        = shift;
     my $decode_json = shift;
 
-    ::readingsBeginUpdate($hash);
-
     for my $services ( @{ $decode_json->{payload}{services} } ) {
         ::readingsBulkUpdateIfChanged(
             $hash,
@@ -1004,8 +1014,6 @@ sub WriteServiceReadings {
         );
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1013,8 +1021,6 @@ sub WriteDeviceReadings {
     my $hash        = shift;
     my $decode_json = shift;
 
-    ::readingsBeginUpdate($hash);
-
     for my $devices ( @{ $decode_json->{payload}{devices} } ) {
 
         if (   !exists( $hash->{helper}{device}{inputs}{ $devices->{label} } )
@@ -1035,8 +1041,6 @@ sub WriteDeviceReadings {
         );
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1046,9 +1050,6 @@ sub WriteProgramlistReadings {
 
     require Date::Parse;
     my $count = 0;
-
-    ::readingsBeginUpdate($hash);
-
     for my $programList ( @{ $decode_json->{payload}{programList} } ) {
 
         if (
@@ -1080,8 +1081,6 @@ sub WriteProgramlistReadings {
         }
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1089,8 +1088,6 @@ sub WriteMuteReadings {
     my $hash        = shift;
     my $decode_json = shift;
 
-    ::readingsBeginUpdate($hash);
-
     if (
         exists( $decode_json->{payload}{'mute'} )
         && (   $decode_json->{payload}{'mute'} eq 'true'
@@ -1130,8 +1127,6 @@ sub WriteMuteReadings {
         ::readingsBulkUpdateIfChanged( $hash, 'mute', 'off' );
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1139,8 +1134,6 @@ sub Write3dReadings {
     my $hash        = shift;
     my $decode_json = shift;
 
-    ::readingsBeginUpdate($hash);
-
     if (   $decode_json->{payload}{status3D}{status} eq 'false'
         || $decode_json->{payload}{status3D}{status} == 0 )
     {
@@ -1158,8 +1151,6 @@ sub Write3dReadings {
     ::readingsBulkUpdateIfChanged( $hash, '3DMode',
         $decode_json->{payload}{status3D}{pattern} );
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1167,8 +1158,6 @@ sub WriteAppIdReadings {
     my $hash        = shift;
     my $decode_json = shift;
 
-    ::readingsBeginUpdate($hash);
-
     if (
         (
                $decode_json->{payload}{appId} =~ /com.webos.app.externalinput/x
@@ -1196,8 +1185,6 @@ sub WriteAppIdReadings {
         ::readingsBulkUpdateIfChanged( $hash, 'input', '-' );
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return;
 }
 
@@ -1207,8 +1194,6 @@ sub WriteTypeReadings {
 
     my $response;
 
-    ::readingsBeginUpdate($hash);
-
     if ( $decode_json->{type} eq 'registered'
         && exists( $decode_json->{payload}{'client-key'} ) )
     {
@@ -1252,8 +1237,6 @@ sub WriteTypeReadings {
           if ( $hash->{helper}{device}{runsetcmd} > 0 );
     }
 
-    ::readingsEndUpdate( $hash, 1 );
-
     return $response;
 }
 
@@ -1265,6 +1248,8 @@ sub WriteReadings {
 
     ::Log3( $name, 4, "LGTV_WebOS ($name) - Beginn Readings writing" );
 
+    ::readingsBeginUpdate($hash);
+
     if ( ref( $decode_json->{payload}{services} ) eq "ARRAY"
         && scalar( @{ $decode_json->{payload}{services} } ) > 0 )
     {
@@ -1293,8 +1278,6 @@ sub WriteReadings {
         WriteAppIdReadings( $hash, $decode_json );
     }
 
-    ::readingsBeginUpdate($hash);
-
     if ( exists( $decode_json->{type} ) ) {
         $response = WriteTypeReadings( $hash, $decode_json );
     }