Roomba J7+ Integration [Help]

Hello,

I’m fairly new to Home Assistant in general so forgive any ignorant questions/phrasing. I installed HA on my Synology 920+ via Docker. I have added an old Roomba i7+ successfully through the automatic setup where you push the home button and HA retrieves the password.

However, I am having a hard time adding the new J7+ model that just came out. After setting up the roomba J7+ in the iRobot app it was discovered in HA. The new J7+ model doesn’t have a home button, it only has one button that is the clean button. When you hold it down for a few seconds it just auto empties into the dock. I tried using the repo here to manually retrieve the password: https://github.com/NickWaterton/Roomba980-Python

When I run the password.py script it retrieves a lot of information about my roombas, but no password. Example:
“ver”: “4”,
“hostname”: “iRobot-D1B8D24A74B344148BB53D626DCD299B”,
“robotname”: “XXX”,
“robotid”: “XXX”,
“ip”: “XXX”,
“mac”: “XXX”,
“sw”: “XXX”,
“sku”: “j755020”,
“nc”: 0,
“proto”: “mqtt”,
“cap”: {
“binFullDetect”: 2,
“dockComm”: 1,
“edge”: 0,
“maps”: 3,
“pmaps”: 5,
“tLine”: 2,
“area”: 1,
“eco”: 1,
“multiPass”: 2,
“pose”: 1,
“team”: 1,
“pp”: 0,
“lang”: 2,
“5ghz”: 1,
“prov”: 3,
“sched”: 1,
“svcConf”: 1,
“ota”: 2,
“log”: 2,
“langOta”: 0,
“expectingUserConf”: 1
},
“cloudConnState”: 14

I put “XXX” for some of the information. Is the ability to integrate the J7+ model just not integrated yet because it’s new or am I doing something wrong? Thanks for any help in advance!

Here too, same problem.

Apparently they changed something with SSL so it’s not possible yet. https://github.com/koalazak/dorita980/issues/142

I have successfuly extracted the password using a IOS app thor to sniff ssl connection while starting roomba app.

3 Likes

dude that worked thank you soooooooooooo much

Here’s a way to use Android and a PC without a custom APK. Roomba J7 and Home Assistant · GitHub

Works perfect via the paid app Thor in the IOS app store. Was able to find my password.

Now installing the Rooba intergration via Hack. That one is still not working as it should.
The entity is not collecting all data only status of j7+ robot. For example mentioning Docked.

1 Like

Worked great. I have found no other way of getting this info from the new j series. Thanks!

Also worked for me. Heads up to anyone looking to do this, the Thor app is $12.99 on the iOS app store but it does the job well. I ran into issues with HA accepting my password when entering from the phone. Setting the field to show password and then pasting allowed me to continue. Not sure why and I doubt that will be everyone’s experience but just a heads up if you run into a similar problem.

FYI they updated the project to pull the password straight from the cloud so it’s easy peasy to use again. The new command format is: ./password.py <login> <password>

where do I run this command? in ssh it doesn’t work
zsh: no such file or directory: ./password.py

You run the command in

docker exec -it homeassistant bash

Does anyone know how to retrieve zones IDs?

As in what command goes before myRobot.getRobotState(waitForFields)

For the password its ./password.py but what is it for the getting the state?

1 Like

You can also run it from an external machine. I used WSL on win10 to run it.

I hope this helps John.

  1. you need to clone the project linked at the top using
    git clone https://github.com/NickWaterton/Roomba980-Python.git
  2. you can do this on any machine that has both git and python 3 installed (home assistant container, WSL, Linux, windows, whatever)
  3. if running on windows natively you will need to use pip to install the requests module (or the code will fail to retrieve the password)
1 Like

thanks, that was helpful and worked (though i had to use my python install on windows as my WS is borked).

I am a beginner and I don’t understand where those commands are to be entered. I installed Python the “roomba” folder following a video tutorial. Can anyone explain to me step by step how I should do it? Thanks so much for your help.

I am new at this stuff and am I am stuck on this step (thor). I purchased the app but I don’t understand how to get the sniffer to start. There are not any tutorials online that I can find. Everything just stays blank and there doesn’t seem to be a start button anywhere.

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.

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

  1. 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]
  1. 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]
  1. 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!).

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

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

10 Likes

Thanks! Getting around to setting up an Xmas gift and found your post here.

I will add that for anyone else that you may need username and password within single quotes, so:

password.py '[email protected]' 'mypassword%*&#'

And if you see KeyError: 'sessionInfo' after running this you probably have your password entered wrong, as I did the first time.

I did not need to wake up the Roomba or press the home button to get it in pairing mode, etc. Running the command will initially output some info, and then after another short wait, the info retrieved from the account. I then used s and hit enter to skip configuring the Roomba, and copied and pasted the password into the prompt provided by the integration.

2 Likes

Thanks. I’ve edited my post to reflect that.