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

I experienced that my Roomba’s password changed itself due to changes in my local network, like acquiring new router and such. This means that i “enjoyed” the process of retrieving my PW and BLID a few times :slight_smile: When reading the explanations in related gits it does seem to be a quite technical process, but i will try to explain my quick and dirty “guerilla” method for doing this on a regular Windows machine. It is actually easier than you think :wink: We will even clean up nicely afterwards.

First let us fetch the stuff we need. This is two files in total. Create a temporary folder on your desktop for extra convenience (you can name the folder whatever you want) and put these two files inside that folder:

  • Python installation package. I recommend getting the latest “executable installer”. You can find this in the ‘Download’ section of the official Python website https://www.python.org

  • Roomba Python Library. This is a zip-package of files normally used to establish integration with your Roomba (you can find it at https://github.com/NickWaterton/Roomba980-Python). Look for a green button marked “Clone or download”, Click it and select “Download zip”.

So, you now have these two files (one exe file and one zip file) in a folder on your desktop? Great, then we can move on :slight_smile:

  1. Start Python installation by running the exe-file. Select “Customize installation”. Click “Next”. On the “Advanced options” page be sure to check “Add Python to environment variables” and edit “Customize install location” to “c:/Python”, then click “Install”.

Please keep the Python installation file in your desktop folder for now.

  1. Open the Roomba zip-file and locate the “roomba” folder inside. Copy this folder into your freshly installed Python folder (c:/Python).

  2. Use your favourite method of opening a DOS prompt (example: click the magnifying glass besides the Start-menu icon and search for “cmd”). Then use the DOS prompt to navigate to your C:/Python folder using the “cd \python” command.

  3. Once inside the Python folder, type “pip install six” and press ENTER. Now this mysterious package called “six” should begin to install. After a few second you should be back in the DOS prompt.

  4. Type “python .\roomba\getpassword.py”, hit ENTER and wait a few seconds. Now your Roomba should be detected by the script. From here on you should follow on-screen directions (something about making sure your Roomba is turned on and parked in the base, and then holding the “Home” button for a few seconds to hear a bleep. This should cause the wifi indicator on your Romba to flash - then hit ENTER to continue and wait a few seconds more).

… and there you have it :slight_smile: Your Roomba’s BLID and password now appears in the bottom of the DOS window! You’re welcome :grinning: Copy this info to a txt-file, grab a screenshot or whatever method you like best.

From here on you can follow the instructions found on the Home Asistant website on how to add your Roomba to your “configuration.yaml” file (https://www.home-assistant.io/components/vacuum.roomba/). Then you’re ready to reboot your Home Assistant and enjoy the goodness of Roomba :wink:

Now for the cleanup:

Start the Python installation by running the exe-file in your temporary desktop folder and select “Uninstall”. Then you can delete the C:\Python folder, and also delete the temporary folder from your desktop.

All done :slight_smile:

29 Likes

You are the wind beneath my wings.
I struggled with this so many times before that I had given up a long time ago.

Thank you!!!

2 Likes

This is such a potential break-through for me, as I haven’t been able to figure any of the other instructions so far to get the BLID and password for my Roomba.

Sadly, my attempt has failed, and I am hoping to get some advice on what I am doing wrong.

I have a Roomba 980, and have downloaded the Python Windows Executable for Python 3.7.2 (Python-3.7.2-amd64.exe). I have also installed the latest Roomba980-Python-master.zip file from GitHub - NickWaterton/Roomba980-Python: Python program and library to control iRobot Roomba 980 Vacuum Cleaner.

The installations of Python appears ok, and I have been careful to install it in the C:\Python directory and check “Add Python to envionment variables” option.

When I run “pip install six”, it appears to work ok, and states “Successfully installed six-1.12.0”. However, it does give the following warning message.

“You are using pip version 18.1, however version 19.0.1 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.”

When I run “python .\roomba\getpassword.py”, I get the following response (I have masked the Mac address of my Roomba):

C:\Python>python .\roomba\getpassword.py
paho mqtt client not found
CV or numpy module not found, falling back to PIL
PIL module not found, maps are disabled
waiting on port: 5678 for data
supplied address 255.255.255.255 does not match discovered address 192.168.1.32, using discovered address…
supplied address 255.255.255.255 does not match discovered address 192.168.1.231, using discovered address…
found 1 Roomba(s)
Make sure your robot (Roomba 980) at IP 192.168.1.231 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.
Press Enter to continue…
Received: {
“ver”: “3”,
“hostname”: “Roomba-3145C60802039800”,
“robotname”: “Roomba 980”,
“ip”: “192.168.1.231”,
“mac”: “XX:XX:XX:XX:XX:XX”,
“sw”: “v2.4.6-3”,
“sku”: “R980000”,
“nc”: 0,
“proto”: “mqtt”,
“cap”: {
“pose”: 1,
“ota”: 2,
“multiPass”: 2,
“carpetBoost”: 1,
“pp”: 1,
“binFullDetect”: 1,
“langOta”: 1,
“maps”: 1,
“edge”: 1,
“eco”: 1,
“svcConf”: 1
}
}
Roomba (Roomba 980) IP address is: 192.168.1.231
Connection Error timed out
Traceback (most recent call last):
File “.\roomba\getpassword.py”, line 39, in
main()
File “.\roomba\getpassword.py”, line 34, in main
Password(file=arg.configfile)
File “C:\Python\roomba\password.py”, line 39, in init
self.get_password()
File “C:\Python\roomba\password.py”, line 136, in get_password
wrappedSocket.send(packet)
File “C:\Python\lib\ssl.py”, line 986, in send
return super().send(data, flags)
socket.timeout: timed out

I have tried the routine several times, and correctly pressed the Home key getting the tones and the flashing wifi light.

Is there any advice on what isn’t correct? Any advice would be greatly appreciated.

I don’t know why it’s not working for you. I just checked my Roomba 980, and it is also on software 2.4.6-3 like yours. I was able to get this working several months ago and it’s still working for me now. Hope that helps (or at least gives you hope).

Firstly, thanks very much Nick and new_west_geek for your thoughts.

I’ve now got it working, and I think that multiple connections were probably the problem. I deleted the iRobot app from all of my devices, reset the Roomba (by pressing and holding the Clean button), and it all worked.

For info, I got it working using Python 3.7.2, so this version is fine. Thanks heaps Nick for this post!

2 Likes

you there… I LOVE YOU

regarding multiple connections… roomba.py needs to have self delay changed from 1 to whatever value you want in seconds. But then it needs to get compiled? idk

1 Like

Thank you so much! Very easy and helpfull! Great!

1 Like

By the way, I can confirm this works for the Roomba i7 model as well. And thank you!

Just pulled this off with the Roomba E5 from Sams Club. Excellent tutorial!

I dont expect anyone has a solution at this point as this is a new product and the first time the mop bots have had wifi but figured I would post here. I did attempt to setup my new iRobot Braava Jet M6 today using this method of retrieving the BLID and password but after a couple hours of trying to succeed I gave up so I could actually see it work lol. Below is the errors I was getting. I tried to ensure nothing else was accessing the device: removed from the app, removed the app from device, put device on a private network so the cloud could not connect to the device, reset device both a clean reboot and a factory reset. Nothing worked for me. Im going to guess it may be related to new firmware but who knows. If anyone does have any thoughts, feel free time chime in.

S C:\Python> python .\roomba\getpassword.py
waiting on port: 5678 for data
supplied address 255.255.255.255 does not match discovered address 10.10.16.102, using discovered address…
supplied address 255.255.255.255 does not match discovered address 10.10.16.50, using discovered address…
found 1 Roomba(s)
Make sure your robot (Kitchen Braava) at IP 10.10.16.50 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.
Press Enter to continue…
Received: {
“ver”: “3”,
“hostname”: “iRobot-FCC60FCC250F4B51AB9EF5FF825C80D1”,
“robotname”: “Kitchen Braava”,
“robotid”: “FCC60FCC250F4B51AB9EF5FF825C80D1”,
“ip”: “10.10.16.50”,
“mac”: “50:14:79:06:A1:12”,
“sw”: “sanmarino+2.8.1+sanmarino-ota-1+2”,
“sku”: “m611020”,
“nc”: 0,
“proto”: “mqtt”,
“cap”: {
“maps”: 3,
“edge”: 0,
“pmaps”: 0,
“area”: 1,
“eco”: 1,
“multiPass”: 2,
“pose”: 1,
“team”: 1,
“pp”: 0,
“5ghz”: 1,
“prov”: 3,
“sched”: 1,
“svcConf”: 1,
“ota”: 2,
“log”: 2
}
}
Roomba (Kitchen Braava) IP address is: 10.10.16.50
Connection Error [WinError 10054] An existing connection was forcibly closed by the remote host
Traceback (most recent call last):
File “.\roomba\getpassword.py”, line 39, in
main()
File “.\roomba\getpassword.py”, line 34, in main
Password(file=arg.configfile)
File “C:\Python\roomba\password.py”, line 39, in init
self.get_password()
File “C:\Python\roomba\password.py”, line 136, in get_password
wrappedSocket.send(packet)
File “C:\Python\lib\ssl.py”, line 986, in send
return super().send(data, flags)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
PS C:\Python>

I’m having the save issue with the i7

Might be related to the new firmware because my i7 was working for a while…

I have the very same problem with my Braava Jet M6. Is there any way to downgrade the device to an older firmware in order to hook it up (and hope it will still work after updating again)?

1 Like

Just wanted to throw out there that this was not finding my roomba automatically. I had to go into the file and hard code the IP address. I assume this may have something to do with my IP range not being the standard 192 addresses. Specifically, in getpassword.py I changed the default line to the following: default=‘10.1.1.45’,

Once I did that, it found my roomba near instantly. Great work!

1 Like

Waiting on someone to figure it out before on jump and buy one :slight_smile:

Hi.

Followed your instructions, but in “pip install six”, nothing happens.

c:\Python>pip install six
'pip' is not recognized as an internal or external command,
operable program or batch file.

For "python .\roomba\getpassword.py the result is:

c:\Python>python .\roomba\getpassword.py
Traceback (most recent call last):
  File "c:\Python\roomba\roomba.py", line 30, in <module>
    from roomba.password import Password
ModuleNotFoundError: No module named 'roomba.password'; 'roomba' is not a package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".\roomba\getpassword.py", line 12, in <module>
    from roomba import Password
  File "c:\Python\roomba\roomba.py", line 32, in <module>
    from password import Password
  File "c:\Python\roomba\password.py", line 6, in <module>
    import six
ModuleNotFoundError: No module named 'six'

Any ideas?

The SSL version being specified is no longer supported in password.py change:

ssl.PROTOCOL_TLS or ssl.PROTOCOL_TLSv1 

to

ssl.PROTOCOL_TLSv1_2
1 Like

Can you describe exactly how you got the BLID/password to populate?

I’m getting error - with password.py but made this change you mentioned, still no go…

i get the following error: “Error getting password, receve 7 bytes. Follow instructions and try again” :frowning:

hello everyone,

After i have added my roomba e5 to home assistant the leds stays on.
is anyone else experiencing this isseu?

Thank you for you excellent walkthrough, this was the only device I have had difficulty integrating until your help. Thanks