Neato BotVac Connected binding?

There’s a PR submitted by @scurb:

Anyone can actually fork the branch and fix the code review remarks and submit a new PR with Also-by: ... sign-off.
Alternatively, one could submit a PR against @scurb’s repository.
There are options :slight_smile:

If the binding from the PR was added to the features.xml (as @martinvw mentioned) , it would be picked up by the distro and furthermore available here.

2 Likes

Dear all

I have seen that the following problem has been discussed in this thread several times but unfortunately I didn’t find the solution:

I’m getting the following error again and again.

2017-10-08 19:17:41.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:17:42.112 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:17:51.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:17:52.109 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:01.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:02.118 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:11.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:12.110 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:21.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:22.110 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:31.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:32.101 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:41.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:42.123 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:18:51.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:18:52.109 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:19:01.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:19:02.145 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:19:11.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:19:12.089 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:19:21.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:19:22.103 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:19:31.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:19:32.110 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200
2017-10-08 19:19:41.754 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200
2017-10-08 19:19:42.136 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200

How can I get rid of this?

Thanks & regards
John

Hi Bernd,

Can you send me the VR200 jar file too?
Thanks a lot.

Best regards crax

Hi Daniel,

rename the .pdf file to .jar and put the .jar file in your addons dir.

have fun
Bernd

org.openhab.binding.neato-2.0.0-SNAPSHOT.pdf (387 KB)

3 Likes

Hey Bernd,

thanks a lot for the jar file.
The log show me every 5 seconds this entry:

2017-10-13 09:53:25.323 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200

2017-10-13 09:53:25.704 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200

2017-10-13 09:53:30.743 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200

2017-10-13 09:53:31.144 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200

2017-10-13 09:53:33.120 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Mein VR200

2017-10-13 09:53:33.474 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Mein VR200

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

2017-10-13 09:53:34.042 [ItemStateChangedEvent ] - avm_546E_AQ_power changed from 42.270 to 42.340

ist this normal?

Hi,

that is ok, the binding polls …

HI Bernd,
your neato binding for the Vorwerk VR200 works, but it mad a lot of traffik.
In the openhab.log nearly every second is:
2017-10-12 21:22:16.555 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot VR200
2017-10-12 21:22:16.830 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for VR200
Sometimes also an [Error] wich is also seen in karaf window:
java.io.IOException: Server returned HTTP response code: 504 for URL: https://nucleo.ksecosys.com/vendors/vorwerk/robots/4TPINLMN-508CB1247711/messages
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.openhab.binding.neato.internal.VendorVorwerk.executeRequest(VendorVorwerk.java:76)
at org.openhab.binding.neato.internal.NeatoRobot.callNeatoWS(NeatoRobot.java:105)
at org.openhab.binding.neato.internal.NeatoRobot.sendGetState(NeatoRobot.java:173)
at org.openhab.binding.neato.handler.NeatoHandler.refreshStateAndUpdate(NeatoHandler.java:139)
at org.openhab.binding.neato.handler.NeatoHandler$1.run(NeatoHandler.java:159)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

Has anybody an idea?
Because of this sometimes my rules doesn’t work.

Hope for ideas.

Hans

Hi all!

It has been a while since I made any changes here. However, I realize that I don’t have enough time managing the code and the review process in order to get in included in the OH2 release. Are there any developers in this thread that are willilng to “assist” or “take over”? It’s a pitty that this binding does not exist “in the public” since it works well - at least for me :slight_smile:

Anyone?

Best regards,
Patrik

2 Likes

Hi there, first of all… great work! I hope the project will be kept up and running :slight_smile:

I have been trying this binding for a day now, but I can’t figure it out: It never discover the botvac by itself, and even when I create a thing manually it says the botcav is offline. Now, I know for sure that username, password, serialnumber and secret are correct, as I tested them with pybotvac, so I was wondering what could I try to figure out what’s going wrong :slight_smile:

As I’m very new to all of this, please let me know what I can bring to the table to help debugging :slight_smile:

Ok, I’m such a dummy… I changed my Neato Account password to something simpler and now it works.

Apparently the binding isn’t handling very well special characters in the password :slight_smile:

if anyone is interested in debugging this I’m available.

… now back to play around :slight_smile:

Recently I have issues with the Neato (Thing offline).
The logs show:
Could not find robot_serial for specified vendor_name
Did anyone get this log entry as well?

I can fix it for a brief moment by restarting the neato binding by karaf, but after a few minutes its offline again.

I’m getting a similiar problem, but in my case the log said something about authentication failure, to the point that I had to trhow away the whole openhab installation and start from scratch.

It has to be said that this is truely my first steps in this world, it is entirely possible that I am just committing some mistakes.

Right now, I am struggling with the Controls in the Paper UI. for a moment there I was able to see a pick-up list for the “SendCommand” item, but after that brief moment, everything turned static. I can’t really say what I did :slight_smile:

P.S.: unfortunately all the logs were trhown away as well, I will check in the new ones if there’s anything like yours

Hmm… the same configuration did work properly without issues for a few months.
So without changing anything, it stopped.

By the way - it’s not related to OH only.
The Robot is offline in the official app as well.

et voilà… now I am having issues connecting to the vacuum:

15:21:23.104 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:OPSxxxxxxxxx' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
15:21:23.104 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:OPSxxxxxxxxx' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)

the App works like a charm, instead

Krgds

Hi @anon80769353 (cool name :wink: )

I see this occasionally as well, but it did not cause any problems running the robot from OH.

In my case it seemed to be a general network issue, so I reset the Wifi connection.
So I will monitor if this was the root cause.

You’re right. I was getting thrown by the fact that - while in this state - I could’t see any Controls in the Paper UI.

But when I simply created new ones, then I could see that the information shown were up-to-date (battery level, charging state etc…)… thanks for the little push I needed… I could’ve been stuck here for a while :slight_smile:

… and thank you for the “cool name”, btw… I am not even an English native speaker: I thought it could be a little redundant, but sounded funny enough to me to keep it anyway… I’m glad to here it sounds cool to others too :slight_smile:

me neither, but it’s obvious that it’s funny even without beeing a native speaker…
Although - maybe it’s only funny if you are NOT a native speaker… :wink:

Ok, I think I’m getting the hang of it. I have been able to install and configure the binding.

I had to use the last compilation from GitHUB (20170220) despite the flooding of messages about state changing: the one from fatman42285 compiled in May wasn’t giving that problem, but somehow it wasn’t working for me, as I could never send any command to the botvac, neither was able to read any properties.

Then, I wanted to create a .items and a .sitemap files but I discovered I had better let the Paper UI interface creates the items and then manually create the sitemap from them.

Now I have a pretty plain sitemap with all the info and the commands, and that’s when the fun starts :smiley:

I own a D5 model, and I would like some tips from other owners.

It seems to me that some items aren’t coherent with this model.

Especially, the CleaningMode and the CleaningModifier items.

The Botvac D5 Connected lacks some feature in comparison with its older brother:

  • it doesn’t have a map (does it?)
  • it doesn’t have a turbo mode (on the opposite, it has a “gentle” mode)

My questions for you:

How do you compensate for that?

Every time I start the botvac, it seems to start in “Extra Care” mode, I would like to understand where should Intervene to be able to decide whether I want the gentle approach or not.

Have you been able to draw a cleaning map, or it is limited on the Neato server side?

Last question, and that’s for all, actually:

The binding has a refresh property, usually set to 10 seconds.
Does that mean that every ten seconds we’re going to poll the Neato server? ins’t that going to borderline with a DOS attack :-)?

For information. I’m in the process of completing the Pull Request for this binding. When that pull request is finished, I can take in consideration of extending with support for other models (as contributed already, thanks)! I can also check in the API docs if there has been changes based on models that needs extra care (ex the things you mention about cleaning modes).

I’ll keep you posted.

The binding will have 60s as standard refresh time…

2 Likes

Hello Patrik, nice to here from you.

I’d love to have your skills and contribute more, but while I am not a developer, I definitely appreciate the effort you put into helping out the likes of me that can only contribute by providing as much troubleshooting as it might be needed :slight_smile: