Home Assistant Community

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

#1

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:

2 Likes
#2

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!!!

1 Like
#3

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 https://github.com/NickWaterton/Roomba980-Python.

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.

#4

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).

#5

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
#6

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
#7

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

1 Like
#8

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