Roomba J7+ Integration [Help]

I think Thor is much easier (especially since I’m on a MAC). To use it, have your Roomba app open and ready to use. In the Thor app, click the lightning bolt icon in the top center of the screen (starts a session). Immediately navigate to your Roomba app and select your robot. Now you can go back to Thor and click the lightning again to stop the session. Now, at the bottom of the screen click on the Sessions icon. The one just recorded will be at the top. Click it and look for the the line that starts with POST → .json followed by unauth1.prod.iot.irobotapi.com and tap that line. On the screen that opens, tap the Response option at the top then tap the application/json line to open it. Your BLID and password should be fairly close to the top starting with a line that says “robots”. The brown (on my phone anyway) string in quotes is the BLID, the password is the entire string in quotes under “password”
Hope this helps.

1 Like

I don’t have a Mac or an IPHone so Thor wasn’t an option. You can also just SSH into the Hassio box and run all the same commands without WSL. It’s worth having WSL setup though.

If you want a free* way to do this (and don’t want to use dorita980 / roomba980 for some reason) then I would recommend using Charles Proxy. You can have it run on a windows machine and then use it as a proxy server for your phone/tablet/computer and it will show you all of the traffic. From there you can easily extract the Roomba’s password from the traffic.

‘*’ = you can use Charles Proxy in demo/trial mode for free. It will still work the same but it will limit you to 30 mins. This should be enough time to set everything up and extract the data. (You can setup the phone/tablet/machine to point to your proxy server before actually starting Charles Proxy. This will help save some time)

Reaching out to this chain since there are several others with the J7+. I have my BLID and password. But I am trying to create automations to clean specific rooms. I tried following the instructions on this thread - Add support for irobot roomba clean specific room - but I haven’t had any luck. Has anyone else been able to accomplish this?

First are you using rest980_j7?

I have a j7 and I have automations to clean specific rooms, it was challenging at first to setup but is easy now that I figured it out.

@Danny2100 Thank you so much for the advice! I spent several hours with this, but in the end had no luck. I don’t need or care about the room maps or any special lovelace UI. I just want to be able to identify my pmap_ids and region_ids so I can create automations to clean my individual rooms.

I already have my ROBOT_IP, BLID, and PASSWORD. I know these are correct because I was able to configure the core HA Roomba integration.

So I THINK all I need now is to get rest980 working. I spun up a docker container with koalazak/rest980:latest and can get to the Web UI using:

http://<my ip>:<my port>/api/local/info/state

But all it returns is an empty {}. I tried every variation of disabling the HA integration, closing the app, and starting a room cleaning before/during the docker container start. Nothing works.

Any additional thoughts or troubleshooting steps you can recommend?

I had that issue as well, are you using the rest980 j7 image? The way the robot communicates I think is different from previous robots which is why you’re seeing the {}

I couldn’t paste the link for the addon as it’s 404 for some reason.

Just throwing this out there for anyone who is running HA in docker vs Home Assistant OS.

It took quite a while, but I finally got my J7+ to work. Not only did I want it added to HA, but I wanted to be able to create automations to clean individual rooms.

Most of the instructions came from here:

But even with my BLID , PASSWORD , and ROBOT_IP, I was still having trouble getting rest980 docker container to return any info about my Roomba. I finally discovered that the J7+ uses different encryption, so one additional parameter needs to be added to the docker container: ROBOT_CIPHERS=TLS_AES_256_GCM_SHA384

I now have it up and running! Hopefully this is helpful to anyone else having trouble with the J7+!

1 Like

This guide worked for me getting the password for my roomba j7+
Massive thanks!

Thanks, this worked perfectly for me!

1 Like

Constantly throws an error
KeyError: ‘UID’

Thank you! This was the best advice I found for getting my credentials.

If anyone reading is on Mac (and you have git and python already installed), you can follow this guide starting at step 4 in your terminal. Super quick and easy, took me 2 minutes.

so as far as i can tell i did everything the same way as this guide but i keep getting " ModuleNotFoundError: No module named ‘requests’ " ive confirmed that im typing in the right username and password and am running in the WSL… help please.

Looks like @pfurrie accidentally left out a step of installing a dependency. You need to execute:

pip3 install requests

this installs the missing “requests” module. I had the same issue and found the solution in the github readme.

2 Likes

I’ve got through and managed to get my J7+ integrated into Home assistant. Using the Roomba integration. The issue I am having is I have no idea how I can run the vacuum and mop command via home assistant?

IE with my regular I3+ and I call service vacuuum.start and it starts the vaccum. Technically with my J7+ I can call vacuum.start but it only does the vaccum portion. I don’t know how I can run the “vacuum and mop” command to it via home assistant roomba integration.

Does anyone have any idea how I might achieve this?

Thank you!

This worked great for me!

My Combo J7 (I think that is the model you mean) mops and cleans by default, with the normal command.

You can send a specific command to do whatever you want. You might need that. You need to work through this thread to clean a specific room: Add support for irobot roomba clean specific room - #25 by jaaem

There is a set of docker commands (early in the thread) or a way to edit the integration (later in the thread) to capture the data to clean a specific room.

I’ve tried Dorita, it finds the roomba, but is unable to retrieve a password for some reason. Also used Thor, and it does capture a lot of traffic from the app, but no auth URLs, any ideas?

Getting the same error after installing the requests module for pip3.

This helped me for my j7+, all other options involving buttons on the device itself didn’t make it budge. Had to use the cloud retrieval option! Many thanks!