Neato BotVac Connected binding?

Hello everyone,

Just dropped back since a while, to share the news: D3 and D5 now both support Cleaning Summary with Coverage Map, which give us more things to try out :slight_smile:

Hy,
i have installed the addon (org.openhab.binding.neato-2.2.0-SNAPSHOT.jar).
so far everithing is working fine. I can use the status information in sitemap. But I can’t send commands to my neato. If I send the “clean” comman i get this:

2017-12-19 16:24:40.490 [ome.event.ItemCommandEvent] - Item ‘Neato_EG_Command’ received command clean

2017-12-19 16:24:40.541 [vent.ItemStateChangedEvent] - Neato_EG_Command changed from stopCleaning to clean

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

2017-12-19 16:24:41.438 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method ‘ThingHandler.handleCommand()’ on ‘org.openhab.binding.neato.handler.NeatoHandler@ae94f1’: null

Do you have any suggestion or ideas what to do? I use an Connected D5

Hi, I’m having trouble getting this binding (org.openhab.binding.neato_2.0.0.201702202022.jar) to work on openHAB 2.2 with a Botvac D5 connected. The following shows up in the logfiles:

2017-12-29 23:54:12.197 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot myRobot
2017-12-29 23:54:13.302 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for myRobot
==> /var/log/openhab2/events.log <==
2017-12-29 23:54:13.311 [hingStatusInfoChangedEvent] - 'neato:vacuumcleaner:myrobot' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
==> /var/log/openhab2/openhab.log <==
2017-12-29 23:54:13.316 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: null
==> /var/log/openhab2/events.log <==
2017-12-29 23:54:13.326 [hingStatusInfoChangedEvent] - 'neato:vacuumcleaner:myrobot' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)

Am I doing something wrong or Is this perhaps an known issue?

Today I tried the same version as @skyscraper uses (org.openhab.binding.neato-2.2.0-SNAPSHOT.jar) and receive the exact same error message:

2017-12-30 23:46:38.455 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.neato.handler.NeatoHandler@c4bbeb': null

java.lang.NullPointerException: null
        at org.openhab.binding.neato.internal.classes.NeatoState.getError(NeatoState.java:86) [242:org.openhab.binding.neato:2.2.0.201711070001]
        at org.openhab.binding.neato.handler.NeatoHandler.publishChannel(NeatoHandler.java:185) [242:org.openhab.binding.neato:2.2.0.201711070001]
        at org.openhab.binding.neato.handler.NeatoHandler.refreshStateAndUpdate(NeatoHandler.java:140) [242:org.openhab.binding.neato:2.2.0.201711070001]
        at org.openhab.binding.neato.handler.NeatoHandler.handleCommand(NeatoHandler.java:82) [242:org.openhab.binding.neato:2.2.0.201711070001]
        at sun.reflect.GeneratedMethodAccessor152.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) [109:org.eclipse.smarthome.core:0.10.0.b1]
        at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [109:org.eclipse.smarthome.core:0.10.0.b1]
        at com.sun.proxy.$Proxy167.handleCommand(Unknown Source) [242:org.openhab.binding.neato:2.2.0.201711070001]
        at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:72) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
        at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
        at sun.reflect.GeneratedMethodAccessor151.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) [109:org.eclipse.smarthome.core:0.10.0.b1]
        at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
        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) [?:?]

Hi Bernd,

I’m new to openhab2 and stumbled over this thread. I’m very much interested in the binding Neato BotVac binding compatible with the VR200. Could you send that to me also?

Thank you very much!

Look at this thread. There you will find the right file.

awesome, thank you!!

Hi Bernd,
Maybe stupid question but i can’t find “Neato Vacuum Secret” :smiley: Where i can get it?

Status: OFFLINE - COMMUNICATION_ERROR Could not find robot_serial for specified vendor_name
Anyone solved this problem?

Update: Solved all problems. Nice binding ! I waiting update :stuck_out_tongue:

Hi, i have the same COMMUNICATION_ERROR issue. Did you ever get it resolved please?

How did you solve the COMMUNICATION_ERROR issue please?

None of the available jar files worked for me so I compiled the latest source available on the unreleased Openhab Neato addons github and fixed a few errors to make the binding work properly :

-Sending commands didn’t work so equalsIgnoreCase was used instead of “==” for comparing two string in sendCommand and in sendGetGeneralInfo of the NeatoRobot.java file
-Added a few lines to also pause the robot before sending the return to dock when sending the dock command
-Commented out the CHANNEL_ERROR case in publishChannel function

This is just a temporary solution for those of you who still want to use the binding until the official code gets updated :
https://drive.google.com/file/d/1mXch5HNQflEz1HdOtAcB-Jt7jKbaVqke/view?usp=sharing

2 Likes

Thanks a lot! I can confirm the jar you provide works for my D5 Connected.

1 Like

Same here, works on D5 Connected. Did you submit a pull request to the original GitHub repo?

@jfbarnard Thanks a lot for this… :slight_smile:

do you have also a example of your neato-vs.map file?

i still receive a

[WARN ] [rm.AbstractFileTransformationService] - Could not transform '' with the file 'neato-sv.map' : Target value not found in map for ''

cat openhab_conf/transform/neato-sv.map ui_alert_busy_charging=Busy Charging
ui_error_navigation_noprogress=Navigation Issue
ui_alert_recovering_location=Recovering Location
ui_error_brush_overload=Brush Overload
ui_error_dust_bin_full=Dust Bin Full
ui_error_dust_bin_emptied=Dust Bin Emptied
ui_error_brush_stuck=Brush Stuck

// Curent state of the vacuum cleaner
INVALID=Invalid
IDLE=Idle
BUSY=Busy
PAUSED=Paused
ERROR=Error

ON=Yes
OFF=No

// Current action of the vacuum cleaner
HOUSE CLEANING=Cleaning House
SPOT CLEANING=Spot Cleaning
MANUAL CLEANING=Manual Cleaning
DOCKING=Docking
USER MENU ACTIVE=User Menu Active
SUSPENDED CLEANING=Suspended Cleaning
UPDATING=Updating
COPYING LOGS=Copying Logs
RECOVERING LOCATION=Recovering Location
IEC TEST=Iec Test

// Current or last cleaning mode
CLEAN-MODE-ECO=Eco
CLEAN-MODE-TURBO=Turbo

// Modifier of current or last cleaning
CLEAN-MODIFIER-NORMAL=Normal
CLEAN-MODIFIER-DOUBLE=Double

// Current or Last category of the cleaning
CLEAN-CATEGORY-HOUSE=House Cleaning
CLEAN-CATEGORY-SPOT=Spot Cleaning
CLEAN-CATEGORY-MANUAL=Manual Cleaning

NULL=NULL
-=NA
=NA
1 Like

@NCO thank you… i’ve also have had problems executing the script… but add “python” in front of the path helped… now i’m very happy with :slight_smile:

thank you… that is perfectly working without errors… :slight_smile:

Do I have to use Botvac cloud or does it also work when cleaner is offline (only local WLAN connection to OH; but no internet access)?
I am from Germany, so I have some doubts using cloud services :grimacing:

Hey, I tried the latest build from jfbarnard. With it I have the same problem like before. I tried to switch robot language from german to english. Also for german I have tried the option to switch from 24h to 12h. But my status in paper ui is always --> "OFFLINE - COMMUNICATION_ERROR Unacceptable range for date"
Neato model: Botvac Connected 2.2.0
Any ideas? thx…

log:

11:06:27.041 [DEBUG] [ab.binding.neato.internal.NeatoRobot] - Will get STATE for Robot Nummer ZWEI
11:06:27.551 [DEBUG] [ab.binding.neato.internal.NeatoRobot] - Result from getRobotState: {“message”:“Unacceptable range for date”}
11:06:27.552 [ERROR] [ab.binding.neato.internal.NeatoRobot] - Error when getting Robot State. Error message Unacceptable range for date
11:06:27.552 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: Unacceptable range for date

Hi, can somebody help? I have inserted my Vorwerk-Credentials but got a “Not allowed” in the Event-Log.

2018-02-26 23:39:28.036 [INFO ] [b.binding.neato.handler.NeatoHandler] - {"message":"Not allowed"}
2018-02-26 23:39:28.040 [INFO ] [b.binding.neato.handler.NeatoHandler] - Authentication Response: {"message":"Not allowed"}

The credentials are correct.