iRobot Roomba (WiFi) Support

Hi @pnakashian, hi @gotschi,
you got the point! I solved the permission problem, thank you!

Unfortunately it seems my NGINX-PHP container is missing some functions:

PHP message: PHP "Fatal error: Uncaught Error: Call to undefined function imagecreatetruecolor(
) in /data/wwwroot/image.php:50

What would you suggest ?

Got it working using a different NGINX-PHP container.
I am now rescaling my default FLOOR image.

Thanks a lot!

Hi gotschi
I got the nuts and bolts of the setup done and working. Just wondering if you could give a few tips to tweak image.php to accommodate a large house, so I can see the vacuum lines always inside the camera view, the vacuum goes beyond the edges. Also I am not using your setup exactly with the same integration you are using with and haven’t done anything in php before but looking at split[2],split[1],split[0] is the format for location by any chance (y, x , theta), my 1st guess was (theta, x, y).


yes the first two digits are the coordinates and the third is theta,

you can also get this all to run in a < iframe > with a canvas and some js pulling the coordinates from the txt created by the automation, this way you don’t need a php/httpd container but I wanted to have them generated server side

Hey @gotschi,

Thanks for posting this - awesome work!

I took your original PHP file and moved all the custom user tweaks into variables at the top to make it easier for others to implement it and incorporated it into my GitHub repository for deploying rest980.

Cheers! :beers:

is there a way to this on a pi?

Check my thread here for a potential way using rest980 on a Pi

Depending on your model, and what you have working now, you might just need the php-nginx container to host the map file. :+1:

my model is s9+,
i installed both the php-nginx_armv7 and rest980_build, the nginx part went fine i think. i can go to and i see this:

none of the buttons work, i know the ip, blid and password are correct because i use the normal vacuum integration.

on the rest980_build addon i get this after build:

> [email protected] start /usr/src/app
> node ./bin/www
WARNING: NODE_ENV value of 'production' did not match any deployment config file names.

the only parameter i didn’t change is the firmware version.

@haimbilia - I havent tested this on an S9.

I suggest setting the firmware version to 2 (which is actually 2+) and checking the following URL

Also - I just collapsed the php-nginx_armv7 addon back into php-nginx. You may wish to refresh your addons and swap over to this one.

EDIT - Just reread your post

when accessing api/local/info/state i get:



> [email protected] start /usr/src/app
> node ./bin/www
WARNING: NODE_ENV value of 'production' did not match any deployment config file names.
GET /api/local/info/state 200 166.361 ms - 2
GET /api/local/info/state 304 114.796 ms - -
GET /api/local/info/state 304 106.242 ms - -
GET /api/local/info/state 304 103.137 ms - -
GET /api/local/info/state 304 104.417 ms - -
GET /api/local/info/state 304 102.919 ms - -

i changed the nginx to the new addon

I get the same result with incorrect credentials / ip for my robot.

Can you please double check they are correct and complete?

My password string appear similar to this :

i did a couple of restarts and it suddenly started working, my normal vacuum entity isn’t available anymore, is that normal?

Yeah that would do it - the roomba is pretty pedantic about its connections - so it is no doubt the culprit.

I find that even the official app can take a few seconds to connect - likely if rest980 is already obtaining the data at the particular time.

If it helps - you can completely switch over to using rest980 :wink:

yeah i think you are right so removing the integration will solve it completely.

1 Like


I’ve a question about a problem with the Roomba ( vacuum ) entity disapearing in HA.
I have the username and password of the Roomba.

Reading fora etc I see that this could be the issue of the connections only 1 allowed to the Roomba.

Is this also why this version posted will be beter?
Can you please assist me with some help?

Kind regards,


Hi @caro7372,

I created the below GitHub Repo as an alternative method than using the built in Roomba sensor.
Depending on your model - this provides the capability to use selective room cleaning directly from HA (and via automations)

Please have a look and reach out if you have any questions.



first of all thank you for answering my question.
I understand what you describe above but have myself a strange situation.
My Roomba 966 keeps disappearing; it gives with a restart of HA, entity not available.
Do you have any clue what can cause this?
Does the ha-rest980-roomba replace the vacuum.roomba as I have set it up now ( as I delete it myself ) and how will the connection be when the Roomba needs to have acces to the internet?

Maybe the questions look a little bit silly but I was almost giving up on getting te Roomba into HA.

Kind regards,


you should be able to check the home assistant log and it might give you some insight as to whats happening

yes it does, i had issues with the inbuilt roomba component which is why i put this solution together

rest980 is the addon which connects to your roomba on the local network, similar to how the existing roomba integration works.


many thanks for explaining it to me.
I’ll give it a try of this solves my problem.
I will let you know.



Hello guys,

I found one thing on the current implementation for the Live map.
To fill the location log (used to draw the map), we use a template sensor to query the location from the vaccum entity. But if you are cleaning big room and if you are cleaning regulary. The history of this template sensor will be hugh (around 60k state value for 10 days). It’s generating useless load on the DB and it can impact the performance. In my case, I had side effect when using the Card creation wizard of HA, the wizard include some card preview based on your existing entity. And unfortutunately it using with hugh entity as example for Histroy graph card and it make the UI freezing …

The fix was to clean the history via SQL (or to way the daily purge) and finally exclude this template sensor from the history and recorder component. There is no impact on the live map and the histroy isn’t generated at all for this device:

     - sensor.roomba_location

     - sensor.roomba_location

I hope it can help people using the Roomba Live map