iRobot Roomba i7+ Configuration using Rest980

I’m trying to get lovelace working.
However one card (selective room cleaning) has following error:

What am I missing here?

Also I’m trying to use MQTT-Explorer to see if topics are populated.
I’ve not setup user / password specifically in MQTT addon.
I’m trying to access MQTT-Explorer with following options:
Uncheck Validate Cert and Encryption
Protocol: mqtt
Host: LAN IP of HASS Port: 1883
User and Password: blank
With these settings I get Connection refused: Not authorized

Changed MQTT configuration to anonymous: true
I can get mqtt-explorer to connect but there are no topics

[Some more info]:
Tested http://:3000/map
All actions / buttons work and mapping can be shown.

Tested http://:3001
ends in vacuum.log not available, I’m guessing I need to run cleaning once before this shows up

currently I do not, as i dont have a second device :confused:
in a nutshell, you need to duplicate everthing for a second instance

its complaiing that you dont have group.vacuum_rooms defined. Check in Developer Tools if this exists?

these should be created for the maintenance buttons after you have clicked them, othereise you might need to ensure auto discvoery is enabled (though should be by default) have you added the MQTT integration into HA?

yeah no log file = no map

Sorry don’t know how to quote correctly:

I don’t have group.vacuum_rooms under developer tools. Do I need to create these (as oppose to have them available with setup)

Forgot to update my post: got maintenance buttons showing after going through reboot and proper process, I guess I was just missing click to create though I thought I created.

I think, I need to follow:
Run vacuum from <ip>:3000/map, get all info from <ip>:3000/api/local/info/state
Then update selective room cleaning card. Is that correct? (If I don’t have irobot app setup)

you should be able to highlght text in the thread and it should popup with a quote option

this group is included in the vacuum.yaml file - so in theory it should already exist? check that this is correctly working.

based on this i assume your maintenance entries are now working?

Which model do you have? if you have a i7/i8/s9 then you will need to use the irobot app to first configure your rooms, which requires you to first map out your place and define the rooms.

if you hav a different model, then you wont be able to use selective cleaning.

thanks

definitely this is what I’m missing, was thinking secrets.yaml and vacuum.yaml are after setup enhancements, do I just put these files under config? (obviously will need update to these as per rooms setup) - What do I need to change in configuration.yaml to refer to vacuum.yaml?

yes, this works now.

S9, so definitely will be running app once and configure there then update here. When I use app, is it ok if HA also has vacuum added (BLID and Password)?

please have a read of the insrtructions on GitHub, the setup of these files is covered in step 6

setup your rooms in irobot app first, then perform step 5 in the instructions to get the room details.

you will get timeouts and blank responses from the API when multiple services try access the roomba. use at own risk

How do I perform this without 2 services accessing roomba at once?
Navigate to http://<ip or fqdn of docker host>:<rest980port>/api/local/info/state
Maybe looking at state is just read access so it’s ok?

So I got it fixed,

Adding everything double did work 50% i had that already than I changed a few things to get it working:

Make all “vacuum” > “braava” and all “rest980” > “rest980_2”.

1 Like

in this instance, your accessing rest980, and rest980 is accessing the roomba.
if you run vacuum and rest980, then these are two seperate services accessing the roomba.

good work! :beers:

I started over my home assistant setup because of synology docker not supported.
Now i have an error while installing the rest980 and roombapw supervisor add-on
I receive the following error.

Failed to install add-on
‘NoneType’ object has no attribute ‘is_file’

@JeroenDeckers - Responded in GH Issues.

Looks like this is the culprit and I have added the file as indicated.

Can you test and see if this fixes it?

Could you share a bit more on how you set this up and kept the native integration in HA? I want to keep the native integration as it is (I’m on a 960) but I would like to get maps of completed runs using this setup. I’ve almost got my mind wrapped around it, but I’m not quite there.

1 Like

Thx Syrius, this solved the issue.

1 Like

Hello there,
I’m a bit new to HA and all the nice stuff, but have the Roomba create a very nice map:


Only problem:
When my Roomba 976 is finished, and returns to his “home”, that is not visible in de map.
The green arrow is where the Roomba is located (Docked)
The postion on the map (green square) is where te maps show Roomba is.
Is there something is need to change to get that fixed ?

Hi Jeremy, I’ve been working my way through your amazing solution, and I think I’m stuck one final time, and don’t know how to get past it.

When trying to either do a “full clean”, or “Selective clean” I get the following error in the Log of Rest980:

Error: Endpoint not found.
    at /usr/src/app/app.js:63:13
    at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
    at /usr/src/app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
    at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
    at /usr/src/app/node_modules/express/lib/router/index.js:635:15
    at next (/usr/src/app/node_modules/express/lib/router/index.js:260:14)
    at jsonParser (/usr/src/app/node_modules/body-parser/lib/types/json.js:110:7)
    at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
    at /usr/src/app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
    at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
    at Function.handle (/usr/src/app/node_modules/express/lib/router/index.js:174:3)
    at router (/usr/src/app/node_modules/express/lib/router/index.js:47:12)
    at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
    at /usr/src/app/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
    at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
    at authHandler (/usr/src/app/app.js:23:48)
GET /api/local/info/state 200 102.462 ms - 4440

Any advice?

do you get this behavior everytime? could potentially be rest980 unable to reach your robot therefore not getting updated location updates. or theres a rogue location added in vacuum.log file

if you just cleaned a single room, same result?

can you run the full_clean command manually from a web browser?

http://<ip or fqdn of docker host>:<rest980port>/api/local/action/start

Everytime the same result, tried it multiple times, allways the same result.
The Roomba 976 doesn’t have selective room cleaning, so that can’t be the problem.

Looked at the vacuum.log, and when the Roomba is done cleaning, the status changes to “Finished”, after that the Roomba returns to the dock. Perhaps thats the reason is stops drawing ?

I now own a Roomba i7, and there the “docked” location works perfect.
So the issue for the 976 is not important for me anymore :wink:

One big difference between the 976 and i7 is the way lines are drawn.
Result from the 976 shows more detailed lines.
The lines from the i7 look like there is more time between log-entry’s ?
Will post screenshots later to show what i mean.

There is an automation that runs when the status is detected changing from “Clean/Train” to “Ready” which triggers this. In theory the location points should be recorded all the way back to the dock - so not really sure why this is happening :man_shrugging:

Yeah I agree there is delay between updates. The automation performs an entity update for the rest980 api every 2 seconds, but this does not always equate the a change in the position data - so its likely a rest980/dorita980 < > robot limitation. Rest980 does have a “real-time” map interface (/map), though i expect the time delays are the same here.

Checked it with the “real-time” map, and it looks like the i7 only updates its location every 4 seconds.
Other values in the map update based on the “refresh-time” set in the /map
That would explain the delays in drawing lines.
De 976 (don’t own it anymore) might send location updates more often.
btw: Thanks for this very nice add-on !

1 Like