iRobot Roomba i7+ Configuration using Rest980

Sensors are not updating and looking at the Rest980 logs, I am seeing 200 responses. Let me list some of my troubleshooting steps for context.

  1. Looking at devloper/states …

  2. Looking at settings/devices I did have an error in the file integration, added the /config/vacuum/ to it, and got rid of the error. Before doing this the sensors were not updating, but the Lovelace card would show some things but not accurate. After the fix, it now shows unavailable.

  3. This may be more of a question. In the integration, the iRobot is showing up but I have not configured it. I read in the FAQ that it does not play nice with the Rest980, so since I have not configured it, is it an issue? How do I make sure it does not fight us?

Not sure what my next troubleshooting step is, a nudge in some direction would be appreciated. :slight_smile:

edited with more info __________________________________
I used a local browser and hit the state and the response was empty. While other commands, wireless, mission, etc timeout.

edited a second time with more info…
Just out of curiosity, I copied the password from the Rest980 to configure the intergreations and it seemed to work. Then I disabled it.

Thanks for this! I finally got my J9+ roomba in HA controllable!

1 Like

Im still running 2024.5… so havent hit this issue yet :see_no_evil:

unless you have a robot that still supports mapping, you can remove all references to the vacuum file as its not actually doing anything anymore.

good callout! thanks

running irobot and rest980 at the same time does not work. the robot only supports a single MQTT connection, so if you try then you will get you what are getting, which is just {} as a response

if you still have irobot disabled, try closing the app, and then restart rest980, potentially even a few times until you get data again.

The irobot was just to test the connection. It was rebooted several times. :slight_smile:

Not sure what all happened. Yesterday, 7/4, I deleted everything and reinstalled it and it started working.

I did take screenshots of all the configurations before I removed any of them. The only difference is the password, the BID was the same.
The only difference in the password is the last character. The old one was I and the new one is H. Does the Rest980 return a 200 response even if it can not connect or authenticate? Just strange.
Again, thank you for pulling this all together.

1 Like

@Syrius Something that I just learned in 24.6. They are creating a “notify” entities. They are “phasing in” certain notifications. The file is one that they have done. But not the companion apps, learned that one the hard way. Anyway, in the settings->update section, I got a migrate notify file to notify.send_message. The send_message does not support the data_template: all you have to do is change it to the data: Not sure how well all this is going to work, I will post a sample of my yaml and the reference link that I used for my “assumptions” :slight_smile:

More to the point …

  - alias: Vacuum Log Position
    id: Vacuum Log Position
    initial_state: true
        platform: state
        entity_id: sensor.vacuum_location
      condition: or
        - condition: state
          entity_id: sensor.vacuum
          state: 'Clean'
        - condition: state
          entity_id: sensor.vacuum
          state: 'Train'
      - service: notify.send_message
          entity_id: notify.vacuumfile
          message: "{{ states('sensor.vacuum_location') }}"

I am currently trying to configure the Roomba Addon.
I own an i7+ and a house with several floors. The setup instructions only deal with the brava and several floors. I want to use only the i7+ with several floors.
Can anyone help me here? I think the lovelace template has to be adjusted.
Do I add the other rooms on other floors just in the secrets/vacuum.yaml or is additional configuration needed.

Thanks in advance!

thanks for posting - my setup no longer as maps, so ill add these changes but probably comment out all the relevant sections for those to uncomment only if needed for the older models that still support this.

correct, I just added the braava with multiple floors as an example, you can quite easily replace the bravva reference with roomba for this to work just the same.

I can’t get the map or log working.
For the map, when pulling this: (3001 is the port for php-nginx)
up directly, I get this:
Warning : file_get_contents(): php_network_getaddresses: getaddrinfo for http failed: Name has no usable address in /config/vacuum/image.php on line 57.

vaccuum.log file is empty

I have ran a full clean room cycle successfully multiple times.

my image.php has this (i removed the long code for the token):


#$robot_log = ''; # Could also be HTTPS, or mop.log

$robot_log = ''; # Could also be HTTPS, or mop.log

$file_append = ''; # Allows differentiation of files for different floors or robots

$robot_type = 'roomba'; # Select between roomba and braava for different icons

$set_first_coordinate = 3; # Ability to skip initial coordinate(s) if incorrect data logged

$overlay_image = 'floor.png'; # Background Layer

$overlay_walls = false; # Allows overlaying of walls, used in fill mode to cover 'spray'

$walls_image = 'walls.png'; # Walls Image must contain transparent floor

$show_stuck_positions = true;

$line_thickness = 2; # Default 2, Set to ~60 for Fill Mode

$map_width = 1050; # Ensure overlay and wall images match this size

$map_height = 900; # Ensure overlay and wall images match this size

$x_offset = 220;

$y_offset = 220;

$flip_vertical = false;

$flip_horizontal = false;

$render_status_text = true;

$rotate_angle = 0; # Allows rotating of the robot lines

$x_scale=1.00; # Allows scaling of roomba x lines

$y_scale=1.00; # Allows scaling of roomba y lines

$ha_rest980 = ''; # sensor.rest980_2, if configured for Mop

$ha_token = '< long token code here, not the name of the token>';

$ha_timezone = 'America/Chicago'; # Supported Timezones

$ha_text_delimiter = " \n"; # How text is displayed on the map top " \n" --> New Line ## " |" --> Show on one line