Neato BotVac Connected binding?

Bought one 2 , top model so i can start testing 2 :wink:

Can someone compile the updated version with the new vendors?

I am Currently having an issue with the Neato Binding for Openhab2. The vacuum is discovered and added as a Thing. The problem is that it seems to be flopping. The Paper GUI shows it as offline then online over and over again.

20:48:31.882 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
20:48:32.312 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:32.483 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:32.716 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:32.720 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: Could not update status, because callback is missing
20:48:32.721 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error starting automatic refresh. Erorr: Could not update status, because callback is missing
20:48:32.853 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:32.857 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: null
20:48:32.859 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
20:48:32.864 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
20:48:33.311 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:33.483 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:33.791 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:33.792 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: Could not update status, because callback is missing
20:48:33.793 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error starting automatic refresh. Erorr: Could not update status, because callback is missing
20:48:33.922 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:33.929 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: null
20:48:33.932 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
20:48:33.936 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
20:48:34.312 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:34.483 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:34.678 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:34.679 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: Could not update status, because callback is missing
20:48:34.680 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error starting automatic refresh. Erorr: Could not update status, because callback is missing
20:48:34.804 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:34.809 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
20:48:34.812 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: null
20:48:34.816 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
20:48:35.312 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:35.483 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke
20:48:35.674 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:35.675 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: Could not update status, because callback is missing
20:48:35.676 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error starting automatic refresh. Erorr: Could not update status, because callback is missing
20:48:35.803 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Duke
20:48:35.809 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE
20:48:35.810 [ERROR] [b.binding.neato.handler.NeatoHandler] - Error when refreshing state. Error: null
20:48:35.816 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'neato:vacuumcleaner:XXXXXXXX-XXXXXXXXXXXX' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR)
20:48:36.312 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Duke

The vacuum is named Duke so it is discovering the vacuum.

I’m about to buy a Neato, and this binding is great. I’m just wondering, is there a way you can change the type of clean, between eco and turbo? I quite like the idea of it doing a turbo clean when I’m out, and an eco clean when I’m asleep.

Any further updates on this?
Reading the comments i see that the secret key is not needed ?

Kindest regards

java.io.FileNotFoundException: /opt/openhab-2.1.0-SNAPSHOT/conf/transform/neato-sv.map (No such file or directory)

Anyone have the neato-sv.map? I can’t find it anywhere.

Any progress on getting the map?

1 Like

How do I configure this in .things? I have tried refresh=10 and refresh_interval=10, but still see it poll every 1 sec.

refresh=10 worked, had to restart the binding.

Hi Patrik,

when binding configuration is changed, old NeatoHander is not shutdown correctly. As you see from the log, after configuration change there are two handlers running simultonously.

2017-04-29 20:52:13.761 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Robo
2017-04-29 20:52:13.774 [INFO ] [b.binding.neato.handler.NeatoHandler] - Will get STATE for Robot Robo
2017-04-29 20:52:14.057 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Robo
2017-04-29 20:52:14.251 [INFO ] [b.binding.neato.handler.NeatoHandler] - Successfully got and parsed new state for Robo

When Neato binding is fully uninstalled, NeatoHandler(s) still continues polling.

Reason for this is that you haven’t implemented dispose method. Dispose method is called by the openHAB framework automatically, before initialisation method is recalled.

Another issue is related to logging. Binding pollutes logs by “Will get STATE for Robot …” and “Successfully got and parsed new state for …” staff as logging is done in INFO level. You should change log level to DEBUG for those.

I’m getting the same “flapping” as @Alex_Bum and I also see the messages @pauli_anttila mentions.

Hope you can find some time to fix the binding.
Since it looks very promising!

Hi,

I am looking for neato-sv.map, but I can’t find it. Where can I download?

Thanks

Try this:

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

Thanks for the mapping file, i will do a translation to german …

I read, that Florian did some modification for the Kobold VR200 from the german vendor Vorwerk. The latest jar file on GitHub is unfortunately not yet generated with the new code. I have no experience in building openhab runtime modules. I tried it, but without success … Has anyone done that, and can make the jar file available?

Hi

I made it! However the binding works well with the Kobold VR200. If someone is interested, give me a feedback.

1 Like

Hi there from a newby to this.

I have a Kobold, and have been watching this thread on the sidelines for a while. I have just made the jump from Opehab1 to Openhab2, and decided to try this binding.

I am not a coder, so not too sure what is done to make a new .jar, but expected to see a new file on this link:

without success (most recent is 3 months old) - where do I go to get the file to test it here?

Thanks
Alan

Please excuse my bad English! I am also not a Java programmer, but I have some experience in software development. Scripting is ok, but it’s enough.
Send me your email address, then I can send you the jar file.

1 Like

Can you send me the jar, too?

… I sent you am pm …

Great Job.
Is your binding working with the D3 connected as well? I can only find something about the connected versions, but the d3 seems to be pretty new!?