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
71 Posts 29 Posters 78.8k Views 25 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.
  • B Offline
    B Offline
    Brutus
    wrote on last edited by
    #8

    Thank you for your help.
    I have downloaded the "APK Downloader" add-on for Firefox (https://addons.mozilla.org/nl/firefox/addon/apk-downloader/) and followed the instructions.
    After downloading te APK I decompiled it at the given website. I now have almost 3000 files ;)

    Will look in the files later. Hope I can find something usefull. Its the first time for me.

    I was wondering did you already find something usefull to use?

    Have a nice day to you all.

    1 Reply Last reply
    0
    • sundberg84S Offline
      sundberg84S Offline
      sundberg84
      Hardware Contributor
      wrote on last edited by
      #9

      @hek I was looking at the Neato as well - except it was hart to HA integrate, are you happy with the robot?

      Controller: Proxmox VM - Home Assistant
      MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
      MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
      RFLink GW - Arduino Mega + RFLink Shield, 433mhz

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

        There is nothing wrong with its cleaning abilities. Impressed by their room scanning algorithm.

        m26872M 1 Reply Last reply
        0
        • hekH hek

          There is nothing wrong with its cleaning abilities. Impressed by their room scanning algorithm.

          m26872M Offline
          m26872M Offline
          m26872
          Hardware Contributor
          wrote on last edited by
          #11

          @hek I'm surprised you didn't research for maximum open source/HA support in first time. Suppose it's to late to change it now? Even if it's easy to hack this one, I think it's a good general principle - to a certain price of course.

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

            Yeah, yeah.. usually good at doing research.. But this one was a black friday find... Didn't have time to do my homework.. :/ Have to pay for that now ....

            m26872M 1 Reply Last reply
            1
            • hekH hek

              Yeah, yeah.. usually good at doing research.. But this one was a black friday find... Didn't have time to do my homework.. :/ Have to pay for that now ....

              m26872M Offline
              m26872M Offline
              m26872
              Hardware Contributor
              wrote on last edited by
              #13

              @hek ... but you'll also have more fun. 😉

              1 Reply Last reply
              0
              • B Offline
                B Offline
                Brutus
                wrote on last edited by
                #14

                @hek

                I am now looking at the files you provided. I can't get some logic out of it.

                You gave some service endpoints and then you pointed to the java file. I don't see the link between these two.

                Sorry for my noob questions i'm not an programmer.

                I am only looking for a why to implement the Neato in my domoticz home automation. But google gives very little help. Only desent hit was this link.

                Greetings.

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  kalle
                  wrote on last edited by kalle
                  #15

                  Maybe this will help:

                  https://www.neatorobotics.com/resources/programmersmanual_20140305.pdf

                  https://groups.google.com/forum/#!msg/hbrobotics/zKz_33SD7ys/NSV1gjhiIj4J

                  YveauxY 1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    Brutus
                    wrote on last edited by
                    #16

                    @Kalle ... I think this isn't for the Neato Botvac Connected. It has a USB port, but we want to control it through the wifi connection it has.

                    1 Reply Last reply
                    0
                    • mfalkviddM Offline
                      mfalkviddM Offline
                      mfalkvidd
                      Mod
                      wrote on last edited by
                      #17

                      I agree that the wifi api seems more natural, but connecting an Arduino to the usb port might prove easier since documentation of the usb api is available.

                      1 Reply Last reply
                      0
                      • tbowmoT Offline
                        tbowmoT Offline
                        tbowmo
                        Admin
                        wrote on last edited by
                        #18

                        It seems (from a quick glance) that you need a USB host device, connected to that USB port.. So that would leave a standard arduino out of the question.

                        Perhaps an raspberry, or another higher end platform running an OS, could be used..

                        1 Reply Last reply
                        0
                        • K kalle

                          Maybe this will help:

                          https://www.neatorobotics.com/resources/programmersmanual_20140305.pdf

                          https://groups.google.com/forum/#!msg/hbrobotics/zKz_33SD7ys/NSV1gjhiIj4J

                          YveauxY Offline
                          YveauxY Offline
                          Yveaux
                          Mod
                          wrote on last edited by
                          #19

                          @kalle Chances are that the commands & format are identical for the newer wifi model -- companies tend not to reinvent the wheel for each product ;-)
                          You'd only have to find out how these commands are transfered to the BotVac.

                          http://yveaux.blogspot.nl

                          1 Reply Last reply
                          0
                          • Daniel ErikssonD Offline
                            Daniel ErikssonD Offline
                            Daniel Eriksson
                            wrote on last edited by
                            #20

                            What I have come up with so far is that the Neato it self is running a websocket server on port 8081 - and uses some kind of standard Auth-behavior in the headers,

                            Hypertext Transfer Protocol
                            GET /drive HTTP/1.1\r\n
                            Host: xxx.xxx.xxx.xxx:8081\r\n
                            Sec-WebSocket-Key: XXXXXXX==\r\n
                            Sec-WebSocket-Version: 13\r\n
                            Upgrade: websocket\r\n
                            Origin: ws://xxx.xxx.xxx.xxx:8081/drive\r\n
                            Date: Tue, 29 Dec 2015 09:17:57 GMT\r\n
                            Authorization: NEATOAPP XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n
                            Connection: Upgrade\r\n
                            \r\n
                            [Full request URI: http://xxx.xxx.xxx.xxx:8081/drive]
                            [HTTP request 1/1]

                            There also a port 8080 open but I can not figure out what's running on that one.

                            The communication between the Neato and the central server is handled via a server on Amazon - this traffis is HTTPS though. Next step is to set up a SSLSplit and hope that they don't have a pinned cert.

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

                              Nice find @Daniel-Eriksson,

                              Do we really need to know what's happening between the Neato <-> Cloud?
                              My initial though was to mimic the app to poll status and send commands via the cloud service.

                              1 Reply Last reply
                              0
                              • Daniel ErikssonD Offline
                                Daniel ErikssonD Offline
                                Daniel Eriksson
                                wrote on last edited by
                                #22

                                If we can figure out what's going on between Cloud <-> Neato we can do a version which is in depended on the Cloud-service being online or not - which also means that we can disallow it internet access

                                hekH 1 Reply Last reply
                                0
                                • B Offline
                                  B Offline
                                  Brutus
                                  wrote on last edited by
                                  #23

                                  That sounds like music to my ears. It is my device not Neato's

                                  1 Reply Last reply
                                  0
                                  • Daniel ErikssonD Daniel Eriksson

                                    If we can figure out what's going on between Cloud <-> Neato we can do a version which is in depended on the Cloud-service being online or not - which also means that we can disallow it internet access

                                    hekH Offline
                                    hekH Offline
                                    hek
                                    Admin
                                    wrote on last edited by
                                    #24

                                    @Daniel-Eriksson said:

                                    If we can figure out what's going on between Cloud <-> Neato we can do a version which is in depended on the Cloud-service being online or not - which also means that we can disallow it internet access

                                    :thumbsup:

                                    1 Reply Last reply
                                    0
                                    • G Offline
                                      G Offline
                                      gardebring
                                      wrote on last edited by
                                      #25

                                      I recently ventured into writing some custom scripts both for my cloud connected home security system as well as my music streamer at home. It was quite easy to retrieve the commands needed from my android phone using an app I found called "Packet Capture" by the author Grey Shirts. Even https communication could be found. Perhaps this could be a way forward? Following this thread since I am considering getting a Botvac connected but failing to see the point if I would be dependent on a specific app on specific hardware..

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

                                        This won't be solved until I see a proper curl call ;)

                                        1 Reply Last reply
                                        1
                                        • B Offline
                                          B Offline
                                          Brutus
                                          wrote on last edited by Brutus
                                          #27

                                          I have installed the Packet Capture app. But this isn't working I think.

                                          When starting the capture, the app makes a VPN connection. This VPN is blocking some traffic for the Neato App because my bot doesn't come only in the app. When I shut the VPN connection the bot comes online after 3 seconds.

                                          Going back to the capture I think we miss some vital information because of this block.

                                          This is what I got so far form the app:

                                          <--- (TEXT)
                                          GET /sessions/check HTTP/1.1
                                          Authorization: Token token=xxxxxxxxxxxxxxx
                                          Accept: application/vnd.neato.beehive.v1+json
                                          Content-type: application/json
                                          X-Agent: android-22|SM-G928F|samsung|1.0.0|134
                                          User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G928F Build/LMY47X)
                                          Host: beehive.neatocloud.com
                                          Connection: Keep-Alive
                                          Accept-Encoding: gzip

                                          ---> (TEXT)
                                          HTTP/1.1 200 OK
                                          Server: Cowboy
                                          Date: Wed, 30 Dec 2015 00:32:03 GMT
                                          Connection: keep-alive
                                          X-Frame-Options: SAMEORIGIN
                                          X-Xss-Protection: 1; mode=block
                                          X-Content-Type-Options: nosniff
                                          Content-Type: application/json; charset=utf-8
                                          Etag: W/"a3cdd45ce712890397436cafca38e79a"
                                          Cache-Control: max-age=0, private, must-revalidate
                                          X-Request-Id: xxxxxxxxxxxxxxxxxxxxxx
                                          X-Runtime: 0.022752
                                          Strict-Transport-Security: max-age=31536000
                                          Content-Length: 39
                                          Via: 1.1 vegur

                                          ---> (JSON)
                                          {"current_time":"2015-12-30T00:32:04Z"}

                                          <--- (TEXT)
                                          GET /dashboard HTTP/1.1
                                          Authorization: Token token=xxxxxxxxxxxxxxxxxxxxxxxx
                                          Accept: application/vnd.neato.beehive.v1+json
                                          Content-type: application/json
                                          X-Agent: android-22|SM-G928F|samsung|1.0.0|134
                                          User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G928F Build/LMY47X)
                                          Host: beehive.neatocloud.com
                                          Connection: Keep-Alive
                                          Accept-Encoding: gzip

                                          ---> (TEXT)
                                          HTTP/1.1 200 OK
                                          Server: Cowboy
                                          Date: Wed, 30 Dec 2015 00:32:03 GMT
                                          Connection: keep-alive
                                          X-Frame-Options: SAMEORIGIN
                                          X-Xss-Protection: 1; mode=block
                                          X-Content-Type-Options: nosniff
                                          Content-Type: application/json; charset=utf-8
                                          Etag: W/"c390b2a69fb7b4a405c8637e86ff321a"
                                          Cache-Control: max-age=0, private, must-revalidate
                                          X-Request-Id: xxxxxxxxxxxxxxxxxxxxxxxxxx
                                          X-Runtime: 0.014884
                                          Strict-Transport-Security: max-age=31536000
                                          Content-Length: 1337
                                          Via: 1.1 vegur

                                          ---> (JSON)
                                          {
                                          "email":"xxxxx@xxxxx.nl",
                                          "first_name":"xxxx",
                                          "last_name":"xxxxxx",
                                          "locale":"nl",
                                          "newsletter":false,
                                          "created_at":"2014-06-23T16:39:45Z",
                                          "verified_at":"2015-05-25T13:19:08Z",
                                          "robots": [
                                          {
                                          "serial":"xxxxxxxxxx",
                                          "prefix":"SN",
                                          "name":"xxxxxx",
                                          "model":"BotVacConnected",
                                          "secret_key":"xxxxxxxxxxxxxxxxxxxxx",
                                          "purchased_at":"2015-12-22T00:00:00Z",
                                          "proof_of_purchase_url":"https://neatorobotics.s3.amazonaws.com/proof_of_purchases/xxxxxxxxxx/ProofOfPurchase.jpg",
                                          "proof_of_purchase_generated_at":"2015-12-23T18:31:21Z",
                                          "mac_address":"xxxxxxxxx",
                                          "firmware":"2.0.0",
                                          "created_at":"2015-11-11T20:10:38Z",
                                          "linked_at":"2015-12-23T17:23:55Z"
                                          }
                                          ],
                                          "recent_firmwares":{}

                                          }

                                          xxxxxxxxx = personal data

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


                                          15

                                          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