Hello, great job done, really love it!
Unfortunately, I have the same problem as wpoh had, based on his/her posting on 29 Mar 2020.
I have the Bridge and Things online, I see in the log that the MQTT “onMessage” returns all the correct values, so this is not the problem. The problem is that the items do not get the values. Very strange.
@wpoh, I also did clean up the cache and tmp, did several restarts with renaming the bridge in the .things file but I can’t get it to work. Any help or ideas what else to do to get it working?
Edit:
Using the last binding of yesterday, v1.0. OpenHAB v2.5.5.
Hi, I’m sorry but I do not have a good answer to your question since my installation suddenly worked after some modifications such as cache cleaning, renaming the brdige etc. However, one aspect that might be relevant is the setting of the location of the mower using the original Landroid app. Did you provide the location yet? If not, you may try this, since this was another change that I made before the binding suddenly worked.
Since then the binding works perfect and it’s great fun to monitor and chart the time and milage the mower is working.
Many thanks @wpoh for your quick response and for your help. It finally works!
What I did:
Added a location via the Worx Landroid App (didn’t set one so far)
Stopped the OpenHAB server
Renamed the Bridge in .things and .items
Started the OpenHAB server
Not sure if the setting of the location had any influence, I’d assume not, but I guess that the main trick was doing the bridge name change after stopping the server.
[ERROR] [id.internal.WorxLandroidMowerHandler] - PollingRunnable com.amazonaws.services.iot.client.core.AwsIotRetryableException: No connection to client (32104): 30173502170118020375
[ERROR] [id.internal.WorxLandroidMowerHandler] - error: com.amazonaws.services.iot.client.core.AwsIotRetryableException: No connection to client (32104)
The mower is no longer accessible.
What does this error mean?
I’m facing the same issue since upgrading to version 1.0. No item gets updated anymore but mower thing is shown as online.
If found additional errors in the log file:
2020-06-04 09:17:26.682 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/product-items
2020-06-04 09:17:26.728 [ERROR] [id.internal.WorxLandroidMowerHandler] - RefreshStatusRunnable 20173019091100380043: Unknown error
org.openhab.binding.worxlandroid.internal.webapi.WebApiException: java.io.EOFException: HttpConnectionOverHTTP@625e1d::DecryptedEndPoint@18ac168{api.worxlandroid.com/108.128.5.145:443<->/X.X.X.X:61864,OPEN,fill=-,flush=-,to=60064/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:515) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@625e1d::DecryptedEndPoint@18ac168{api.worxlandroid.com/108.128.5.145:443<->/X.X.X.X:61864,OPEN,fill=-,flush=-,to=60064/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:?]
… 10 more
Caused by: java.io.EOFException: HttpConnectionOverHTTP@625e1d::DecryptedEndPoint@18ac168{api.worxlandroid.com/108.128.5.145:443<->/X.X.X.X:61864,OPEN,fill=-,flush=-,to=60064/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
I think there was a temporary problem with the AWS MQTT connection (/broker / server … what ever). I’ll take a look and maybe I can improve the behavior of the bridge. I’ve created an issue:
Hi nibi79,
I have just successfully registered the mower on the Worx server.
The setup with the binding also went perfectly! Chapeu again!
I’m not sure, but I think the Worx server operator doesn’t like it when things other than its own app communicate with the server.
In the long term, this will probably only work stably if the mower firmware enables local access …
I had the same issue.
I figured out, that even my Android App was working in “read only” mode only. It was just showing the status but did not accept any command.
Solution:
I deleted the cache of the Android App. After that, the Android App was working again as expected. Then I gave this Binding another try and it worked immediately.
@dirkpitt74, Can you check if your Android App is working?
Hi,
the Android app works correctly.
I solved the problem by removing the Landroid binding for a couple of days.
After this, everything started working again.
Thanks
Giovanni