Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. General Discussion
  3. Hacking a Neato Robotics BotVac Connected

Hacking a Neato Robotics BotVac Connected

Scheduled Pinned Locked Moved General Discussion
70 Posts 28 Posters 77.9k Views 24 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • kangguruK kangguru

    There's good news guys. I finally figured out how the HMAC signature is calculated and now i'm able to control the neato without the mobile application, which offers all kinds of new integration options.

    What can be found in com/neatorobotics/android/activities/robot/C0645j.java is just half of the truth and i was looking at this part for way to long, i'm not sure where this part is used. maybe this would be the part where one can communicate with the neato without making use of the cloudservice. who knows ;)

    The actual fun starts in com/neatorobotics/android/p040c/p042b/C0898b.java the code reveals that there are 3 ingredients making up the HMAC signature

    • the robot's serial number
    • the current date (as also found in the Date header)
    • the http body

    Together with the robot's secret key we're now able to properly sign the requests.

    I've packaged this in a small ruby library https://github.com/kangguru/botvac which is
    quite basic and just covers just a little more than i needed for my usecase
    but i'm happy to extend this over time.

    Especially the part to obtain the secret key for the robot just be done via
    trafic capturing, which is not the most convinent thing i can think of :)

    I hope this already helps some people to build new things around their robot. I've mixed the
    stuff with ifttt.com and now can plan the cleaning schedule via a google calendar, which
    makes it really convinent to skip single days in a given schedule, which ist kinda painful to
    solve with the mobile app.

    happy hacking

    d96mbeD Offline
    d96mbeD Offline
    d96mbe
    wrote on last edited by
    #43

    @kangguru I have not done any ruby before and I'm stuck trying to use the gem. I think I've managed to install Ruby, devkit and Git (and added git.exe to path which is needed to be able to 'bundle install'). I don't see any errors, but I am unable to find any binary named botvac to run. I've run "gem env" and none of the variables seems strange.

    Any suggestions? I'm on Windows 10 btw.

    BR / M

    1 Reply Last reply
    0
    • korttomaK Offline
      korttomaK Offline
      korttoma
      Hero Member
      wrote on last edited by
      #44

      FYI, a friend of mine has created a PHP library for the Neato cloud service -> https://github.com/tomrosenback/botvac

      It is based on the work @kangguru has done.

      • Tomas
      d96mbeD 1 Reply Last reply
      1
      • korttomaK korttoma

        FYI, a friend of mine has created a PHP library for the Neato cloud service -> https://github.com/tomrosenback/botvac

        It is based on the work @kangguru has done.

        d96mbeD Offline
        d96mbeD Offline
        d96mbe
        wrote on last edited by
        #45

        @korttoma Works like a charm. Used PHP CLI on Windows 10. You have to enable extensions; php_curl and php_openssl in php.ini.

        1 Reply Last reply
        0
        • Jonathan8301J Offline
          Jonathan8301J Offline
          Jonathan8301
          wrote on last edited by
          #46

          The PHP API Works great for me. I have two questions though.

          1. The [isCharging] value in the [details] array of the State JSON is always empty, even when it is clearly charging i.e. the [charge] value changes. Any Idea why?
          2. Whenever I call the pause cleaning, and then return to base, the robot will go back to its base, but it will not dock with it, is there any particular reason for this? and is there a way to have it return to the dock, and actually dock and charge with out just letting run through the entire cleaning cycle?
          RawLiquidR 1 Reply Last reply
          0
          • Jonathan8301J Jonathan8301

            The PHP API Works great for me. I have two questions though.

            1. The [isCharging] value in the [details] array of the State JSON is always empty, even when it is clearly charging i.e. the [charge] value changes. Any Idea why?
            2. Whenever I call the pause cleaning, and then return to base, the robot will go back to its base, but it will not dock with it, is there any particular reason for this? and is there a way to have it return to the dock, and actually dock and charge with out just letting run through the entire cleaning cycle?
            RawLiquidR Offline
            RawLiquidR Offline
            RawLiquid
            wrote on last edited by
            #47

            @Jonathan8301
            You know, I've had that happen once or twice before I even found this page, but when I just tried it out, my botvac did dock properly.

            I just wish there were some way to get at the lower level sensor readings through this, I'd love to be able to see the 'map' that it builds when it cleans....

            1 Reply Last reply
            0
            • UbiquitousU Ubiquitous

              As for replacing the cloud server, I don't think it's possible without rooting the robot. The first thing it does when it's connected to the internet is to start an HTTPS Comet session (long polling). The robot will kill the connection immediately if you try to MiTM it with a selfsigned certificate and there is no way to install new certificates on the robot. If anyone has opened the robot I'd be interested in pictures of the motherboard, especially of any pads labeled JTAG.

              RawLiquidR Offline
              RawLiquidR Offline
              RawLiquid
              wrote on last edited by
              #48

              @Ubiquitous
              I have plans to open up my D80 the day that the warrantee is up, not sure if that will or won't help you any...

              1 Reply Last reply
              0
              • Jonathan8301J Offline
                Jonathan8301J Offline
                Jonathan8301
                wrote on last edited by
                #49

                Hmm it almost sounds like the Botvac could go for a firmware update, unfortunately it looks like Neato's post launch product support is severely lacking

                RawLiquidR 1 Reply Last reply
                0
                • Jonathan8301J Jonathan8301

                  Hmm it almost sounds like the Botvac could go for a firmware update, unfortunately it looks like Neato's post launch product support is severely lacking

                  RawLiquidR Offline
                  RawLiquidR Offline
                  RawLiquid
                  wrote on last edited by
                  #50

                  @Jonathan8301
                  Funny thing is, before the connected was launched, I remember being able to find an API document and programming info for interfacing with the lower models...NOW, I can't so much as even find any page that contains a link to anything resembling an update file or api documentation...

                  1 Reply Last reply
                  0
                  • korttomaK Offline
                    korttomaK Offline
                    korttoma
                    Hero Member
                    wrote on last edited by
                    #51

                    @RawLiquid So you are looking for this -> https://www.neatorobotics.com/resources/programmersmanual_20140305.pdf

                    Or something else?

                    • Tomas
                    RawLiquidR 1 Reply Last reply
                    0
                    • korttomaK korttoma

                      @RawLiquid So you are looking for this -> https://www.neatorobotics.com/resources/programmersmanual_20140305.pdf

                      Or something else?

                      RawLiquidR Offline
                      RawLiquidR Offline
                      RawLiquid
                      wrote on last edited by
                      #52

                      @korttoma actually, I already had that very document, and that is the one I was referring to. I might suggest keeping mentions of the exact url fairly low, It's likely an oversight that it's available still and if so, likely to be removed if they notice it. maybe use bitly to reference it instead...
                      I don't know what exactly changed within the company to cause such a drastic shift, but it's obvious that something changed....

                      1 Reply Last reply
                      0
                      • jcolterJ Offline
                        jcolterJ Offline
                        jcolter
                        wrote on last edited by
                        #53

                        Did anyone ever get this working with the Vera?

                        1 Reply Last reply
                        0
                        • robertoR Offline
                          robertoR Offline
                          roberto
                          wrote on last edited by roberto
                          #54

                          Hello hackers!
                          Let me introduce myself, I am Roberto Ostinelli, Neato Robotics' Director of Cloud Services.

                          I'm impressed with the work that you've put into integrating with our robots! Great job!

                          Given the interest we've seen on this and other forums, we've listened and have just released the Neato Developer Network, which might hopefully be of interest for some of you here.
                          You can become a developer with just your Neato account from here:
                          https://developers.neatorobotics.com

                          You will find official documentation and SDKs for JavaScript, iOS and Android (for now, we plan on expanding to other languages too!).
                          Simply put, as a developer you can create your own OAuth apps that interacts with Neato robots.

                          A demo of what you can achieve with the JavaScript SDK can be seen here (just login with your Neato account when requested):
                          https://developers.neatorobotics.com/demo/sdk-js

                          Please note that all of this is in Beta, we're a small team but are doing our best!

                          Cheers,
                          r.

                          1 Reply Last reply
                          5
                          • korttomaK Offline
                            korttomaK Offline
                            korttoma
                            Hero Member
                            wrote on last edited by
                            #55

                            @roberto

                            Thanks for finally acknowledging the fact that some people want to integrate their robotic vacuum cleaner with the rest of their smart home functionality.

                            Is your Neato Developer Network investment only targeting the new Neato Connected series and future versions or is there a communication module in the pipeline for older models like my Neato botvac 85?

                            • Tomas
                            robertoR 1 Reply Last reply
                            0
                            • korttomaK korttoma

                              @roberto

                              Thanks for finally acknowledging the fact that some people want to integrate their robotic vacuum cleaner with the rest of their smart home functionality.

                              Is your Neato Developer Network investment only targeting the new Neato Connected series and future versions or is there a communication module in the pipeline for older models like my Neato botvac 85?

                              robertoR Offline
                              robertoR Offline
                              roberto
                              wrote on last edited by roberto
                              #56

                              @korttoma due to hardware and other considerations we are only targeting the connected series, that started with the BotVac Connected. There currently are also the D3/D5 available, and then the future products to come!

                              1 Reply Last reply
                              0
                              • hekH Offline
                                hekH Offline
                                hek
                                Admin
                                wrote on last edited by
                                #57

                                Welcome @roberto,

                                Thanks for making the Neato more hacker friendly. I'm sure it will boost your sales. The HA/DIY crowd and the early adopters buying robotic vacuum cleaners is coinciding.

                                robertoR 1 Reply Last reply
                                0
                                • hekH hek

                                  Welcome @roberto,

                                  Thanks for making the Neato more hacker friendly. I'm sure it will boost your sales. The HA/DIY crowd and the early adopters buying robotic vacuum cleaners is coinciding.

                                  robertoR Offline
                                  robertoR Offline
                                  roberto
                                  wrote on last edited by roberto
                                  #58

                                  Thank you @hek!
                                  Sales are very nice indeed, but I'm also very interested in seeing what can be built with the creativity of all of you hackers on top of the Neato platform!

                                  1 Reply Last reply
                                  1
                                  • Michael van der HeijdenM Offline
                                    Michael van der HeijdenM Offline
                                    Michael van der Heijden
                                    wrote on last edited by
                                    #59

                                    This is good news. Thank you Neato.

                                    Is it possible to send commands with just an https url? These URL's I can implement in LUA scripts for my Domotica.

                                    robertoR 1 Reply Last reply
                                    0
                                    • Michael van der HeijdenM Michael van der Heijden

                                      This is good news. Thank you Neato.

                                      Is it possible to send commands with just an https url? These URL's I can implement in LUA scripts for my Domotica.

                                      robertoR Offline
                                      robertoR Offline
                                      roberto
                                      wrote on last edited by roberto
                                      #60

                                      @Michael-van-der-Heijden Yes, everything is just standard http requests. Just head to the API section of the docs to learn more. You can see implementation examples in the existing SDK, that may help you out too!

                                      UbiquitousU Seth DanielS 2 Replies Last reply
                                      1
                                      • robertoR roberto

                                        @Michael-van-der-Heijden Yes, everything is just standard http requests. Just head to the API section of the docs to learn more. You can see implementation examples in the existing SDK, that may help you out too!

                                        UbiquitousU Offline
                                        UbiquitousU Offline
                                        Ubiquitous
                                        wrote on last edited by Ubiquitous
                                        #61

                                        @roberto Awesome to see you make the API public and official even though it seems that you're just making the endpoints "official" and pretty much identical to the API resulted from reverse engineering efforts. Any chance you (as in Neato) would consider allowing us to switch to our backend server, essentially replacing your cometa.io server (cometa.neatocloud.com)? And on a sidenote, to get access to the developers portal and API through your site, you have to accept to your new terms, yet you've made the libraries public on github. :)

                                        1 Reply Last reply
                                        0
                                        • StormwindS Offline
                                          StormwindS Offline
                                          Stormwind
                                          wrote on last edited by
                                          #62

                                          @roberto - Thanks for making the API public! @kangguru and others - thanks for reverse engineering it!

                                          @roberto - Any chance of making the local LAN, direct-to-robot API official and documenting it? Some people prefer the lower latency and non-cloud dependency of local LAN control.

                                          P.S. I started an OpenHAB thread about developing a OpenHAB binding for the Neato Connected series.

                                          robertoR 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          28

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular