Hi,
Thanks for the great binding, have swapped over from using Landroid Bridge, hopefully this will be less finicky!
Every now and then (well, quite regularly, actually), I’m getting the following error - it’s not a 503.
2020-05-21 10:30:45.969 [INFO ] [.worxlandroid.internal.mqtt.AWSTopic] - onMessage: {"cfg":{"id":0,"lg":"it","tm":"10:30:49","dt":"21/05/2020","sc":{"m":1,"p":0,"d":[["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0]]},"cmd":0,"mz":[0,0,0,0],"mzv":[0,0,0,0,1,1,1,1,1,1],"rd":180,"sn":"xxxxxxx"},"dat":{"mac":"xxxxxxx","fw":3.52,"bt":{"t":19.7,"v":19.20,"p":100,"nr":1283,"c":0,"m":1},"dmp":[-3.6,-1.2,324.5],"st":{"b":29547,"d":489611,"wt":32449},"ls":1,"le":0,"lz":8,"rsi":-38,"lk":0}}
2020-05-21 10:30:46.018 [INFO ] [id.internal.WorxLandroidMowerHandler] - HOME | StatusCode: 1 - Home
2020-05-21 10:30:46.019 [INFO ] [id.internal.WorxLandroidMowerHandler] - NO_ERROR | ErrorCode: 0 - No error
2020-05-21 10:34:34.598 [ERROR] [id.internal.WorxLandroidMowerHandler] - RefreshStatusRunnable 201830174205000040FC: Unknown error
org.openhab.binding.worxlandroid.internal.webapi.WebApiException: java.io.EOFException: HttpConnectionOverHTTP@4331137e::DecryptedEndPoint@6a5fab4b{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48284,OPEN,fill=-,flush=-,to=60005/0}
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApi(WebApiRequest.java:122) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApiGet(WebApiRequest.java:79) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.request.ProductItemsRequest.call(ProductItemsRequest.java:46) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.WorxLandroidWebApiImpl.retrieveUserDevices(WorxLandroidWebApiImpl.java:101) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.WorxLandroidMowerHandler$1.run(WorxLandroidMowerHandler.java:104) [bundleFile:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_252]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@4331137e::DecryptedEndPoint@6a5fab4b{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48284,OPEN,fill=-,flush=-,to=60005/0}
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:685) ~[bundleFile:9.4.20.v20190813]
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApi(WebApiRequest.java:92) ~[bundleFile:?]
... 11 more
Caused by: java.io.EOFException: HttpConnectionOverHTTP@4331137e::DecryptedEndPoint@6a5fab4b{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48284,OPEN,fill=-,flush=-,to=60005/0}
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:335) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1526) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:209) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:147) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73) ~[?:?]
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133) ~[?:?]
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:154) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) ~[?:?]
... 1 more
2020-05-21 10:34:38.276 [INFO ] [orxlandroid.internal.mqtt.AWSMessage] - onSuccess
2020-05-21 10:34:38.682 [INFO ] [.worxlandroid.internal.mqtt.AWSTopic] - onMessage: {"cfg":{"id":1,"lg":"it","tm":"10:34:41","dt":"21/05/2020","sc":{"m":1,"p":0,"d":[["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0],["13:00",120,0]]},"cmd":0,"mz":[0,0,0,0],"mzv":[0,0,0,0,1,1,1,1,1,1],"rd":180,"sn":"xxxxxxx"},"dat":{"mac":"xxxxxxx","fw":3.52,"bt":{"t":19.7,"v":19.18,"p":100,"nr":1283,"c":0,"m":1},"dmp":[-3.6,-1.1,323.6],"st":{"b":29547,"d":489611,"wt":32449},"ls":1,"le":0,"lz":8,"rsi":-37,"lk":0}}
2020-05-21 10:34:38.695 [INFO ] [id.internal.WorxLandroidMowerHandler] - HOME | StatusCode: 1 - Home
2020-05-21 10:34:38.696 [INFO ] [id.internal.WorxLandroidMowerHandler] - NO_ERROR | ErrorCode: 0 - No error
2020-05-21 10:37:35.440 [ERROR] [id.internal.WorxLandroidMowerHandler] - RefreshStatusRunnable 201830174205000040FC: Unknown error
org.openhab.binding.worxlandroid.internal.webapi.WebApiException: java.io.EOFException: HttpConnectionOverHTTP@2bbf68ab::DecryptedEndPoint@6154a604{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48470,OPEN,fill=-,flush=-,to=60004/0}
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApi(WebApiRequest.java:122) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApiGet(WebApiRequest.java:79) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.request.ProductItemsRequest.call(ProductItemsRequest.java:46) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.webapi.WorxLandroidWebApiImpl.retrieveUserDevices(WorxLandroidWebApiImpl.java:101) ~[bundleFile:?]
at org.openhab.binding.worxlandroid.internal.WorxLandroidMowerHandler$1.run(WorxLandroidMowerHandler.java:104) [bundleFile:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_252]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@2bbf68ab::DecryptedEndPoint@6154a604{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48470,OPEN,fill=-,flush=-,to=60004/0}
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:685) ~[bundleFile:9.4.20.v20190813]
at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApi(WebApiRequest.java:92) ~[bundleFile:?]
... 11 more
Caused by: java.io.EOFException: HttpConnectionOverHTTP@2bbf68ab::DecryptedEndPoint@6154a604{api.worxlandroid.com/54.194.27.98:443<->/192.168.10.205:48470,OPEN,fill=-,flush=-,to=60004/0}
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:335) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1526) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:209) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:147) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:73) ~[?:?]
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:133) ~[?:?]
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:154) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[?:?]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) ~[?:?]
... 1 more
So you’ll see I get a successful retrieval of the data, followed by a failure, followed by success, followed by failure.
Another point… one thing that the Landroid Bridge didn’t like was starting up if the mower was unavailable - for example switched off over winter. This caused it to use 100% CPU, so I had to disable it - being summer currently, my mower is on all the time, so restarting openHAB if I need to shouldn’t be a problem. Hopefully this won’t be an issue for this binding though come winter!!