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?
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.
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’
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.
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
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
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
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 !
Apologies as I am clearly out of my depth, I hope this hasn’t been answered already but its a pretty silly question.
I have installed the REST980 API so far as I can tell, I’ve had no issues with BLID and password. This is loaded via HACS through Home assistant running on a Raspberry Pi4. Once started the log says:
Essentially I have no idea what do do from here, do I need an MQTT server to control my Roomba i7+? Perhaps I just don’t understand the language in the guide but essentially I have no idea how to see the robot and then control it in Home assistant.
Looking for help, no coding experience mostly just familiar with HA interface.
I finally got this working to at least talk to my roomba but I don’t appear to have all the sensor elements broken out. I see a parent sensor.rest980 and I can see in the Developer Tools and all of the sub data (cleanMissonStatus, dock, etc.) but those sensors aren’t exposed to HA so that I can use them in a lovelace card. I’m using the Mosquitto MQTT add-on with the default settings (discovery prefix, etc.) and it’s running with other devices showing up in the MQTT list of devices except the roomba, is this normal?
Now next part is getting second instance of this working:
As of now I’ve:
Changed all instances of rest980 to rest980_2 in yaml file.
Created mop.yaml instead of vacuum.yaml under packages
Created mop directory (updated yaml entries correctly) instead of vacuum directory.
I would like to know:
Can I simply change every instance of vacuum to mop in mop.yaml ? (I’ve updated secrets.yaml with new entries and those are correctly updated in mop.yaml), However I’m not very sure about sensor.vacuum and such
That is correct behavior, that’s all the log says once app starts.
After that point you should be able to see state of vacuum at: http://<ip or fqdn of docker host>:<rest980port>/api/local/info/state