Ho-ley mackerel … this is a major pain.
After many hours of hacking at this, managed to get the password for our J7+, using Windows 11. I’ll skip all the things that didn’t work (there were lots). I believe this will work with Windows 10 as well… if you get it to work, please let everyone else know.
- Install WSL (Windows Subsystem for Linux). Here is the Microsoft article on the subject.. Essentially, you run this command in Powershell:
wsl --install
Note: you will need to setup an account on your WSL, so remember the credentials you make – you’ll need them later).
Note: it won’t say “WSL” on it, but will have the round orange-and-white Ubuntu logo, both in the taskbar and in the upper-left corner of its window.
- Update WSL. The Linux instance won’t connect to the outside world until you do this.
sudo apt update
Note: you may be asked to enter your WSL credentials at this point. That’s the username and password I mentioned to remember in step 1.
This will display a bunch of data like this:
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1069 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [197 kB]
[and so on]
- Install Python3. Honestly, I don’t know if it was already installed, but this is how I did it, and won’t hurt anything.
sudo apt install python3-pip
At some point you’ll be asked if you want to continue with this installation, and press “Y” to answer yes. A whole bunch more stuff goes by on the screen:
Do you want to continue? [Y/n]
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gcc-10-base amd64 10.3.0-1ubuntu1~20.04 [20.2 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgcc-s1 amd64 10.3.0-1ubuntu1~20.04 [41.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++6 amd64 10.3.0-1ubuntu1~20.04 [501 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc6 amd64 2.31-0ubuntu9.2 [2715 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8 amd64 3.8.10-0ubuntu1~20.04.2 [387 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8 amd64 3.8.10-0ubuntu1~20.04.2 [1625 kB]
[and so on]
- Get a copy of the unofficial iRobot Roomba python library (this part is really easy):
git clone https://github.com/NickWaterton/Roomba980-Python.git
This copies a folder of information from Github to your WSL window. This consists of Python scripts for the Roomba integration, but really you need just one of those scripts.
Sanity check: After this completes, do this:
ls
This will list the items in your current Linux folder. If everything is going as planned, you should see this:
Roomba980-Python
That is the folder you just downloaded (congratulations!).
- Move to the proper folder. To make this easier, let’s just move to the correct folder…
cd Roomba980-Python
Now you are in the Roomba980-Python directory.
cd roomba
And now you are in the roomba sub-directory. Almost done!
- Run the command to get the password for your J7+ Roomba.
python3 password.py 'your_roomba_account_username' 'your_roomba_account_password'
Note: What is happening here is you are asking the “password.py” script to retrieve the password for your Roomba device from the Roomba website. To do that, it needs to unlock your account using your own Roomba username and password (not the device password but your user password… they aren’t the same thing).
If all goes according to plan, you will get back a bunch of data. Somewhere in the middle of all that should be (hopefully) something which looks like this:
"password": ":984019410f28023lna:lOUL80",
Note: I made up that password for demonstration purposes
Everything within the second set of quotes is the password you need. You’ll use that in Home Assistant when you are configuring the Roomba integration. During the setup of that Roomba integration, after it fails to automatically get the password for your Roomba device, you’ll be given an opportunity to manually enter the password. The easiest and best option is to copy-and-paste the password you just found and put it into the text box prompt for the integration.
Good luck!