iRobot Roomba i7+ Configuration using Rest980

Tags: #<Tag:0x00007f739c4b8b08> #<Tag:0x00007f739c4b8928>

Hey Everyone!

Firstly thanks for being an amazing Home Assistant community!

So much valuable information can be found in these forums, without this I don’t think this project would be possible/complete!

When I took ownership of my iRobot Roomba i7+, these built-in vacuum component didn’t work for me so I ventured to find another way of integrating this capability into HA :wink:

I personally still use the scheduling built into the iRobot App, however this configuration can be leveraged for performing spot cleaning and/or integrating into more advanced cleaning :slight_smile:

I have documented the steps used to get i7+ functionality up and running :slight_smile:

Please let me know your thoughts / any comments for improvement !!

This can also be installed on Hass.io deployments… including RPi! :open_mouth:

LATEST UPDATE

amd64-shieldarmv7-shield

Version 0.5 released! Check GH for details :smiley:

HA Configurations

Lovelace Roomba Card

HA Addons (formerly Hass.io Addons)

Lovelace Example

Credits

5 Likes

And from the subject line I though this was about a robot running a top-end intel processor… :slight_smile:

2 Likes

:laughing: yeah not quite! I’ve updated it to include Roomba :slight_smile:

Thanks Jeremy for making this available. I got it working with a few minor issues. In the lovelace script there is a section trying to execute a script named script.vacuum_clean_rooms this was not in the vacuum.yaml, I improvised took your automation.vacuum_clean_rooms and copied then changed it to a script named script.vacuum_clean_rooms

First time i restarted HA, the services rest_command.vacuum_action, rest_command.vacuum_clean did not get created, don’t know if I needed it, i put the url section for the rest_command.vacuum_action only in single quotes because of whitespaces in {{ command }}.

I haven’t quite mastered everything in HA, just wondering could vacuum.yaml be referenced in configuration.yaml? I didn’t find answers, so I cut pasted parts of vacuum.yaml into configuration, scripts, automation, groups yaml files.

enjoying the utility and the rest980 docker, if the roombai7 ever gets stuck somewhere in the house the experimental feature map url could be handy, for now you have to leave a computer running with chrome web page at this url though.

 http://<ip/fqdn of docker host>:<port>/map

Hopefully in the future res980 docker can also show the floor plans similar to the irobot app.

1 Like

Hi Pierre,

Thanks! Glad you were able to make use of it!

You are correct, this was a mistake and should be automation.vacuum_clean_rooms. I was originally going to use a script, but it worked directly using an automation so it wasn’t needed.

Strange, i didn’t need single quotes? but it cant hurt i suppose!

I am using the Packages feature in HA which allows you to group all the relevant bits into a single file!

Yeah I’ve been experimenting with this - however it seems for me to just disappear off the page! Its a works in progress :wink:

Cheers!
Jeremy

Hi Jeremy,
you might want to take a look at iRobot Roomba (WiFi) Support a user gotschi has posted a solution i’m trying to add to your setup. his scripts uses automation trigger to write (theta,x,y) to a log file. Another trigger executes curl command line every 10 seconds (i think it’s drawing next position). An index.php file setup as camera displaying vacuum progress.

I’ve added to the rest platform
- pose

to fetch the necessary data then produce location which I think resembles (theta, x, y) parenthesis included from Roomba status device

/Pierre

Hi @pnakashian ,

UPDATE - Fixed! See first post :smiley:

I was able to get the map working, however its not as responsive via rest980, even with an interval of 2 sec from the rest sensor, it is only getting updates at 4/6/8 second intervals from the Roomba resulting in not as useful maps.

This is an apparent clean of my apartment… which looks absolutely nothing like my apartment :confused:
image

Thank you for this write up! I was using the other integration method before but found it really quite useless since I couldn’t target individual rooms. I was going to try using the google assistant webserver route but that would only allow 1 specific room which still wouldn’t allow me to move my scheduled cleaning automations into Home Assistant.

With your method I was able to copy what you had exactly and then using node red I created my same schedules I had in the roomba app but added inteligence to it so instead of just starting at 9am, it waits until we leave the house and starts. This is what I have been wanting to do since day 1 however with the old integration I couldn’t just clean specific rooms on a particular day.

Thank you!

1 Like

Does anyone know how to get this running with Hassio?

@chansearrington - I did some investigating and I have found and verified a way to run the Rest980 image in Hass.io :slight_smile:

I have created a custom Hass.io Add-on Repo (you will need to add as a custom repository) which contains an add-on which will install this image.

In order to get the BLID/Password, refer here for help

1 Like

Wow… amazing!!! Trying it now! 2 quick questions.

  1. Am I right assuming that I need to add this git repo to the allowed repositories for the add-on store? THEN follow your instructions? I don’t currently see it in the add-on store.

  2. Do I need to/should I disable the regular Roomba/vaccum integration?

Also, as a side note, I had to restart Hassio before this would work.

Yeah you will need to add the github repo as a custom repository and it should come up.

Not sure on the regular one, I don’t use it so can’t confirm.

Before the add-on appeared or before it started working?

(Sorry I don’t use hass.io so just installed a basic copy for testing this out)

After I installed the add-on, I set up the config parameters and started the add-on…

It didn’t work…

I restarted home assistant and the add-on started automatically (as it should) and then it worked correctly and I was able to do the API call to get the rooms, etc.

Got it working!!!

1 Like

Glad it helps!

FYI - The official image on docker hub has been updated do you no longer need to build it manually :+1:

Hi @Syrius
yeah the php solution is work in progress. on my home, the vacuum even went outside the frame, so I couldn’t even see where it was. I was also wrong about the coordinates, theta is not the 1st coordinate, its the last. I don’t know php code, but when a php code similar to this becomes available in the future with some configuration options for windows size, I could install php server, and image.php related files inside the rest980 docker image with a few tweaks to the Dockerfile when building, the image.php would make localhost rest calls that would improve the performance. The http://rest980_local:3000/map url seems to have no issues in drawing the vacuum path, it might be because its local, or HA rest calls have some limitations on frequency of http gets.

in raspbian 10 I only had to install 4 packages “apt install apache2 php php-mbstring php-gd” to get php recognized, something like these 3 would go inside the Dockerfile.

FYI, I was also wrong about rest_command.vacuum_action URL needing single quotes, when invoking the rest command the single quotes were sent with it, and caused the rest980_local docker to throw some errors.

/Pierre

Hi @pnakashian,

Check the first post and associated GitHub repository!

I sorted out the x, y mismatch (thanks to your post on the other thread actually!) and was able to get maps working correctly :smiley:

I updated the PHP file and moved all the tweaks needed to variables at the top of the file so its a lot easier to get it up and running

Check it out and let me know your thoughts :+1:

Nice Work @Syrius!
unfortunately I only have the 966, at least people can make something out of the code

Just to be sure, a Raspberry 4 with 4 gigs of RAM and running the 64 bits version of Hassio won’t be compatible, right?