Robonect binding / Automower WLAN Module

Tags: #<Tag:0x00007f832dbe8860>

Hi,

I’m using you binding since 4 weeks with a Gardena R100Li (== Gardena sileno). I use the 1.0 beta 6 from robonect. All the basics are working properly. Thanks for this great binding !

Two things are not working with my setup.

Health

health-temperature and health-humidity are not working. I have no error in the logs but no values associated to items.

Here is the response to http://tondeuse/json?cmd=status

{"name": "Robonect", "id": "XXXXXX", "status": {"status": 17, "distance": 0, "stopped": false, "door": false, "duration": 1002, "mode": 2, "battery": 100, "hours": 68}, "timer": {"status": 0}, "blades": {"quality": 89, "hours": 12, "days": 10}, "wlan": {"signal": -86}, "health": {"temperature": 32, "humidity": 37}, "clock": {"date": "2018-07-21", "time": "16:44:29", "unix": 1532191469}, "successful": true}

Job

I can’t make job request work.

My definition of item :

Switch mowerOneHourJob "Start mowing for one hour from now" {channel="robonect:mower:automower:job",remoteStart="REMOTE_1",afterMode="HOME",duration="60"}

I got the following error when changing switch state :

2018-07-21 16:55:27.369 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.robonect.handler.RobonectHandler@4e3177e7': Name is null
java.lang.NullPointerException: Name is null
	at java.lang.Enum.valueOf(Enum.java:236) [?:?]
	at org.openhab.binding.robonect.internal.model.cmd.ModeCommand$Mode.valueOf(ModeCommand.java:1) [250:org.openhab.binding.robonect:2.4.0.201807211101]
	at org.openhab.binding.robonect.handler.RobonectHandler.handleJobCommand(RobonectHandler.java:158) [250:org.openhab.binding.robonect:2.4.0.201807211101]
	at org.openhab.binding.robonect.handler.RobonectHandler.sendCommand(RobonectHandler.java:144) [250:org.openhab.binding.robonect:2.4.0.201807211101]
	at org.openhab.binding.robonect.handler.RobonectHandler.handleCommand(RobonectHandler.java:104) [250:org.openhab.binding.robonect:2.4.0.201807211101]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at com.sun.proxy.$Proxy193.handleCommand(Unknown Source) [250:org.openhab.binding.robonect:2.4.0.201807211101]
	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at sun.reflect.GeneratedMethodAccessor290.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

Thanks again for you job on this binding.

Hi Christoph,

Sorry for the late response. Looking at your log, now I understand the beep. The reason is actually, that for some unkown reason the status cannot be queried and the binding has a timeout. This takes the binding in an error state where it tries later to request the version info etc. again. Unfortunately this info cannot be retrieved without waking the mower. This causes the beep. I have to review, if this logic makes really sense. Maybe I can remove this extra version query. However, looks like your mower/module or your openhab does have some WLAN connectivity issues. Fixing this, will also fix the beep :wink:

Hmmm, can you post your item configuration for the health channel? I don’t see any issue in the JSON from the module. Thus I would expect humidity and temperature to work.

For the job. I have to admin that I did not test this on my mower yet and currently have no access. But I have a working unit test. The exception indicates, that your afterMode parameter results somehow in ‘null’ which I do not understand. can you try once to remove all the double quotes in the item config? I’m not sure if these are really required.

Ok, i found my error for this part, i use String instead of Number in item declaration ! :roll_eyes:

But i had another error with health-temperature. Without specific in item declaration format i got an error :
Exception while formatting value '27' of item mowerTemperature with format '%.0f %unit%': Conversion = 'u'

When i put a format in item declaration everything is ok :

Number mowerTemperature "Temperature [%d]" {channel="robonect:mower:automower:health-temperature"}

All is ok now, thanks.

If i don’t put the quotes, I have a syntax error parsing rule :

Configuration model 'tondeuse.items' has errors, therefore ignoring it: [9,132]: mismatched input 'REMOTE_1' expecting RULE_STRING
[9,151]: mismatched input 'HOME' expecting RULE_STRING
[9,165]: mismatched input '60' expecting RULE_STRING

Hi Marco,

thanks for the clarifications. Sounds reasonable. :slight_smile:

OK, unfortunately I cannot try myself now. But I suspect the channel configuration syntax to be wrong somewhat. I could not find any good documentation on that, to verify. But could you try once to set the channel config via PaperUI or HabMin?

For me it looks like it can be done on the Thing level. Maybe OH2 removed the possibility of channel configs on the item!?

If somebody can give a working example of any binding of a channel configuration on item level, that would help.

I tried with no success, i got a 409 confilcts error on paper UI even if i create the item through PaperUI, and no error with Habmin but i get the same exception when changing the switch state. I cannot find a documentation on that either, and i can’t found any other binding using this functionnality.

For now i think i will use a simple rule with a timer or a configuration in the robonect itself. I will try to investigate this later.

Hi guys,

Can someone point me into the right direction. I would like to understand which wlan modules work with this binding.

I see two different options.

/A/ robonect

/B/ Automower connect
https://robomaeher.de/blog/iphone-smartphone-app-automower-connect-fuer-automower-330x320-gprs-modul/

/A/ is half the price of /B/, but it seems no longer available in their shop. Am I missing something?

Regards
Ralf

Those are two completely different things. Automower Connect is the only way of talking to the Automower that is supported by Husqvarna themselves. It’s more expensive (and I also think you need to pay an annual fee?). I think it communicates via mobile network. I’d say this is the better solution if you don’t want to fiddle with your mower.

Robonect is not supported by Husqvarna and the installation of it breaks the warranty on your mower. It’s a very stable product though, I’ve never had any problems with it. You configure it to talk to your wi-fi. It’s the cheaper solution and also you can do more fun stuff with it. And since you’re using openHAB I guess you like fiddling with stuff, right? :wink:

The binding in this thread is for the latter, Robonect.

Hi Daniel,

Runbasteln. Klar.

Das robonect Modul scheint aber nicht mehr käuflich zu erwerben zu sein. Der Webshop sieht tot aus …

Hi Ralf,

Glaube, der vertieb läuft noch. Siehe hier

Oh, I forgot to mention one thing… The greatest problem with Robonect is that the entire community around it is in german. Somehow germans seem to think that rest of the world understand their language so it took me quite some time with Google Translate before I dared buying it. Fortunately the openHAB forum is entirely in english…

Das sollte kein Problem sein ,-). In case you need help I can try to help out … let me know.

1 Like

Hello,

I ordered it. Installation was flawless. Configuration was flawless as well. It works at least in the living room ,-).

Two questions.

  • There is no item to lower/higher the “cut height”, right?
  • I was running it in the living room (cold outside) and there was obviously no “outer cable” (aka Schleifensignal). I expected the display to show me that, but it did not. Is this expected?

Regards
Ralf

Congrats, you will have fun :wink:

To answer your questions. No, there is no item for the “cut height”. I did not check it that functiality is available for some mowers in newer firmware of robonect. At the time writing the binding, this did not exist. Also my cheap am105 has a manual handle for this.

For the running “outside cable”, I don’t know. I never tried this. But I know that mine definitely complained when being on the wrong side of the cable, but close to it. Probably it “thinks” it is in the middle of some field, far away from the cable, if there is no signal, thus running. But this is just an assumption.

Anyways, what mower do you have and which robonect firmware are you running?

Husqvarna Automower 320
Newest Firmware 1.0Beta7a

Hello,

I am running on a Pi3B+ which was at 5% CPU load until I installed Rononect Plugin. Now the Pi runs at 60% CPU load. Have you similar issues and is this expected?

Hi Ralf,
No, my system stays somewhere around 5% with some short term peaks of around 25% on a Pi2B. However, my OH installation is a 2.3 snapshot (shame on me)

what polling interval did you configure?

Thing robonect:mower:schafi "Mower" @ "Garden" [ host="xx.xx.xx.xx", pollInterval="60", offlineTimeout="60", user="xxx", password = "xxx"]

I did a rebbot and now its at 10%. Much better. Sorry for blaiming robonect. Not sure what happend. It started with installing the plugin.