Worx Landroid Binding

I have the V4 binding now running since 3 days without any issues, reconnect interval is set to 300.

1 Like

I have no idea what else I can do. Now I can’t get it to run at all. I have deleted the cache several times and uninstalled the binding several times. When it runs, it runs for about an hour. My reconnection time is set to 600. I have also tried to increase the log level of the binding but there is not much more log output.

Make sure you have the correct permissions for the binding in the addons folder, it needs to be <user:group> openhab:openhab:

sudo chown openhab:openhab <filename>

Bevor issuing the ommand check the permission:


sudo ls -l <filename>

That does not make sense. Doing it once is sufficient. Note that after clearing the cache and tmp openHAB downloads all bindings again and needs some time to settle down again. Sometimes more than one restart is needed.
Also make sure you have java 17 installed, not java 11.

I deleted all Things and created them again, restarted several times and now it seems to work. For whatever reason


1 Like

Hi!

I’ve downloaded the jar and installed in release OH 4.0.0. When I started the binding I’ve got this error message under the property page of BRIDGE:

COMMUNICATION_ERROR

Unexpected error deserializing ‘[{“id”:599451,“uuid”:“*****-****-****-****-**********”,“product_id”:70,“user_id”:*****,“serial_number”:“***************”,“mac_address”:“A0B1C2D3E4F5”,“name”:“M”,“locked”:false,“firmware_version”:3.3,“firmware_auto_upgrade”:true,“push_notifications”:true,“sim”:null,“push_notifications_level”:“notice”,“test”:false,“iot_registered”:true,“mqtt_registered”:true,“pin_code”:null,“registered_at”:“2021-10-16 00:00:00”,“online”:true,“app_settings”:null,“protocol”:0,“pending_radio_link_validation”:null,“capabilities”:[“auto_lock”,“bluetooth_control”,“bluetooth_pairing”,“border_cut”,“digital_fence_settings”,“follow_border”,“lock”,“mqtt”,“multi_zone”,“multi_zone_percentage”,“one_time_scheduler”,“pairing_smartconfig”,“pause_over_wire”,“rain_delay”,“rain_delay_start”,“safe_go_home”,“scheduler_two_slots”,“unrestricted_mowing_time”,“zone_keeper”],“capabilities_available”:,“features”:{“auto_lock”:3.25,“bluetooth_control”:3.2,“bluetooth_pairing”:true,“chassis”:“m_2021”,“digital_fence_settings”:3.25,“display_type”:“lcd”,“input_type”:“keyboard_push_knob”,“lock”:true,“mqtt”:true,“multi_zone”:true,“multi_zone_percentage”:true,“multi_zone_zones”:4,“one_time_scheduler”:3.15,“pause_over_wire”:3.26,“rain_delay”:true,“rain_delay_start”:3.08,“safe_go_home”:3.25,“scheduler_two_slots”:3.15,“unrestricted_mowing_time”:true,“wifi_pairing”:“smartconfig”},“accessories”:{“ultrasonic”:true},“mqtt_endpoint”:“iot.eu-west-1.worxlandroid.com”,“mqtt_topics”:{“command_in”:“PRM100/A0B1C2D3E4F5/commandIn”,“command_out”:“PRM100/A0B1C2D3E4F5/commandOut”},“warranty_registered”:true,“purchased_at”:“2021-10-11 00:00:00”,“warranty_expires_at”:“2023-10-11 00:00:00”,“setup_location”:{“latitude”:,“longitude”:},“city”:{“id”:*****,“country_id”:*****,“name”:“The name of my city.”,“latitude”:,“longitude”:,“created_at”:“2018-02-15 22:09:04”,“updated_at”:“2018-02-15 22:09:04”},“time_zone”:“Europe/Budapest”,“lawn_size”:250,“lawn_perimeter”:96,“auto_schedule_settings”:{“boost”:2,“exclusion_scheduler”:{“days”:[{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false},{“slots”:,“exclude_day”:false}],“exclude_nights”:false},“grass_type”:“mixed_species”,“irrigation”:true,“nutrition”:{“k”:8,“n”:14,“p”:4},“soil_type”:“silt”},“auto_schedule”:true,“improvement”:true,“diagnostic”:true,“distance_covered”:673748,“mower_work_time”:41742,“blade_work_time”:40947,“blade_work_time_reset”:28872,“blade_work_time_reset_at”:“2023-03-30 16:30:49”,“battery_charge_cycles”:305,“battery_charge_cycles_reset”:14,“battery_charge_cycles_reset_at”:“2022-03-27 17:22:37”,“created_at”:“2021-07-15 04:56:13”,“updated_at”:“2023-05-26 18:10:57”,“last_status”:{“timestamp”:“2023-07-25 09:11:37”,“payload”:{“cfg”:{“id”:0,“sn”:“**********”,“dt”:“25/07/2023”,“tm”:“11:11:38”,“lg”:“en”,“cmd”:0,“sc”:{“m”:1,“d”:[[“11:00”,75,1],[“11:00”,75,0],[“11:00”,75,0],[“11:00”,75,1],[“11:00”,75,0],[“11:00”,75,0],[“11:00”,75,0]],“dd”:[[“18:00”,75,0],[“18:00”,75,0],[“18:00”,75,0],[“18:00”,75,0],[“18:00”,75,0],[“18:00”,75,0],[“18:00”,75,0]],“distm”:0,“p”:0,“ots”:{“wtm”:0,“bc”:0}},“mz”:[0,0,0,0],“mzv”:[0,0,0,0,0,0,0,0,0,0],“mzk”:0,“rd”:0,“al”:{“lvl”:0,“t”:60},“tq”:0,“modules”:{“US”:{“enabled”:1}}},“dat”:{“mac”:“***************”,“fw”:3.3,“fwb”:1,“ls”:7,“le”:0,“conn”:“wifi”,“bt”:{“t”:31.1,“v”:19.87,“p”:100,“nr”:305,“c”:0,“m”:1},“dmp”:[-1.4,2.4,143.4],“st”:{“b”:40958,“d”:673903,“wt”:41753,“bl”:96},“act”:1,“rsi”:-83,“lk”:0,“tr”:0,“lz”:0,“rain”:{“s”:0,“cnt”:0},“modules”:{“US”:{“stat”:“ok”}}}}}}]’
(I replaced serial, MAC, location, and address values for privacy. Might made some errors with JSON format.)

Have I done something wrong?

And apart from that I’ve got some issues with the mower thing page. The first paramter has no label displayed.

What param is that and what should I put in there? Some timeout or interval? Or any other textual info?

Thanks.

Does the Worx app work? If not, you may be blocked for 24 hours.
Edit: check this github entry:

Same here. Issue created:

The IP adress of your mower.

Hi!

Thanks for the reply. My app is working, it tells me that my mower is currently mowing and updates data correctly.
I entered the IP address of my mower (it is my local address? Do I need my router address here?) but nothing changed. The binding gives me the same error. If I validate my JSON without manipulating data (private MAC or location) a JSON validator ensures me that it is a correct JSON format.
Should I +1 the issue on github with this? EDIT: Never mind I’ve replied there already.

Yes.

I’m pretty sure if the developers have some spare time they will have a look.

I don’t have the json error (OH4 Release) and most of the binding is already working.

Ok, thank you for your help again!

I removed both bridge and mower. I emptried cache and recreated the bridge only. Same JSON error occured.

Waithing for devs. :sleeping:

Bug found, correction pushed to the git repo.
Updated jar : https://github.com/clinique/marketplace/blob/main/org.openhab.binding.worxlandroid-4.1.0-SNAPSHOT.jar

2 Likes

That is now working!

Thank you a lot!

1 Like

Looks like it needs to be the serial number, not the IP adress, sorry. :sunglasses:

1 Like

Hi to all,

first of all, thanks a lot for maintaining this binding!

After migration from OH3.4.2 to OH 4.0.1 I’m missing some channels.

Most Importand for me: The channel previously found with “datCommon#errorCode” and “datCommon#statusCode”

I need those Items again a numeric values. Is there any chance to get this, or is there a new way in OH4?

Thanks for your support!

Same here.
I had to recreate the Mower Thing and then update the changed channels in the item file.

1 Like

Hi to all,

the first issue - missing integer Error/StatusCode is resolved in “reverse” transforming the Description Codes.

Now i identified the next issue: I can’t change the zone setting “Meters Zone 1” - “LandroidMeterZone1”

I hope this issue can be resolved soon - this is essential for me, as I’m working with 7 zones

I can confirm this, just tested with openHAB 4.0.0 Release and binding version 4.1.0.202307251039.

Michael, you should open an issue to have this tracked and finally fixed:

I think these are now:

common#status and common#error and changed from Number ItemType to String ItemType.

Numeric codes are API internal, they are replaced by the string equivalent in this version of the binding making it more readable in scripts. Instead of reversing the strings to code, you could have better replacing numeric codes by strings in your scripts. You can find all codes here starting line #80

I’m afraid I won’t have the ability to look at this one until mid-august - being back from holidays.

Hi @glhopital ,

thanks for providing the org.openhab.binding.worxlandroid-4.1.0-SNAPSHOT Snapshot of the Binding.
Meanwhile I understood that i used cached legacy Versions all the time because I did not delete the items and added them again.

Okay nice, I’ve tried to set the start time for a workday (Friday) and I get the error shown below.
Did I configured something wrong.

2023-08-04 12:19:52.826 [INFO ] [nhab.automation.script.ui.af230f0a67] - DayOfTheWeek is: FRI
2023-08-04 12:19:52.828 [INFO ] [nhab.automation.script.ui.af230f0a67] - Calculated Time to Start Mowing is: 2023-08-04T19:37+02:00

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

2023-08-04 12:19:53.831 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'WorxLandroidS_FRI_ScheduleDuration' received command 89.0
2023-08-04 12:19:53.832 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'WorxLandroidS_FRI_ScheduleDuration' predicted to become 89.0
2023-08-04 12:19:53.832 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'WorxLandroidS_FRI_ScheduleDuration' updated to 89.0
2023-08-04 12:19:53.833 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'WorxLandroidS_FRI_ScheduleDuration' changed from 90 to 89.0

==> /var/log/openhab/openhab.log <==

2023-08-04 12:19:53.837 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.worxlandroid.internal.handler.WorxLandroidMowerHandler@41fa4718': No enum constant org.openhab.binding.worxlandroid.internal.codes.WorxLandroidDayCodes.friday

java.lang.IllegalArgumentException: No enum constant org.openhab.binding.worxlandroid.internal.codes.WorxLandroidDayCodes.friday
	at java.lang.Enum.valueOf(Enum.java:273) ~[?:?]
	at org.openhab.binding.worxlandroid.internal.codes.WorxLandroidDayCodes.valueOf(WorxLandroidDayCodes.java:1) ~[?:?]
	at org.openhab.binding.worxlandroid.internal.handler.WorxLandroidMowerHandler.setScheduledDays(WorxLandroidMowerHandler.java:476) ~[?:?]
	at org.openhab.binding.worxlandroid.internal.handler.WorxLandroidMowerHandler.lambda$5(WorxLandroidMowerHandler.java:354) ~[?:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.openhab.binding.worxlandroid.internal.handler.WorxLandroidMowerHandler.handleCommand(WorxLandroidMowerHandler.java:342) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) ~[?:?]
	at org.openhab.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) ~[?:?]
	at jdk.proxy5786.$Proxy5945.handleCommand(Unknown Source) ~[?:?]
	at org.openhab.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:85) ~[?:?]
	at org.openhab.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) ~[?:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

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

2023-08-04 12:19:54.837 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'WorxLandroidS_FRI_StartTime' received command 2023-08-04T19:37:00.000+0200

2023-08-04 12:19:54.839 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'WorxLandroidS_FRI_StartTime' predicted to become 2023-08-04T19:37:00.000+0200

2023-08-04 12:19:54.840 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'WorxLandroidS_FRI_StartTime' updated to 2023-08-04T19:37:00.000+0200

2023-08-04 12:19:54.841 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'WorxLandroidS_FRI_StartTime' changed from 2023-08-04T17:00:00.000+0200 to 2023-08-04T19:37:00.000+0200