Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is an unofficial API client which can help you to interact with the Neato cloudservices which are used to control you Neato Connected vaccum robot.


As this is an unofficial client to the API which required to reverse the HTTP Authentication mechanism used by Neato things are topic to be unstable and maybe unreliable.

Please don't blame me :) Just drink a beer and relax, things will maybe work out in the future ... and maybe not.


Add the gem into your project using bundler

gem 'botvac'

Creating a new robot

In order to crate a new robot, you'll need to figure out the correct serial and the associated secret.

Once the gem is installed you should have a binary named botvac which allow you to do so:

$ botvac robots


Robot (BotVacConnected) => Serial: OPSXXXX-XXXXX Secret: XXXXXXXX

Save these somewhere, so you can use them later to create a new robot object!

mrrobot =<serial>, <secret>)

Congratulatins, you can now inteact with your robot!!!


Will give you some basic information about the status of your connected robot.

There's more to discover! Currently there's all this avalivale:

  • start_cleaning
  • pause_cleaning
  • stop_cleaning
  • send_to_base
  • get_robot_state
  • disable_schedule
  • enable_schedule
  • get_schedule

The method names should give you an idea what the specific action will cause. Still this is not all, but that's what there for the moment.

Web Server

Botvac ships with a ultra basic web server which can be used to let the robot easily interact with differnt systems just with calling a HTTP endpoint.

rackup -r 'botvac/web' -b "run"

The environemnt variables SERIAL and SECRET are mandatory to set!

curl http://localhost:9292/get_robot_state

Will make the action start. To trigger other activities, just change the requested URL to one of the above method names.

Other languages

Ruby is not you first choice of language? No worries, there are also implementations in these languages:


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
You can’t perform that action at this time.