About
Roomba+ is an integration for iRobot Roomba and Braava robots that talks to them over local MQTT. It works without a cloud account, and iRobot cloud credentials are optional, used for map sync and analytics. It adds vacuum, sensor, button, switch, select, image, calendar, event and to-do list entities, covering maintenance, mission history and room maps. Cleaning can be held while tracked people are home, started automatically when the floor is dirtier than usual, or blocked by chosen binary sensors such as a door contact. Actions include cleaning named rooms or zones, starting a sequence from one robot to the next, and creating or restoring backups. Robots using the newer V4/Prime protocol do not support local control. Setup is done in the UI, either with an iRobot account or by entering the robot's address.
Automatic summary of the README and code of johnnyh1975/ha_roomba_plus. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Works locally Talks to your devices on your own network. No vendor cloud in between.
Found by itself Home Assistant spots it on the network and offers to add it.
Device triggers Its devices can start automations directly.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Vacuums
- Switches
- Sensors
- Presence
- Calendars
Setting it up
Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.
Add Roomba+
- Select robotThe robot to set up. Setting up with your iRobot account is recommended: it works for every robot, finds all robots on the account and needs no button press. A robot that connects locally still needs its address on your network: it is searched for, and asked for if it cannot be found. Robots found on your network are listed too; choose manual entry if yours is missing.
Manual setup
- IP addressLocal IP address of your Roomba
Enter password
- PasswordThe robot's local password. It is read automatically while you hold the HOME button; enter it here only if that failed.
iRobot cloud credentials (optional)
- iRobot emailThe email address used to log into the iRobot app.
- iRobot passwordYour iRobot app password.
Also asked when at the sign in with your irobot account step.
Choose a robot
- RobotThe robot from your iRobot account to add. Each robot becomes its own entry.
Reconnect to iRobot cloud
- iRobot emailThe email address used to log into the iRobot app.
- iRobot passwordYour current iRobot app password.
Change the connection
- IP addressThe local IP address of the Roomba.
- PasswordThe robot's local password. Leave empty to take it from your iRobot account (robots set up with an account).
After setup
- Enable live mapEnable the live cleaning map for robots with position sensing (Roomba 900, i, s, j, Braava m).
- Ask the robot for its positionOnly offered for robots that do not report their position on their own. Asks the robot about once a second while it cleans, to draw the cleaning path live. Off: the map shows the last finished mission from the iRobot cloud instead, if cloud access is set up.
- Align the path with the roomsOnly with the option above. Turns the cleaning path against the floor plan until it lies on its rooms. Room tracking uses the same turned positions, so a wrong angle also names the wrong room. Not the same as “Rotate the map picture”, which turns the whole picture and never moves the path against the rooms. Automatic starts from the turn of the map the robot saved, including one set in the iRobot app, and changes to the angle that puts the robot’s path in the rooms once a run has shown it clearly; the path already drawn turns with it. If the path still runs through walls or beside its rooms, set an angle: the path already drawn turns as soon as you save.
- Map size (pixels)Map canvas size in pixels (400–1200). Default: 600.
- Scale (mm/pixel)Millimetres per pixel (5–30). Default 10 = 6 m × 6 m at 600 px.
- Floor label (e.g. Ground Floor)Free text, for example Ground Floor. Groups robots in the fleet view.
- Correlate dirt with sensors (optional)Sensors such as humidity or pollen. After 30 missions Roomba+ reports whether the robot collects more dirt when they are high. Calculated locally.
- Draw room names on the map imageWrites each room's name onto the map image.
- Create a button for each saved favoriteOne button for each favourite saved in the iRobot app. On a busy account that is a lot of buttons.
- Show cleaning schedules as a calendarShows the robot's cleaning schedules as a calendar.
- Draw clean zonesOutlines the clean zones on the map image.
- Draw keep-out zonesOutlines the keep-out zones on the map image.
- Draw no-mop zonesOutlines the no-mop zones on the map image.
- Separate sensor per room and zoneCreates a separate sensor for every room and zone.
- Rotate the map pictureTurns every map picture clockwise as a whole, rooms and path together, for example to match the iRobot app. It never moves the path against the rooms; for that, use “Align the path with the rooms”. The map has no north: its top is the way the robot faced when it left the dock, so it depends on how the dock stands.
- Region IDs (comma-separated)Example: 5, 12, 7
- Zone name assignmentsOne entry per line: 21=Corridor, 22=Kitchen, etc.
- iRobot emailThe email address of your iRobot app account. Leave both fields empty to turn cloud features off.
- iRobot passwordThe password of your iRobot app account.
- Blocking sensorsBinary sensors that block a start when ON (e.g. door open, motion detected).
- Behavior when blockedAbort immediately or queue the start until sensors clear.
- Queue timeout (minutes)How long to wait for sensors to clear before giving up.
- Zone to editThe zone to rename or hide. Submit without a zone to save your changes.
- Display nameCustom name shown in selectors. Leave blank to use the default name.
- Hide this zoneHidden zones are removed from selectors and will not trigger naming repair issues.
- Enable presence-aware schedulingHolds cleaning schedules while someone is home and releases them once everyone has left.
- Tracked personsThe people whose presence counts.
- Mode“Unfreeze when all away” releases schedules automatically; “Fire event (manual control)” leaves the decision to your own automation.
- Delay after leaving (minutes)How long everyone must be gone before schedules are released.
- Delay before second robot startAn extra wait after the away delay before cleaning actually starts.
- Enable demand cleaningStarts a clean automatically when the floor is noticeably dirtier than usual.
- Trigger multiplier (e.g. 1.5 = 50% above average)How far above the usual dirt level triggers a clean: 1.5 means 50% above average.
Texts from the code of johnnyh1975/ha_roomba_plus.
Entities
- Binary sensorsBin full, Connected, Bin present, Mop problem, Robot water tank, Dock error, Mop lid open, Smart Map saving, Maintenance due, Start blocked, and 11 more
- ButtonsAction – Empty bin, Action – Find robot, Maintenance – Confirm filter replacement, Maintenance – Confirm brush replacement, Maintenance – Confirm battery replacement, Clean zone, Repeat last mission, Skip current room, Clean zone (Smart Map), Spot clean (experimental), and 20 more
- CalendarsSchedule, Maintenance
- PresencePosition
- EventsMission completed, Room completed, Stuck, Maintenance
- ImagesCleaning path, Coverage heatmap, Room map, Live cleaning map, Raw live map
- SelectsSetting – Cleaning passes, Select zone, Select Smart Map zone, Select zone (cloud), Disposable pad wetness, Reusable pad wetness, Carpet boost, Suction level, Map, and 9 more
- SensorsMaintenance – Battery cycles, Missions – Total time, Missions – Avg. duration, Missions total, Missions successful, Missions canceled, Missions failed, Lifetime cleaned area, Missions – Last, and 139 more
- SwitchesSetting – Edge cleaning, Setting – Always finish, Setting – Schedule hold, Setting – Child lock, Setting – Eco charge, Setting – Gentle mode, Setting – Carpet boost, Child lock, Eco charging, and 6 more
- To-do listsMaintenance
Actions
- Clean roomStart a targeted clean of one or more named rooms on smart-map robots.Fields: Room name, Ordered sequence
- Reset filterRecord the current time as the filter replacement date.
- Reset brushesRecord the current time as the brush replacement date.
- Reset batteryRecord the current time as the battery replacement date.
- Reset cleaning padRecord the current time as the pad replacement date (Braava only).
- Smart startStart a clean with blocking-sensor checks.
- Start sequence cleanStart robot B when robot A completes its current mission. The listener fires once and removes itself automatically.Fields: Trigger robot, Target robot, Require completion, Delay (minutes)
- Create backupExport every persisted store for this robot into a single ZIP file.
- Restore backupRestore every store in a backup ZIP. Takes effect immediately, no restart required.
- Set quiet hoursWrite the household's Do Not Disturb window.Fields: Start, End, Quiet until
- Clean zoneSend the robot to one or more clean zones on demand, by name (as the zone select shows it) or by numeric id. Classic and Prime robots alike.Fields: Zone name, Zone ID
- Mark maintenance doneMarks a maintenance entry as done: a part replaced or a care task carried out. On a Prime robot the reset goes to iRobot, as the app sends it.Fields: Entry, Action
- Snooze maintenance reminderNo reminder for a maintenance entry for a number of days.Fields: Entry, Days
- Forget learned maintenance intervalForgets the replacement interval learned from your own replacements, for one part or every part of a Classic robot. The current part's count stays.Fields: Entries
Troubleshooting
- DiagnosticsDownloads a diagnostics file to attach to a bug report.
- Repair noticesNotices it can show in Settings, Repairs:New rooms detected, Robot runtime counter may have reset, Possible battery or dock contact problem, Robot-detected obstacles in cloud map, Dock contact health issue detected, Robot MQTT connection lost during mission, Smart Map update appears stuck, Possible layout change detected, Favorite has multiple command steps, Two Roomba integrations installed
From the README
Roomba+ is a Platinum-quality Home Assistant custom integration for iRobot Roomba and Braava robots. It connects directly over local Wi-Fi MQTT — no cloud account required, no polling, no subscription — and exposes far more sensors, intelligence, and controls than the built-in HA integration.
Shows in Vulpo
Quick Toggle card, Robot Vacuum card, Button card, Select card, Apple Watch, Control Center, Vacuum Live Activity.Information
- Installs
- 377 sharing analytics
- GitHub stars
- 59
- Connection
- Works locally
- Upkeep
- Updated in the last 6 months
- Version
- v4.5.1,
- Category
- Appliances and cleaning, Cleaning
- Kind
- Marketplace integration
- Brand
- iRobot
- Needs
- Needs the Marketplace (HACS on 2026.10 and older)
- Domain
roomba_plus- Issues
- Report an issue









