Neato: The Last Great Step to Total ST Freedom

Ok So I got the oAuth at least taking me to the neato page for a login. Is that where you got stuck? I dont have any neato devices... so I could post this for some testing which it may just totally blow up after you auth. Or I could see if I can make an account with no devices and maybe it will let me do something further.

I see there is some code in here throwing errors as well, stuff trying to adjust the alarm status but it must need to be different for Hubitat. Its not stopping it from working though, it just wont be able to adjust the alarm until thats fixed.

Here is a quick and dirty way to share it so I dont have to mess around with gitHub just yet

1 Like

Ok on my dropbox link above I am able to OAuth with neato and get a menu to select a vac but I dont have one so I cannot go any further. If anyone else wants to test? Like I said there will probably be some errors especially with whatever this thing is trying to do with alarms but lets see what works.


Do you want to try to combine efforts. @tomw is trying to get this done as well. Maybe if you teamed, it'd go better? I'm willing to help test, but I'm afraid I'm useless in the development department.

Huge Thanks to @jtp10181, Jeff for getting this start worked out!!!

I have a very basic implementation working if anyone wants to give it a try. I tested this on a D4 model. I removed a lot from the code and left just the basics (the device commands and the vacuum status) no-go lines are working! I also set it up to integrate well with the community maintained google home integration. (start, stop, pause and dock traits).

Here is a link to the code

issues - #1 I don't think this will work for more than one vacuum (I'm pretty sure it will not)
#2 on my D4 model the "find me" command does not work. I left it in case it works for other models.


Thanks to both you and @jtp10181! I can confirm this is works on a D3 model.

I've implemented some fixes and added some improvements. I do believe this should work for multiple Botvacs now but I'm not able to test that.
Links below-



Confirmed that this integration works with both of my D7's that are on the same Neato account. Thank you so much!
In Love Hearts GIF by SpongeBob SquarePants


Just installed and found both in myNeato account.
Thanks so much for this!

1 Like

I can't seem to get this working. I can see the status of the device ok but I don't seem to be able to make it do anything. In the current states I see error : ui_alert_invalid. Maybe this is a clue. Using the phone on my app I am able to control it. My model is a DC02. I have tried rebooting the device as well.. Any ideas?

I think this will only work on the Connected D Series (D3, D4, D5, D6, D7).
Can you enable debug logging in the app and click refresh on the device and send me the log?

dev:23362021-07-11 20:25:49.649 infoNeato Botvac - Robovac charging false

dev:23362021-07-11 20:25:49.645 infoNeato Botvac - Robovac Docked

dev:23362021-07-11 20:25:49.640 infoNeato Botvac - Robovac error - ui_alert_invalid

dev:23362021-07-11 20:25:49.628 infoNeato Botvac - Robovac Battery level 98

app:15532021-07-11 20:25:49.625 debug200

app:15532021-07-11 20:25:49.621 debug[version:1, reqId:1, result:ok, error:ui_alert_invalid, data:[:], state:1, action:0, cleaning:[category:2, mode:1, modifier:1, spotWidth:0, spotHeight:0], details:[isCharging:false, isDocked:true, isScheduleEnabled:false, dockHasBeenSeen:false, charge:98], availableCommands:[start:true, stop:false, pause:false, resume:false, goToBase:false], availableServices:[houseCleaning:basic-1, spotCleaning:basic-1, manualCleaning:basic-1, schedule:basic-1, maps:basic-1], meta:[modelName:BotVacConnected, firmware:2.2.0]]

does it log an error when you hit start ?

Just want to say that, because of this automation from @gassgs, my Neato D7 is now integrated into Hubitat. And more importantly, my ST hub is a paperweight. Thank you @gassgs!


Agree, I've been thrilled being able to route my 2 vacs through webcore.

1 Like

This is amazing - thank you :smiley:


I just came across this, fantastic! I’ve been hoping for this for a while. Thanks to this, I have now added a pause command for my Botvac into my routine that silences all of my media if I get a call when I’m working. :+1:

I noticed that the “run” command takes a parameter in the interface, but the code doesn’t use any parameters. I was hoping to be able to call it to clean a specific zone, is this something that might happen in the future?

@gassgs, this app is performing flawlessly, thanks again.

Question for you: what’s the difference between the On command and the Start command?

There should be no difference at all, exactly the same command is called. For the Off command you can choose to either use it as "pause" or "return to dock".

1 Like

Sorry I just seen this. My model doesn't support that so I wouldn't be able to test it. I will try to look at it one of these days to see how difficult it would be to implement. What model do you have?

1 Like

I have a D7. I also found drivers for the Neato on Node Red, but I haven’t been able to get them to work there to issue commands. I can get the properties of the vac, but I can’t figure out how to format the commands in Node Red.

I’m not familiar with Groovy, it’s something I have been meaning to look into. I’m better with JavaScript so I’ll try to look through the node files to see if I can figure anything out there. They also have nodes set up to gather map and boundary info,

Download the Hubitat app