Skip to content
Home Assistant TestFlight
Security & safety

Roomba (Rest980)

ia74/roomba_rest980 · vv1.19.2

HACSLocal polling

An open source software reverse engineering project meant to decouple Roomba (i7, j7+, etc.) and other iRobot products from the cloud and easily integrate with Home Assistant. Jailbreak coming soon!

In Apple Home through HomeKit Bridge

What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.

EntityShows up asNote
cameraCameraNeeds its own HomeKit Bridge in accessory mode
sensorSensor (temperature, humidity, air quality…)
vacuumVacuum (as a switch)
buttonButton (as a switch)
selectMode picker (as switches)

What people report

Local Roomba control via rest980; cloud matching for some models like the J9+ was fixed, and multi-robot accounts had button issues.

  • Works1
  • Partly works1
DeviceIn Home AssistantIn Apple HomeWhat they saidSource
iRobot Roomba Combo J9+Works LocalCloud SKU matching fixed for mismatched SKU
Saved copy
Summary - Fix cloud robot matching that fails on some models (e.g. Roomba Combo J9+) where the local SKU differs from the cloud SKU - Replace strict equality check with a scoring system that handles SKU, software version format, and case mismatches ## Problem The `_async_match_blid` function matches local and cloud robots using an exact comparison of SKU, software version, and name. On some models like the Roomba Combo J9+: - Local SKU is `c975840` (serial number prefix), cloud SKU is `C910840` (product SKU), different values - Local softwareVer is `topaz+1.12.11+2025-04-30-...`, cloud …

Excerpt saved from GitHub on 2026-10-23.

PR #47 · 2026-06
Multiple Roombas on one iRobot accountPartly worksFavorite buttons created for every robot and send to wrong robot
Saved copy
Related to #17 (multiple robots on one account). ### What happens Favorites are account-wide in the iRobot cloud, and `button.py` creates a `FavoriteButton` for every favorite on every robot's config entry. The button then sends the favorite's `commanddefs[0]` to *its own entry's* `base_url`: [code] So with two robots, each robot's device gets buttons for the other robot's favorites, and pressing one sends the other robot's command (including its `pmap_id` / `regions`) to the wrong robot. ### Setup - Roomba i7 (`i715840`) + Braava jet m6 (`m613840`) on one iRobot account - Two …

Excerpt saved from GitHub on 2026-10-23.

Issue #60 · 2026-10

Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.

How it connects

Local polling

Talks to the device on your network, asking it for updates every so often.

Found automatically over

  • DHCP
  • Bonjour (zeroconf)

Details

Installs (analytics)177 (0.02%)
GitHub stars61
Latest versionv1.19.2 (2026-10-06)
Set up in the UIYes
Maintainers@ia74
LicenseGPL-3.0

In ReReHome

Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.

Bridges get their own settings page listing the accessories behind them.