iRobot Roomba i7+ Configuration using Rest980

I Have the Exact same issue

I’ve been trying to get this configured for my j7 but have been running into issues.

I’m stuck at trying to get the room details by navigating to path
http://:/api/local/info/state

I’m using port 3000. The official HA vacuum component is not running. I’ve checked my credentails, and the only thing that can be incorrect is the firmware which I have set to ‘2’. I’ve restarted the addon, and homeassistant many times.
I’m just receiving a {} when i navigate to the path.

Can anyone help?

Maybe a little blunt question… but I am planning to buy a vacuum robot and thinking of the i7+ of Roomba. Does this integration still work for Home Assistant in combination with the i7+?

Googling around about integration solutions with Roomba, this one seems the only one that seems to work in the passed.
Hope someone can confirm so I can buy one and maybe collaborate in improving this integration.

It does - I have the same model and have all the functionality i would in the app

I haven’t integrated any maps - which you can - because it just cleans everywhere on the first floor

image

1 Like

@KurtaPajama - I’m having the same issue with my e5.

If i go to 192.168.1.111:3000, it presents the following,

{"documentation":"https://github.com/koalazak/rest980","pong":"2022-09-22T22:03:17.269Z"}

but if I try 192.168.1.111:3000/api/local/info/state, i just get

{ }

Did you work out the cause? I think mine is a local network issue, which I’m currently troubleshooting.

Can anyone confirm what url i would use to make the same call to the cloud service ?

Hey all, was hoping someone might be able to help me out with an automation. I have everything setup and working so I can run selective room cleaning from the lovelace card.

What I’d like to do is have an automation run so that the vacuum starts cleaning a specific room when a contact sensor changes to the closed state. I’m not even sure where to begin so any pointers would be appreciated

Hello,

Same issue for me.

Florent

the Roomba Images (rest980 and rest980_2) are not linked to MQTT, these are separate. check the names in lovelace, and ensure the names are different for your vacuum and mop entities

connection refused typically means its no in the right mode, make sure are setting into pairing mode as notes here

are you using the seperate j7 image? it uses a different cipher

yes this integration still works, i have an i7+. the only thing outstanding is the live maps which was removed by irobot.

i have seen {} in the past when there is an existing connection to the robot, such as having the app open or the native vacuum controller etc - something that is using the service when rest980 tries to connect. also can try restarting the rest980 container sometimes fixes it, or even reboot your robot first, etc.

if you take the vacuum schedule automation found here and update the trigger for your contact sensor and remove/update the conditions - this should achieve what you want

same advise as above

1 Like

Hi, thanks for responding, I’ve checked and the Roomba app is not open, and a restart does not seem to fix it either…

Reminder, it presents the following via the ip:3000,

{"documentation":"https://github.com/koalazak/rest980","pong":"2022-09-30T08:03:17.269Z"}

but if I try any other API call, e.g 192.168.1.111:3000/api/local/info/state, i still just get an empty response, the console still shows, which seems positive if 200 is a success code ?

GET 200 0.540 ms - 89
GET /api/local/info/state 200 101.331 ms - 2
GET 200 0.541 ms - 89

Update, tried a couple of other commands, and noticed the following, which suggests connectivity on local, and maybe an issue with the BLID and Password, but i checked those details via the following and it’s correct…

docker run -it node sh -c "npm install -g dorita980 && get-roomba-password-cloud [email protected] PASSword"?

Here’s some extracts from the console logs…

WARNING: NODE_ENV value of 'production' did not match any deployment config file names.
WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
GET / 200 10.738 ms - 89
GET / 200 3.806 ms - 89
GET /favicon.ico 304 2.795 ms - -
GET / 200 1.498 ms - 89
GET /api/local/info/state 304 104.809 ms - -
GET / 200 1.008 ms - 89
GET /api/cloud/info/state 404 3.472 ms - 136
Error: Endpoint not found.
    at /usr/src/app/app.js:62: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 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 /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)
GET / 200 0.534 ms - 89 

This command is the preferences GET

GET /api/local/info/preferences 404 1.400 ms - 136
Error: Endpoint not found.
    at /usr/src/app/app.js:62: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 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 /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)
GET /api/cloud/info/preferences 404 0.739 ms - 136
Error: Endpoint not found.
    at /usr/src/app/app.js:62: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 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 /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)
GET / 200 1.181 ms - 89

Amazing, that’s just what I needed. Thanks so much :slight_smile:

Greetings everyone…

So I have a few issues…

I’ve got the docker container running and I can pull data (via the /api/local/info/state command) from the Roomba… (J7+) which is supposedly valid using the J7 docker image)… but its not creating the sensor.vacuum entry in home assistant. (which means I can’t get any card to work). But we are able to pull back some details on it… (interesting using v22 of the firmware rather than v2 or v3)

image

Also when going to the /map string, no map seems to be generated…

As I said, when checking in HA, the only sensors present are the ones for the docker container itself and not the vacuum.

Any ideas?

Hi, Thanks for your job.
I’ve installed your add-on rest980 directly on HA from the custom repository.
But after the installation, the add-on doesn’t run

The only thing in the log is :
[email protected] start /usr/src/app

node ./bin/www

I’ve configure the BILD, password etc.

For information, that the firmware for my roomba i7+
Robot “Le renifleur” (sku: i755840 SoftwareVer: lewis+22.29.3+2022-08-23-eb90240ea48+Firmware-Build+1832)

do you have any idea to run it correctly ?

Thank you

I’ve reinstalled the add-ons, and now i’ve this error.

[email protected] start /usr/src/app
node ./bin/www
/usr/src/app/node_modules/dorita980/lib/v2/cloud.js:7
throw new Error(‘Not implemented.’);
^
Error: Not implemented.
at dorita980 (/usr/src/app/node_modules/dorita980/lib/v2/cloud.js:7:9)
at new cloud (/usr/src/app/node_modules/dorita980/index.js:12:10)
at /usr/src/app/routes/api.js:33:46
at handleIP (/usr/src/app/routes/api.js:26:68)
at Object. (/usr/src/app/routes/api.js:27:1)
at Module._compile (module.js:577:32)
at Object.Module._extensions…js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object. (/usr/src/app/app.js:11:16)
at Module._compile (module.js:577:32)
at Object.Module._extensions…js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object. (/usr/src/app/bin/www:7:11)
at Module._compile (module.js:577:32)
npm ERR! Linux 5.15.72
npm ERR! argv “/usr/local/bin/node” “/usr/local/bin/npm” “start”
npm ERR! node v6.17.1
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script ‘node ./bin/www’.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rest980 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs rest980
npm ERR! Or if that isn’t available, you can get their info via:
npm ERR! npm owner ls rest980
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /usr/src/app/npm-debug.log

yes this integration still works, i have an i7+. the only thing outstanding is the live maps which was removed by irobot.

So do I understand clearly that the projected clean map isn’t working any longer?

the cloud endpoints arent exposed in rest980 - as replied in the GH Issue, try removing the cloud and keep alive envs and see if this brings it to life

unfortunately this add-on is not nice and fancy - you need to create this yourself using the steps outlined on the GH repository.

as noted in this thread, mapping coordinates have been removed from the api by iRobot. only Ahtohallan knows if it will be returned someday :smiley:

you need to follow the steps in the GH repository to manually configure the required sensors and automations.

you need to set the cloud ENV to off, as this isnt implemented in rest980

that is correct.

Trying to get this nice integration to work, however I don’t get info on visiting:
http://:/api/local/info/state

The LOG of rest980 also is pretty empty.

Hi Syrius,

Do you know if I can do something similar with an i4 on bassin or I bought the wrong one ?

Thanks

What commands do the buttons in the graphic issue?

I’m trying to automate the start and docking functions to a pico remote and am at a loss

Hello @Syrius ,
I have almost configure everything. I have something to solve with the map but I want to try a little bit by myself before asking support.

I want to ask something differente: can you give support on how can I start to clean a specific room (or two or three of them) by pressing a button outside your beatiful custom card? I think is’ something related to call the service automation trigger that start “automation.vacuum_clean_rooms” but I don’t know how to modify the code to change the input from dynamic rooms selection to a static one (a specific room).

I tried my best to explain what is my goal, hope to understand, if not I will try tyo explain better.
PS: already look at the FAQ and other spots but find nothing helpful to reach the goal.

Thank You!

Hello, I cannot display the plot of the roomba, the Vacuum Log Position automation does not start. In the sensor.vacuum, Location is n-a