Get Roomba BLID & PW the easy way (using Windows)

As an alternative option, If you run HA (formerly HASS) I created a add-on which allows you to get the credentials without needing to install anything locally.

It’s in my HA custom add-on repo

2 Likes

Yeah I discovered that too. The defaults are different depending on which version of python libraries you are running. So upgrading python is an option and the component, I believe now relies on the defaults versus overriding it. SSL versioning is such a PITA.

I have a roomba 670 - it is wifi capable and currently connected tnad able to control through the irobot official app. for some reason it does not give the password. 0it gives everything else. ANy ideas?

get-roomba-password 192.168.1.x
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Then press any key here...
Robot Data:
{ ver: '3',
  hostname: 'Roomba-31650110214136xx',
  robotname: 'Roomba',
  ip: '192.168.1.x',
  mac: 'xx:xx:xx:xx:xx:xx',
  sw: '3.3.47',
  sku: 'R6700xx',
  nc: 0,
  proto: 'mqtt',
  cap: { ota: 1, eco: 1, svcConf: 1 },
  blid: '3165011021413xxx' }

Error getting password. Follow the instructions and try again.

can it be because it is already registered to the irobot cloud?

Cheers Flemming! Got it to work with my 980.

Still getting error:

Traceback (most recent call last):
  File "roomba/getpassword.py", line 39, in <module>
    main()
  File "roomba/getpassword.py", line 34, in main
    Password(file=arg.configfile)
  File "/Users/kenny/Roomba980-Python/roomba/password.py", line 41, in __init__
    self.get_password()
  File "/Users/kenny/Roomba980-Python/roomba/password.py", line 131, in get_password
    sock, ssl_version=ssl.PROTOCOL_TLSv1_2, ciphers='DEFAULT@SECLEVEL=1')   #ciphers='HIGH:!DH:!aNULL' may work as well
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/ssl.py", line 1218, in wrap_socket
    context.set_ciphers(ciphers)
ssl.SSLError: ('No cipher can be selected.',)

Any idea ?

Just want to say that I was able to obtain the BLID and password from my i7 running firmware version 3.2.9 after much trying over and over again.

I don’t know what the secret was, but it helped to connect directly the Wi-Fi network that the robot creates (usually called “iRobot-XXXXXXXXXXXXXXX”) and then run the script while connected to that network. Eventually, that worked for me.

I struggled trying to get the BLID using an Ubuntu instance and the standard docs, and gave up. Then I found this and within 5 minutes I had it. THANK YOU!

1 Like

Gracias a ti he podido configurar la Roomba despues de mucho intentarlo

GRACIAS!!!

1 Like

Excellent guide. OP still worked like a charm for me May 16, 2020!

1 Like

Work as intended! Thank You

1 Like

Another thanks for this excellent post! Worked like a charm

1 Like

Did anyone get that working with Brava jet m6? I could be found by the script but then I get a lot of error like connection refused and broken pipe.

EDIT: ok forget it, after writing this it worked. I needed to be faster after the script says “press button for 2 seconds until sound”, and directly after that sound I continued and it worked.

I’m having the same issue. Did you ever figure it out?

First of all Flemming - BIG THANKS!

Beeing a code-knob with no education in any Phyton, YAML or other language, I have managed to get by changing ROM’s, running linux and other basic stuff in the past.

Homeassistant is a fantastic peice of software, only your imagination is the limit to what you can do. Problem is, it is still designed for programmers or nerds whom have a basic understanding og PC-languages.

Your write-up however made a big challange for me (having my Homeassistant in a Docker setup on a linux server) into a pice of cake, completed in minutes following your easy instructions.

I can confirm that this works with a Roomba 965 software 2.4.8 -44

Great job! :+1:

1 Like

I tried that on my Roomba e6 several times by connecting directly to the Roomba SSID. But every time I got this
Roomba (Roomba) IP address is: 192.168.10.1
Socket Error: The read operation timed out
Error getting password, receive 2 bytes. Follow the instructions and try again.

I’m having the same issue, were ever able to get it working?

These are perfectly written instructions. Thanks much for your effort in writing them up!

Flemming … you are just exceptional! How to say … thank you, thank you, thank you :+1:t2: :slight_smile:

Why do I keep getting “ No Roombas found, try again”?

For anyone who doesn’t want to install stuff on their system, but does have docker, you can do it like so:

docker run -it --rm python /bin/bash
root@404510a802de:/# git clone https://github.com/NickWaterton/Roomba980-Python.git
root@404510a802de:/# cd Roomba980-Python/
root@404510a802de:/Roomba980-Python# pip install six
root@404510a802de:/Roomba980-Python# python ./roomba/getpassword.py -R <IP>

Or just the commands:

docker run -it --rm python /bin/bash
git clone https://github.com/NickWaterton/Roomba980-Python.git
cd Roomba980-Python/
pip install six
python ./roomba/getpassword.py -R <IP>

You need the IP since the IP discovery requires UDP broadcast, I’m guessing there’s some docker magic to make the UDP broadcast work but I’m not sure what it is.

2 Likes