WeMo Binding (4.3.x) Still Has Issues with US Based Devices

@laursen
@hmerk

A couple years ago, @hmerk and debugged the issues with the WeMo binding around US devices which is this version below.

org.openhab.binding.wemo-3.3.0-SNAPSHOT.jar.TXT (92.1 KB)

While on OH 3.x, I did try the updated/major change version that I think @laursen rewrote the binding. It didn’t work for me, devices kept going offline/online, so I decided to stay with the one above.

Now that I’m on OH 4.3.0, I decided to try again, and I got the same results so I thought I bring this up to see if we can address the issues. I have 39 WeMo devices, so I have a large implementation.

Flips between ONLINE and these 2 errors below, then goes back ONLINE again.

COMMUNICATION_ERROR

URL for the WeMo device cannot be created.

COMMUNICATION_ERROR

java.util.concurrent.ExecutionException: java.io.EOFException: @ab39bf::SocketChannelEndPoint@f4b561{l=/192.168.0.32:56428,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=1/0}{io=1/0,kio=1,kro=1}->@ab39bf(l:/192.168.0.32:56428 <-> r:/192.168.0.38:49152,closed=false)=>@6103d2(exchange=HttpExchange@b1d2b4{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@128651c[TERMINATED/null] res=HttpResponse[null 0 null]@e288e5[PENDING/null]})[send=HttpSenderOverHTTP@657938(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@492d72{s=START}],recv=CustomHttpReceiverOverHTTP@73ab62(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

FYI, 192.168.0.32 is OH itself and the 192.168.0.38 is the WeMo Plug

I deleted the THINGS below and auto scan re-created them again, same error.

Picture Frames
wemo:socket:Socket-1_0-M1BAB133D72262
Socket-1_0-M1BAB133D72262

Gym Light
wemo:lightswitch:Lightswitch-2_0-2289A029N0521A
Lightswitch-2_0-2289A029N0521A

I’ve restarted OH after it auto created the THINGS., getting these in the Error Logs.

2025-03-26 12:01:10.132 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:lightswitch:Lightswitch-2_0-2299A029N01FFA': java.util.concurrent.TimeoutException: Total timeout 2000 ms elapsed

2025-03-26 12:01:42.995 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @8c0a26::SocketChannelEndPoint@8ed9f0{l=/192.168.0.32:38524,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=5/0}{io=0/0,kio=0,kro=1}->@8c0a26(l:/192.168.0.32:38524 <-> r:/192.168.0.38:49152,closed=false)=>@1d77c7d(exchange=HttpExchange@e79ac6{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@9a6486[TERMINATED/null] res=HttpResponse[null 0 null]@99717c[PENDING/null]})[send=HttpSenderOverHTTP@9d486(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@ce5e6b{s=START}],recv=CustomHttpReceiverOverHTTP@1c9bbe0(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:02:43.049 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @158ff68::SocketChannelEndPoint@19222df{l=/192.168.0.32:41900,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->@158ff68(l:/192.168.0.32:41900 <-> r:/192.168.0.38:49152,closed=false)=>@1620986(exchange=HttpExchange@1dc3c06{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@133392a[TERMINATED/null] res=HttpResponse[null 0 null]@1a37749[PENDING/null]})[send=HttpSenderOverHTTP@e07202(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@f25d54{s=START}],recv=CustomHttpReceiverOverHTTP@12d489(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:03:43.097 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @1ff788e::SocketChannelEndPoint@192c681{l=/192.168.0.32:43234,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->@1ff788e(l:/192.168.0.32:43234 <-> r:/192.168.0.38:49152,closed=false)=>@1336e02(exchange=HttpExchange@1c9394f{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@1f40930[TERMINATED/null] res=HttpResponse[null 0 null]@ef6241[PENDING/null]})[send=HttpSenderOverHTTP@5a4ba0(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@f03e5{s=START}],recv=CustomHttpReceiverOverHTTP@10b37dd(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:04:43.139 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @1798605::SocketChannelEndPoint@1d4e79a{l=/192.168.0.32:44500,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio=0,kro=1}->@1798605(l:/192.168.0.32:44500 <-> r:/192.168.0.38:49152,closed=false)=>@107eb8c(exchange=HttpExchange@1bcc5af{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@c834f3[TERMINATED/null] res=HttpResponse[null 0 null]@a8fa07[PENDING/null]})[send=HttpSenderOverHTTP@bd2a55(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@17d0fd0{s=START}],recv=CustomHttpReceiverOverHTTP@d9cf20(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:07:43.383 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @198b056::SocketChannelEndPoint@1742a09{l=/192.168.0.32:48016,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio=0,kro=1}->@198b056(l:/192.168.0.32:48016 <-> r:/192.168.0.38:49152,closed=false)=>@11af21d(exchange=HttpExchange@16e0d8b{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@15218b0[TERMINATED/null] res=HttpResponse[null 0 null]@1165571[PENDING/null]})[send=HttpSenderOverHTTP@1dec2d4(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@d79af1{s=START}],recv=CustomHttpReceiverOverHTTP@18d9b43(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:08:43.422 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @1a4d413::SocketChannelEndPoint@66b82a{l=/192.168.0.32:49380,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio=0,kro=1}->@1a4d413(l:/192.168.0.32:49380 <-> r:/192.168.0.38:49152,closed=false)=>@10fb604(exchange=HttpExchange@d32a33{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@1ca61f6[TERMINATED/null] res=HttpResponse[null 0 null]@9e2e0d[PENDING/null]})[send=HttpSenderOverHTTP@5719cc(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@15039c7{s=START}],recv=CustomHttpReceiverOverHTTP@1c72dca(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:15:44.133 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @161c334::SocketChannelEndPoint@1c0f378{l=/192.168.0.32:58192,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=1/0,kio=1,kro=1}->@161c334(l:/192.168.0.32:58192 <-> r:/192.168.0.38:49152,closed=false)=>@ec2d9b(exchange=HttpExchange@195283e{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@e0341b[TERMINATED/null] res=HttpResponse[null 0 null]@b5a8c[PENDING/null]})[send=HttpSenderOverHTTP@1f83f23(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@1be2d7a{s=START}],recv=CustomHttpReceiverOverHTTP@c98d7a(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

2025-03-26 12:15:49.138 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-22B8B1K01028F4': java.util.concurrent.TimeoutException: Total timeout 2000 ms elapsed

2025-03-26 12:20:44.647 [WARN ] [.openhab.binding.wemo.internal.handler.WemoHandler] - Failed to get actual state for device 'wemo:socket:Socket-1_0-M1BAB133D72262': java.util.concurrent.ExecutionException: java.io.EOFException: @108ae4c::SocketChannelEndPoint@da7009{l=/192.168.0.32:36532,r=/192.168.0.38:49152,ISHUT,fill=-,flush=-,to=0/0}{io=0/0,kio=0,kro=1}->@108ae4c(l:/192.168.0.32:36532 <-> r:/192.168.0.38:49152,closed=false)=>@e9b536(exchange=HttpExchange@1c3a374{req=HttpRequest[POST /upnp/control/basicevent1 HTTP/1.1]@1db108e[TERMINATED/null] res=HttpResponse[null 0 null]@fc7984[PENDING/null]})[send=HttpSenderOverHTTP@1033828(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@1fdf03f{s=START}],recv=CustomHttpReceiverOverHTTP@23d86e(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]

I’m going to rollback the binding again to the one attached. I am available to test any modified 4.3.x WeMo bindings that would address the issues above.

Best, Jay

Can you create an issue, please? It would be good if you could try to isolate the problem - for example reproduce it when just having a single device configured. Please include information such as:

  • For which Thing types does it happen? Are there any Thing types for which it doesn’t happen?
  • Does it happen right away, or after some time
  • Debug and/or trace logs.
  • What was the last official version that worked?

WeMo Binding (4.3.x) Still Has Issues with US Based Devices · Issue #18453 · openhab/openhab-addons