The thought process behind wagnertrilobytes.com
October 27, 2025While designing the Trilobytes website, many design ideas had to be incorporated and accounted for....
Read PostWhile designing the Trilobytes website, many design ideas had to be incorporated and accounted for....
Read PostHow I ended up from simply making an HTTP interface to reverse engineering the local firmware of the...
Read PostHow I ended up from simply making an HTTP interface to reverse engineering the local firmware of the robot.
iRobot's robot vacuum cleaner (the Roomba) lacks greater support in Home Assistant. Currently, it can start/stop/pause/dock, standard features, but few entities are exposed and I missed one major feature the Roomba advertises: selective room cleaning.
There does exist ha-rest980-roomba by jeremywillans, but I find it also lacks: it doesn't natively integrate with HA through its system; it uses the YAML configuration method.
Home Assistant (abbrev. HA) is an open source home automation platform that integrates many popular smart devices and offers an open platform to create your own integrations to add custom devices.
First, we need to research the Roomba and it's inner workings a little bit. Under the hood, many programs use dorita980 to communicate with the iRobot, so I started there.
dorita980 is the library that communicates/'controls' with the Roomba through MQTT.
rest980 converts HTTP requests (like those of /api/status/...) to dorita980 commands, and repeats the output back.
jeremywillans' integration was a heavy inspiration. Infact, I even attempted to retain as much of the functionality as if you were to just migrate from the YAML configuration to this integration.
I had never created an integration before, so I took to the HA Developer documentation and cloned the main repository.
After this, I worked on scaffolding an empty project.
I mainly used the documentation to learn how to add entities.
I created a DataUpdateCoordinator to facilitate grabbing the information locally.
Finally, the source for the roomba_rest980 integration is on GitHub. Try it out!
Go Back