Worx Landroid Binding

Is there already a channel to read information for
“id”: 34,
“product_family_id”: 1,
“default_name”: “Landroid S”,
“code”: “WR102SI.1”,
“product_year”: 2018,

Etc. and probably MAC address also??

Regards
int5479

Hi Jörg,

not at the moment. I was thinking about it and in principle it is not a problem. But I asked myself for what I need this information.

Can you please create an issue for this topic?

Hi Nibi,
sure, but shall be Enhancement as well. Sure thing this information can easily add by label, but would be nice to capure them :wink:

Hi Nibi,

Great binding. The device is now out of garage and the Thing online. Seen a daylight saving time issue, this was a problem on my Pi. had to run:

sudo dpkg-reconfigure tzdata

A question:
Is this binding going to find it’s way to the https://github.com/openhab/openhab-addons repository, and officially be part of the openhab distribution?

Now my Landroid is working well and all configuration I had before with the MQTT bridge is available. Also my Grafana Dashboard is displaying nicely all values and Graphs. Thanks a lot Nibi for this binding. For me it came just at the right moment when the bridge stopped working and I needed to start using the mower again.
Today I have checked the logs an I found reoccurring errors about a broken pipe.

2020-03-29 09:17:57.944 [ERROR] [id.internal.WorxLandroidMowerHandler] - RefreshStatusRunnable 201830190902001711FE: Unknown error
org.openhab.binding.worxlandroid.internal.webapi.WebApiException: java.io.IOException: Broken pipe
    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:102) [bundleFile:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_242]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_242]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_242]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Broken pipe
    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.IOException: Broken pipe
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.flush(SslConnection.java:928) ~[?:?]
    at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[?:?]
    at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277) ~[?:?]
    at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381) ~[?:?]
    at org.eclipse.jetty.client.http.HttpSenderOverHTTP$HeadersCallback.process(HttpSenderOverHTTP.java:249) ~[?:?]
    at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.http.HttpSenderOverHTTP.sendHeaders(HttpSenderOverHTTP.java:62) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpSender.send(HttpSender.java:212) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.http.HttpChannelOverHTTP.send(HttpChannelOverHTTP.java:85) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpChannel.send(HttpChannel.java:128) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpConnection.send(HttpConnection.java:201) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.http.HttpConnectionOverHTTP$Delegate.send(HttpConnectionOverHTTP.java:252) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.send(HttpConnectionOverHTTP.java:121) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.http.HttpDestinationOverHTTP.send(HttpDestinationOverHTTP.java:38) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpDestination.process(HttpDestination.java:346) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpDestination.process(HttpDestination.java:304) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpDestination.send(HttpDestination.java:294) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpDestination.send(HttpDestination.java:269) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpDestination.send(HttpDestination.java:246) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpClient.send(HttpClient.java:580) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:728) ~[bundleFile:9.4.20.v20190813]
    at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:681) ~[bundleFile:9.4.20.v20190813]
    at org.openhab.binding.worxlandroid.internal.webapi.request.WebApiRequest.callWebApi(WebApiRequest.java:92) ~[bundleFile:?]
... 11 more
2020-03-29 09:18:24.943 [INFO ] [orxlandroid.internal.mqtt.AWSMessage] - onSuccess

Is it possible to configure the polling interval? The status currently updates about every minute.

Stefan

Thank you for your feedback!

Possible but not at the moment…

1 Like

Thank you for your feedback!

Another user reported this issue to me and I already created an issue yesterday:
https://github.com/nibi79/worxlandroid/issues/4

Yes! I’ll implement this as soon as possible.
https://github.com/nibi79/worxlandroid/issues/8

1 Like

Hi, many thanks for the binding!
I’ve tried it and it works partly well:

  • I can connect to the mower and I can control it
  • I can see that the mqqt response seems to work: 2020-03-29 13:30:37.859 [INFO ] [.worxlandroid.internal.mqtt.AWSTopic] - onMessage: {“cfg”:{“id”:1,“lg”:“it”," …

But:
The items are not fílled with data, except for the Last Update Online Status and the online Status

Do you have any idea on how to solve the problem or how dive deeper?

Many thanks,
Wolfgang

Hi Wolfgang,

can you post your .items and .sitemap?

Here you go (it’s actually a copy of your example, I hope :wink:

// Landroid API

Group LandroidBattery

String LandroidAction “Action” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:common#action”}
String LandroidSerialNumber “Serial Number [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:cfgCommon#serialNumber”}

String LandroidLastUpdate “Last Update Data [%1$tA: %1$tH:%1$tM]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:cfgCommon#lastUpdate”}
//
//String LandroidSerialNumber “Serial Number [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:cfgCommon#serialNumber”}
String LandroidMacAddress “MAC [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#macAdress”}
Number LandroidFirmware “Firmware [v%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#firmware”}
Switch LandroidOnline “Online [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:common#online”}
String LandroidLastUpdateOnlineStatus “Last Update Online Status [%1$tA: %1$tH:%1$tM]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:common#lastUpdateOnlineStatus”}

// Status
Number LandroidWifiQuality “Wifi Quality [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#wifiQuality”}
Switch LandroidBatteryCharging “Battery charging [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datBattery#batteryCharging”}
Number LandroidStatusCode “Status Code [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#statusCode”}
String LandroidStatusDescription “Status [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#statusDescription”}
Number LandroidErrorCode “Error Code [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#errorCode”}
String LandroidErrorDescription “Error: [%s]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datCommon#errorDescription”}

// Battery
Number LandroidBatteryLevel “Battery Level [%d %%]” (LandroidBattery) {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datBattery#batteryLevel”}
Number LandroidBatteryVoltage “Battery Voltage [%.2f V]” (LandroidBattery) {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datBattery#batteryVoltage”}
Number LandroidBatteryTemperature “Battery Temperature [%.1f °C]” (LandroidBattery) {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datBattery#batteryTemperature”}
Number LandroidBatteryChargeCycle “Battery ChargeCycle [%d]” (LandroidBattery) {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datBattery#batteryChargeCycle”}

// Settings
Number LandroidRainDelay “Rain Delay [%d min]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:cfgCommon#rainDelay”}
Number LandroidScheduleTimeExtension “Schedule Time Extension [%d %%]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datSc#scheduleTimeExtension”}

// Statistics
Number LandroidTotalTime “Total Time [%s min]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datSt#totalTime”}
Number:Length LandroidTotalDistance “Total Distance [%s m]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datSt#totalDistance”}
Number LandroidTotalBladeTime “Total Bladetime [%s min]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datSt#totalBladeTime”}

//Schedule
// Monday
Number LandroidScheduleMondayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScMonday#scheduleStartHour”}
Number LandroidScheduleMondayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScMonday#scheduleStartMinutes”}
Number LandroidScheduleMondayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScMonday#scheduleDuration”}
Switch LandroidScheduleMondayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScMonday#scheduleEdgecut”}

// Tuesday
Number LandroidScheduleTuesdayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScTuesday#scheduleStartHour”}
Number LandroidScheduleTuesdayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScTuesday#scheduleStartMinutes”}
Number LandroidScheduleTuesdayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScTuesday#scheduleDuration”}
Switch LandroidScheduleTuesdayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScTuesday#scheduleEdgecut”}

// Wednesday
Number LandroidScheduleWednesdayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScWednesday#scheduleStartHour”}
Number LandroidScheduleWednesdayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScWednesday#scheduleStartMinutes”}
Number LandroidScheduleWednesdayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScWednesday#scheduleDuration”}
Switch LandroidScheduleWednesdayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScWednesday#scheduleEdgecut”}

// Thursday
Number LandroidScheduleThursdayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScThursday#scheduleStartHour”}
Number LandroidScheduleThursdayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScThursday#scheduleStartMinutes”}
Number LandroidScheduleThursdayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScThursday#scheduleDuration”}
Switch LandroidScheduleThursdayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScThursday#scheduleEdgecut”}

// Friday
Number LandroidScheduleFridayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScFriday#scheduleStartHour”}
Number LandroidScheduleFridayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScFriday#scheduleStartMinutes”}
Number LandroidScheduleFridayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScFriday#scheduleDuration”}
Switch LandroidScheduleFridayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScFriday#scheduleEdgecut”}

// Saturday
Number LandroidScheduleSaturdayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSaturday#scheduleStartHour”}
Number LandroidScheduleSaturdayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSaturday#scheduleStartMinutes”}
Number LandroidScheduleSaturdayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSaturday#scheduleDuration”}
Switch LandroidScheduleSaturdayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSaturday#scheduleEdgecut”}

// Sunday
Number LandroidScheduleSundayStartHour “Start Hour [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSunday#scheduleStartHour”}
Number LandroidScheduleSundayStartMinutes “Start Minutes [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSunday#scheduleStartMinutes”}
Number LandroidScheduleSundayDuration “Duration [%d]” {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSunday#scheduleDuration”}
Switch LandroidScheduleSundayEdgecut "Edgecut " {channel=“worxlandroid:mower:rasenprinz:201930198401024128C8:datScSunday#scheduleEdgecut”}

sitemap landroid label=“Landroid”
{
Frame {
Switch item=LandroidAction mappings=[START=“Start”, STOP=“Stop”, HOME=“Go Home”]
Text item=LandroidLastUpdate
}
Frame {
Text item=LandroidSerialNumber
Text item=LandroidFirmware
Text item=LandroidMacAddress
Text item=LandroidOnline //mappings=[OFF=“Offline”, ON=“Online”]
Text item=LandroidLastUpdateOnlineStatus
}
Frame label=“Status”{
Text item=LandroidWifiQuality
Text item=LandroidBatteryCharging
Text item=LandroidStatusCode
Text item=LandroidStatusDescription
Text item=LandroidErrorCode
Text item=LandroidErrorDescription
}
Frame label=“Battery”{
Text item=LandroidBatteryLevel
Text item=LandroidBatteryVoltage
Text item=LandroidBatteryTemperature
Text item=LandroidBatteryChargeCycle
}
Frame label=“Settings” {
Setpoint item=LandroidScheduleTimeExtension minValue=-100 maxValue=100 step=10
Text label=“Schedule” icon=“time”{
Frame label=“Schedule Monday” {
Setpoint item=LandroidScheduleMondayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleMondayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleMondayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleMondayEdgecut
}
Frame label=“Schedule Tuesday” {
Setpoint item=LandroidScheduleTuesdayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleTuesdayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleTuesdayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleTuesdayEdgecut
}
Frame label=“Schedule Wednesday” {
Setpoint item=LandroidScheduleWednesdayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleWednesdayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleWednesdayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleWednesdayEdgecut
}
Frame label=“Schedule Thursday” {
Setpoint item=LandroidScheduleThursdayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleThursdayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleThursdayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleThursdayEdgecut
}
Frame label=“Schedule Friday” {
Setpoint item=LandroidScheduleFridayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleFridayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleFridayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleFridayEdgecut
}
Frame label=“Schedule Saturday” {
Setpoint item=LandroidScheduleSaturdayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleSaturdayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleSaturdayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleSaturdayEdgecut
}
Frame label=“Schedule Sunday” {
Setpoint item=LandroidScheduleSundayStartHour minValue=0 maxValue=23 step=1
Setpoint item=LandroidScheduleSundayStartMinutes minValue=0 maxValue=45 step=15
Setpoint item=LandroidScheduleSundayDuration minValue=15 maxValue=1425 step=15
Switch item=LandroidScheduleSundayEdgecut
}
}
Setpoint item=LandroidRainDelay minValue=0 maxValue=750 step=30
}
Frame label=“Statistic” {
Text item=LandroidTotalTime
Text item=LandroidTotalDistance label=“Total Distance [%.2f km]”
Text item=LandroidTotalBladeTime
}
Frame label=“Battery”
{
Switch item=CHART_PERIOD label=“Zeitspanne” mappings=[0=“Stunde”, 1=“Tag”, 2=“Woche”]
Chart item=LandroidBattery period=h refresh=300 legend=true visibility=[CHART_PERIOD==0, CHART_PERIOD==“Uninitialized”]
Chart item=LandroidBattery period=D refresh=1800 visibility=[CHART_PERIOD==1]
Chart item=LandroidBattery period=W refresh=3600 visibility=[CHART_PERIOD==2]
}
}

ok that seems not to be the problem!

Did you just restart oh?

And please enable debug log in Karaf console
log:set DEBUG org.openhab.binding.worxlandroid

Yes, I rebootet the system several times and performed also an update of the Openhab etc.

2020-03-29 16:20:02.962 [DEBUG] [d.internal.WorxLandroidBridgeHandler] - publish topic -> PRM100/98D8632DD5DA/commandIn

2020-03-29 16:20:02.964 [DEBUG] [d.internal.WorxLandroidBridgeHandler] - publish message -> {}

2020-03-29 16:20:31.609 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/product-items

2020-03-29 16:20:32.050 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: [{"id":338233,"product_id":49,"user_id":210196,"serial_number":"201930198401024128C8","mac_address":"98D8632DD5DA","name":"rasenprinz","setup_location":null,"locked":true,"firmware_version":2.92,"firmware_auto_upgrade":true,"distance_covered":121257,"mower_work_time":7013,"blade_work_time":6648,"battery_charge_cycles":92,"messages_in":663,"messages_out":17946,"push_notifications":true,"city":null,"sim":null,"push_notifications_level":"notice","lawn_size":300,"lawn_perimeter":null,"raw_messages_in":663,"raw_messages_out":17946,"test":0,"iot_registered":true,"warranty_registered":false,"pin_code":null,"time_zone":null,"purchased_at":null,"warranty_expires_at":null,"registered_at":"2019-06-13 00:00:00","online":true,"app_settings":null,"accessories":null,"features":{"unrestricted_mowing_time":true,"multi_zone":true,"wifi_connection":"smartlink_tube_display","display_type":"tube","lock":true,"pin":true,"rain_delay":true,"chassis":"m_2019","mqtt":true,"provisionable":true,"wifi_pairing":"smartlink","tracking_firmware":true,"provisoning_replaceable":true},"auto_schedule_settings":null,"auto_schedule":false,"pending_radio_link_validation":null,"mqtt_topics":{"command_in":"PRM100\/98D8632DD5DA\/commandIn","command_out":"PRM100\/98D8632DD5DA\/commandOut"},"created_at":"2019-03-03 06:20:05","updated_at":"2020-03-27 01:21:44"}]

Maybe this is also relevant. After the Response the following 2 items are set:

==> /var/log/openhab2/events.log <==

2020-03-29 16:36:42.574 [vent.ItemStateChangedEvent] - LandroidLastUpdateOnlineStatus changed from 2020-03-29T16:35:42.260+0200 to 2020-03-29T16:36:42.553+0200

2020-03-29 16:36:42.578 [vent.ItemStateChangedEvent] - worxlandroid_mower_rasenprinz_201930198401024128C8_common_lastUpdateOnlineStatus changed from 2020-03-29T16:35:42.260+0200 to 2020-03-29T16:36:42.553+0200

Maybe a problem parsing the json?

I don’t think so. But please send me your complete ->[.worxlandroid.internal.mqtt.AWSTopic] - onMessage: {“cfg”:{“id”:1,“lg”:“it”," … via PM

I just released version v0.2

Now it’s possible to set the interval for ‘polling’ and ‘refreshStatus’.

@DonStefano after installing the new version, for a first test increase the ‘refreshStatusInterval’ to 300 (this fixed the issue #4 reported by the other user)

2 Likes

Many thanks for your work on that. I tryed Version 0.2 but didn´t get the Bridge Online.

Openhab.log

Line 33543: 2020-03-29 22:26:30.118 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/oauth/token
	Line 33544: 2020-03-29 22:26:35.124 [WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing 'worxlandroid:worxlandroidBridge:26acd03c' takes more than 5000ms.
	Line 33544: 2020-03-29 22:26:35.124 [WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing 'worxlandroid:worxlandroidBridge:26acd03c' takes more than 5000ms.
	Line 33545: 2020-03-29 22:26:36.891 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"token_type":"Bearer","expires_in":31536000,"access_token":"***hidden for debug log***","refresh_token":"***hidden for debug log***"}
	Line 33548: 2020-03-29 22:26:36.901 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/users/me
	Line 33549: 2020-03-29 22:26:37.048 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"id":216423,"email":"EMAIL","name":"Karsten","surname":"SURNAME","user_type":"customer","locale":"en","push_notifications":true,"location":{"latitude":52.,"longitude":10.},"terms_of_use_agreed":true,"country_id":276,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-06-22 13:27:29","updated_at":"2019-06-22 13:45:10"}
	Line 33552: 2020-03-29 22:26:37.058 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/users/certificate
	Line 33553: 2020-03-29 22:26:37.466 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"id":120913,"pkcs12":"***hidden for debug log***","active":true,"created_at":"2019-06-22 13:40:45","updated_at":"2019-06-22 13:40:45"}
	Line 33610: 2020-03-29 22:27:59.376 [ERROR] [d.internal.WorxLandroidBridgeHandler] - error: null
	Line 33617: 2020-03-29 22:30:53.279 [ERROR] [d.internal.WorxLandroidBridgeHandler] - Verbindung zu Client ist getrennt (32101)
	Line 33625: 	at org.openhab.binding.worxlandroid.internal.WorxLandroidBridgeHandler.dispose(WorxLandroidBridgeHandler.java:166) [bundleFile:?]
	Line 33625: 	at org.openhab.binding.worxlandroid.internal.WorxLandroidBridgeHandler.dispose(WorxLandroidBridgeHandler.java:166) [bundleFile:?]
	Line 33625: 	at org.openhab.binding.worxlandroid.internal.WorxLandroidBridgeHandler.dispose(WorxLandroidBridgeHandler.java:166) [bundleFile:?]
	Line 33641: 2020-03-29 22:30:55.461 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/oauth/token
	Line 33642: 2020-03-29 22:31:00.464 [WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing 'worxlandroid:worxlandroidBridge:26acd03c' takes more than 5000ms.
	Line 33642: 2020-03-29 22:31:00.464 [WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing 'worxlandroid:worxlandroidBridge:26acd03c' takes more than 5000ms.
	Line 33643: 2020-03-29 22:31:04.315 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"token_type":"Bearer","expires_in":31536000,"access_token":"***hidden for debug log***","refresh_token":"***hidden for debug log***"}
	Line 33646: 2020-03-29 22:31:04.320 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/users/me
	Line 33647: 2020-03-29 22:31:04.490 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"id":216423,"email":"EMAIL","name":"Karsten","surname":"Surname","user_type":"customer","locale":"en","push_notifications":true,"location":{"latitude":52.,"longitude":10.},"terms_of_use_agreed":true,"country_id":276,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-06-22 13:27:29","updated_at":"2019-06-22 13:45:10"}
	Line 33650: 2020-03-29 22:31:04.502 [DEBUG] [nternal.webapi.request.WebApiRequest] - URI: https://api.worxlandroid.com/api/v2/users/certificate
	Line 33651: 2020-03-29 22:31:05.077 [DEBUG] [nternal.webapi.request.WebApiRequest] - Worx Landroid WebApi Response: {"id":120913,"pkcs12":"***hidden for debug log***","active":true,"created_at":"2019-06-22 13:40:45","updated_at":"2019-06-22 13:40:45"}
	Line 33709: 2020-03-29 22:32:37.419 [ERROR] [d.internal.WorxLandroidBridgeHandler] - error: null

any idea how i can fix that?

BR
Karsten

great binding Nils,
installation and configuration was done in less than 5 minutes and it immediately worked. I used the GUI to create and configure the bridge. easy …
again, thanks for the binding!

1 Like

as assumed it was a lock for 24 hours. Worx locks the account when there are to many requests.

But now it worx again :rofl:

1 Like

I’m happy to report that my installation is now working. After renaming the bridge in the .things file several times and restarting openhab it’s now working well. I assume my (in the meantime extensive) openhab installation got a hick-up which was resolved by renaming the bridge in the .things file. Cleaning the cache several times before didn’t do the job.

Many thanks to nibi79 for the friendly help and the great binding!

1 Like

the requests which locked the account came form the landroid-bridge and not from the binding

1 Like

Everthing worx great now :slight_smile: