Skip to content
Home Assistant TestFlight
Appliances & cleaning

Roomba+

johnnyh1975/ha_roomba_plus · vv4.4.4

HACSLocal push

Platinum-quality Home Assistant custom integration for iRobot Roomba & Braava, local MQTT, no cloud required, 100+ entities

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
switchSwitch or outlet
binary_sensorSensor (motion, contact, leak, smoke…)
sensorSensor (temperature, humidity, air quality…)
vacuumVacuum (as a switch)
buttonButton (as a switch)
selectMode picker (as switches)
device_trackerPresence (as an occupancy sensor)

What people report

Roomba+ controls 600, 900, i, s, j series and Braava locally over MQTT; newer V4/Prime robots go through the iRobot cloud. Local-only i3+ users hit a region-id bug that was fixed in 4.0.0b1.

  • Works6
  • Partly works2
DeviceIn Home AssistantIn Apple HomeWhat they saidSource
iRobot BraavaWorks LocalListed as supported, with mop pad wetness and tank status
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba 900 seriesWorks LocalSupported with VSLAM maps; room shapes follow coverage, not walls
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba i-seriesWorks LocalListed as supported
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba i3+Works LocalLocal MQTT works; region-name bug fixed in v4.0.0b1; region cleans only start from dock
Saved copy
Environment: Roomba i3+ (SKU i355020), firmware `daredevil+2.6.0`, local MQTT only. Summary: Valid `region_id` values can be discovered locally by probing: send a single-region `start` (documented cleanRoom payload) with a candidate id while the robot is docked. A valid id launches a mission (`cycle=clean` within seconds); an invalid id is a complete silent no-op (accepted into `lastCommand`, no state change, no error). Recall the launch immediately and move to the next candidate. Data (2026-08-27, one sweep of ids "0"–"9"): - Valid: `0`, `3`, `5`, `8`, each opened a real mission within ~10 …

Excerpt saved from GitHub on 2026-10-23.

Issue #107 · 2026-08
iRobot Roomba j-seriesWorks LocalListed as supported
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba s-seriesWorks LocalListed as supported
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba 600 seriesPartly works LocalShould work via same local MQTT protocol but untested in the field
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README
iRobot Roomba V4/PrimePartly works CloudSupported via iRobot cloud; only child lock setting verified physically
Saved copy
Supported devices: Series; 600 (Bump & run); 900 (VSLAM); i-series; s-series; j-series; Braava; V4/Prime (v4.0.0); Capability; Live cleaning map & path; Clean by room name; Cloud room names, favourites, history; Presence-aware scheduling & demand cleaning; Room rhythms, overdue-room cleaning, mission maps (v3.3.0); Dirt ↔ sensor correlation (v3.3.0); Maintenance reminders (filter/brush/battery); Mop control (pad wetness, tank status); Cleaning schedule as HA calendar (v3.4.0); Maintenance tasks as HA to-do list (v3.4.0);, incl. "unnamed zones" reminder (v3.4.0, SMART only); Do Not Disturb, …

Excerpt saved from the README on 2026-10-23.

README

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 push

Talks to the device on your network, and the device tells Home Assistant the moment something changes.

Found automatically over

  • DHCP
  • Bonjour (zeroconf)

Details

Installs (analytics)356 (0.05%)
GitHub stars55
Latest versionv4.4.4 (2026-10-23)
Set up in the UIYes
Maintainers@johnnyh1975
LicenseMIT

Devices listed in its README

  • Series
  • 600 (Bump & run)
  • 900 (VSLAM)
  • i-series
  • s-series
  • j-series
  • Braava
  • V4/Prime (v4.0.0)
  • Capability
  • Live cleaning map & path
  • Clean by room name
  • Cloud room names, favourites, history
  • Presence-aware scheduling & demand cleaning
  • Room rhythms, overdue-room cleaning, mission maps (v3.3.0)
  • Dirt ↔ sensor correlation (v3.3.0)
  • Maintenance reminders (filter/brush/battery)
  • Mop control (pad wetness, tank status)
  • Cleaning schedule as HA calendar (v3.4.0)
  • Maintenance tasks as HA to-do list (v3.4.0)
  • , incl. "unnamed zones" reminder (v3.4.0, SMART only)
  • Do Not Disturb, start-blocked reasons
  • Local connection (works without internet)

Limitations from the README

  • Room shapes on 900-series follow coverage, not walls, a room is built from where the robot drove, so furniture leaves holes, edges stop about one robot radius short of the wall, and boundaries land at narrow points in the coverage rather than at doorways. More missions settle the room count; they do not change the …
  • 600-series is untested, should work (same local MQTT protocol), but no field confirmation yet. See the capability matrix above for what it does and doesn't support by design.
  • Stuck-hotspot detection on lewis firmware is structurally wired up but not field-confirmed, the coverage heatmap and layout-change detection this same release adds for lewis firmware do work; whether the cloud data actually populates for a genuine stuck incident on this specific firmware is still an open question. …
  • No voice commands ("clean the kitchen", etc.), evaluated for this release and dropped, not delayed: there's currently no supported way for a third-party integration to ship Assist voice sentences that work without you creating a file yourself. See Release notes →.
  • No "time to retrain your Smart Map" reminder, considered for the new to-do list, dropped: no existing signal was reliable enough at the right granularity (the closest one fires per-furniture-item, not map-wide). See Release notes →.
  • V4/Prime settings: only child lock is verified physically, eco charging, two-pass cleaning
  • V4/Prime + Classic robots on the same Home Assistant instance simultaneously, each is independently confirmed working, but running both types at once hasn't been specifically tested.

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.