[RELEASE] Neato (Connect) V1.2.6c (Botvac Connected Series)

Announcing the new Neato (Connect) SmartApp and Neato Botvac Connected Series device handler. This enables you to connect Smartthings with the Neato Botvac robot vacuum cleaners using Neato’s official APIs.

Author - @Alyc100
getCSSData and HTMLTile elements - @tonesto7

Special Thanks
@roberto - Neato Cloud Service team.
@sidjohn1 - Original Roomba Thinking Clenaer device from which this is inspired from.

This integration is provided completely free of charge and is open source. If however you really feel like it, you can make a donation here

Latest Versions

Ensure you install the latest versions of both the Smart App and Device Handler


  • If you’re upgrading from v1.1.7 or earlier to v1.2 or later, you need to reconfigure your SmartSchedules. Sorry about this.

  • If you’re upgrading from v1.1.6 or earlier to v1.1.7 or later, you need to reauthorize your Neato credentials. Open the Neato(Connect) smart app in the ST mobile app, scroll to the bottom and tap the reauthorize item.

Smart App - Neato (Connect) v1.2.6c - Updated 17/04/2019 12:00

  • (v.1.2.6c) Notification issue workaround.
  • (v.1.2.6b) Handle regularly changing secret key from Neato API.
  • Option to delay cleaning if bin is full.

Device Handler - Neato Botvac Connected Series v1.14 - Updated 13/10/2020 20:45

  • (v1.14) Move persistent map and turbo mode tiles to device settings.

Supported Neato Models

  • Neato Botvac Connected
  • Neato Botvac D3 Connected
  • Neato Botvac D4 Connected
  • Neato Botvac D5 Connected
  • Neato Botvac D6 Connected
  • Neato Botvac D7 Connected

Notable Features

  • Full control over Neato Botvac via Smartthings including usage in rules and routines (i.e, WebCoRE)!!
  • Smart Scheduling of your Botvacs
  • Configurable notifications on Botvac status
  • Force clean option when your Botvac hasn’t cleaned in a while
  • Auto dock option
  • Auto setting of SHM to Armed(Stay) when Botvac is on whilst in Armed(Away) mode
  • View the latest cleaning statistics
  • View the latest cleaning map (D3 and D5 requires firmware v4.x or later)


Installation Guide

To install the Neato (Connect) app:

  1. Add the Neato (Connect) app from GitHub as a new ‘My SmartApps’, select create from code option and paste. Click the ‘Create’ button. Save and Publish.

  2. VERY IMPORTANT STEP - Click ‘App Settings’ in the top right corner. In the ‘OAuth’ section, click the ‘Enable OAuth in Smart App’ button and click ‘Update’.

  3. Add the Neato Botvac Connected Series device type from GitHub as a new ‘My Device Handlers’, select create from code option and paste. Save and Publish.

  4. Add the Neato (Connect) app within the Smartthings mobile app from the Marketplace, then selecting the ‘SmartApps’ tab and locating the Neato (Connect) app under the ‘My Apps’ section which should be at the bottom of the list.

  5. Log into your Neato account via the smart app when first opened.

  6. You should be able to select your Neato Botvacs in the configuration screen.

  7. Once you have selected your devices, click Done on the top right.

  8. Your selected devices should automatically be configured and appear under ‘Things’ with the label Neato Botvac - [Botvac Name] (may require SmartThings app restart).

Upgrading Note

When upgrading from an earlier version of the smart app, ensure you open the app within Smartthings mobile app and click ‘Done’ on the top right to ensure the app initiates correctly.

Github Links

Github Repository Integration details:
Owner: alyc100, Name: SmartThingsPublic, Branch: master


SmartSchedule allows your Botvacs to clean on a regular interval but only on a configured trigger such as when Smartthings enters an away mode or if certain presence sensors leave.

Smart scheduling allows you to configure various rules to automate when your Botvacs start their clean. Smart scheduling also notifies you when your Botvac is about to clean so that you have time to clean obstacles from the floor and make sure that internal doors are open. You can set up a smart schedule from within the Neato (Conenct) smart app.

Current smart scheduling rules allow you to:

  • Determine a preferred cleaning interval in days
  • Tell smart schedule what triggers when you want your Botvac to clean including modes, presence sensors, switches or no triggers for just date and time restrictions.
  • Restrict schedule based on time of day and day of week so that your Botvacs do not start in the middle of the night.
  • Specify override switches to stop an upcoming cleaning schedule from happening.

NOTE: When enabling SmartSchedule, this will automatically disable the Neato Schedule functionality from the Neato mobile app.

Device Tile Guide

From the top, here is a guide of the tiles:
[Top Panel] - Main switch and detailed status messages

Starting Top Left and in order:

  1. Neato Botvac status overview.
  2. Battery level.
  3. Charging status. Whilst charging this is yellow.
  4. Bin status (Full or empty).
  5. Docking status (Docked, Undocked or Dock). Note that when this says ‘Dock’ you can press the tile to send Botvac back to base.
  6. Whether your Botvac has seen it’s base on a cleaning cycle. If status is ‘SEEN’ and green, then it will fully dock itself when sent back to base. If status is ‘SEARCHING’ and yellow, then it will head back to starting location but won’t fully dock.
    • Neato Botvac Connected model/D7 model - Toggle button to set Botvac Cleaning Mode to either Turbo or Eco.
    • Neato Botvac D5 model - Find Me button
    • Neato Botvac D3 model - Neato logo and doesn’t do anything
    • Neato Botvac Connected model - Neato logo and doesn’t do anything.
    • Neato Botvac D5/D3 model - Toggle button to set Botvac Navigation Mode to either Standard or Extra Care.
    • Neato Botvac D7 model - Find Me button
  7. Toggle button to set Botvac Neato Schedule on or off. Neato Scheduling is configured within the Neato mobile app. This cannot be activated if SmartSchedule from the Neato (Connect) smart app is enabled. Not to be confused with SmartSchedule which is configured within the Neato (Connect) smart app (I realised this could be confusing after I implemented the feature :unamused:).
  8. Reset Schedule button to stop upcoming cleaning schedule and reset smart schedule interval countdown.
  9. Neato API connection status.
  10. Refresh button to force a status refresh.


Post your comments and feedback on this topic. Please be aware this is version 1 so I expect there to be some bugs.


Awesome work!

Glad to see some options out there now. I know Roomba + Thinking Cleaner wasn’t super cheap, but the control is awesome.
I hope the Neato works just as well for everyone who goes that route.

1 Like

Awesome stuff. I am looking forward to picking up a D5 when they are released and this makes it all the better!

Great and fast work - can’t wait to try it!

Great work! Thanks!

Install is done and I can see my Bot. Any chance you could do a quick overview of the various tiles/features? Some are pretty obvious, but the bottom left and right middle are a bit of a mystery.

Also, maybe a bug; but the Automatically set Smart Home Monitor preference wouldn’t change regardless of the status of the switch in the preferences menu. I don’t currently use SHM, so I was trying to have that option off.

Thanks Scott.

If you update Neato (Connect) to 1.0b that should allow you to disable the auto SHM mode. Minor gremlin.

From the top, here is a guide of the tiles:
[Top Panel] - Main switch and detailed status messages

Starting Top Left and in order:

  1. Neato Botvac status overview
  2. Battery level
  3. Bin Full / Empty Status
  4. Status of Neato API connection
  5. Docking status. Note that when this says ‘Dockable’ you can press the tile to send Botvac back to base
  6. Charging status
  7. Whether your Botvac has seen it’s base on a cycle. If status is ‘SEEN’, then it will fully dock itself when sent back to base. If status is ‘SEARCHING’, then it will guess the location and won’t fully dock for a charge.
  8. Toggle button to set Botvac to Schedule or Manual mode. Schedule has to be set with Neato mobile app.
  9. Refresh button. Force a status refresh.

Hope that helps a bit.


Amazing! Very well done! Another testament to why this community is so awesome!!!


Hi all, I have updated the Neato (Connect) app to v1.1. I have added a new smart schedule function to allow you to set up your Botvacs to clean on a regular basis but only when you’re out of the house. Would appreciate feedback, improvement suggestions and any other comments around this. I’ve built this around how my household works but it would be interesting to hear if others find this useful.

I get this error when I try to enable SmartSchedule

Thanks @cscheiene. I’ll take a look.

EDIT - I completely uninstalled the Neato device and Smart app and reinstalled. Can’t seem to recreate this. Anyone else having this issue? Maybe uninstall/reinstall and see if it still happens?

Are the only options when you are out of the house? I work from home for example but would still like a schedule based on when my wife/kids are gone for example.

Read more - i don’t really use modes. I am thinking a hookup into Core would be more ideal for my situation.

I am just getting ahead of things - I don’t even have a neato yet - waiting impatiently for the D5 release.

Great suggestion. Presence could certainly be added as an option to a smart schedule. I am trying to keep this fairly simple. CoRE might be a better place for those with very bespoke rules.

Interesting to hear whether whether there are more users out there where a presence option would be more useful than a mode option.

I think I might have found the culprit. Try v1.1b and let me know what happens.

I upgraded and couldn’t do anything in the smartapp - just got an error clicking anything, Nothing in the logging.
Removing and re-adding and now it works perfectly.

Edit - I take it back - I can’t click done I get the same message. Could very well be because I don’t have a neato yet LOL - total geek mode here

I just updated to 1.1b, and now when I try to tap on any option section on the main Neato (Connect) screen I get an error at the top of the screen that says “Error saving page.” It does this for all sections not just the new SmartSchedule one.

Can you open Live logging whilst trying to tap an option section and paste the error message please?

Here’s the log. I *ed out the secret key and serial #. I tried opening each section several times, but it didn’t seem to produce any extra output in the log when I did.

7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: debug getChildDevices(false), children=1
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: debug Smart schedule states: null
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: debug Last clean states: null
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: debug Executing ‘pollOn’
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: info Body: [reqId:1, result:ok, cleaning:[modifier:1, category:2, spotHeight:0, spotWidth:0, mode:2], details:[isScheduleEnabled:true, charge:99, isDocked:true, dockHasBeenSeen:false, isCharging:false], error:ui_alert_invalid, availableCommands:[pause:false, stop:false, resume:false, goToBase:false, start:true], action:0, state:1, data:[:], meta:[firmware:2.0.0, modelName:BotVacConnected], availableServices:[schedule:basic-1, houseCleaning:basic-1, manualCleaning:basic-1, spotCleaning:basic-1, easyConnect:basic-1], version:1]
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:51 AM: info Status: 200
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug getChildDevices(false), children=1
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug [|]
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: info Body: [[model:BotVacConnected, linked_at:2016-02-25T00:12:50Z, name:Rosie, prefix:null, traits:, purchased_at:null, secret_key:, serial:]]
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: info Status: 200
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug Beginning API GET: https://beehive.neatocloud.com/users/me/robots, [Accept:application/vnd.neato.nucleo.v1, Content-Type:application/*+json, X-Agent:0.11.3-142, Authorization:Bearer 29513ae2aab390c4b31dc420823b647d95133eaa3f34c3718e582e9f14626252]
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug Executing ‘updateDevices’
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug RedirectUrl = https://graph.api.smartthings.com/oauth/initialize?appId=7962edd5-c4bf-4d03-872d-8e14dd6cc1d5&access_token=ac9f1e88-15eb-4a9c-9942-c882c0e32422&apiServerUrl=https://graph.api.smartthings.com:443
7962edd5-c4bf-4d03-872d-8e14dd6cc1d5 5:36:35 AM: debug authPage()

I’ve recreated the issue. It happens when I upgraded from v1.0 to v1.1. Looking into this now.

1 Like

@jcharr1 @cscheiene

Should have fixed both your issues. Please update to 1.1d and let me know if it works. Thanks for bearing with the teething issues.

That did it. :+1:

1 Like