iRobot Roomba i7+ Configuration using Rest980

Tags: #<Tag:0x00007f77fc8f0838> #<Tag:0x00007f77fc8f0770>

@chansearrington - the map should update in realtime during the clean.

What do you get when you hit the url directly?

http://<ip/host of docker host>:<nginxphpport>/image.php

a bunch of weird code.

@chansearrington You need to adjust this variable

$vacuum_log = 'https://<ip or fqdn of docker host>:<nginxphpport>/vacuum.log';

with the proper ip/fqdn and port of where the nginx container is located

1 Like

In looking at the image.php file it looks like I need to edit this section:

$vacuum_log = 'https://<ip or fqdn of docker host>:<nginxphpport>/vacuum.log';
$overlay_image = 'floor.png';
$show_stuck_positions = true;
$map_width = 1050;
$map_height = 900;
$x_offset = 220;
$y_offset = 220;
$flip_vertical = false;
$flip_horizontal = false;
$ha_rest980 = 'https://<ip or fqdn of home assistant>:<haport>/api/states/sensor.rest980';
$ha_token = '<ha_long_live_token>';
$ha_timezone = 'Australia/Brisbane'; # Supported Timezones

I’m assuming I need to edit the whole section nad add things like a HA_token?

I didn’t notice this part in the setup docs


Yes you will - and you are correct, I didnt properly call this out in the docs - will amend now.

1 Like

Sweet!! looks like I’m in business!

Thanks for the quick response and help!

No worries - glad its working :smiley:

README has been updated to include this step - thanks for pointing it out @chansearrington !

1 Like

@chansearrington Make sure you update both image.php and image_dev.php

the dev version refreshes each time (without creating the seperate png files or loading the latest.png when its created) - helpful when you have done a full clean for working out the map size, offsets, flips and the overlay floor.png file :+1:

Great work!
Any chance this will do the job for older roombas (i.e. 980)?

The Rest980 part would work but most of the automations and map stuff that @Syrius did woulnd’t work as the 980 as far as I recall does not have persistant maps or room based cleaning. I’m not really sure if there is much benefit running this over the native roomba integration if you don’t have a room based cleaning model.

As @drjared88 said, some of it will be relevant for the 980 model. I know the selective room cleaning definatley wont work, but I think the mapping should actually work (as the code this uses was written for the 980 model :wink: )

I suggest you give it a shot and see?

some of the commands might need to be modified - refer here for specifics

I’m trying to install this for my Roomba 980. Native vacuum support from HA is working fine (I have already BLID and password).
Do I need to change something after installing php-nginix in (I’m using HA on RPI3 B+ device). Also what do i need to put under Network configuration in Rest 980 Docker image:
or I can leave it as it is - default one.
When I try connect to: host:3000/map
I only get error.
Also under logg in Rest980 Docker image I can see some warnings:


It should work on the default - what happens if you hit then URL directly (without /map) ?

Problem loading page
The connection has timed out

It seems like I haven’t configured everything correctly but I don’t know what I’m missing here…

You can try changing the port? Does the host have a local firewall?

Hmmm, maybe the issue is running the HA over duckdns so HA is available outside home. Now I’m trying to reach HA outside my home… This port 3000 isn’t forwarded correctly, I assumed.
In home LAN (or wifi) this should be OK

Sounds like a plan!

It’s been reported (higher in this thread) that the built in plugin does not play nice with rest980 so you might have to disable one of them - see how you go.

I have already disabled built in plugin - removed from my configuration.yaml file (i hope this is enough) before I have installed both of your plugins.

1 Like

Installed from your repo without a glitch.
Accessed hassioip:3000/map and got the maping interface up and running.
So no issue with a 980 and map generation.
Now for the the selective rooms - this would be asking too much, but lets see :slight_smile: