Designing Freedeck's UI/UX
October 16, 2025This article is still being written! This article will explain my thought process behind Freedeck...
Read PostThis article is still being written! This article will explain my thought process behind Freedeck...
Read PostWhy and how I created a library for vanilla JS for use with the CSS grid. ## I: Freedeck / The Pr...
Read PostThis article is still being written!
How I ended up from simply making an HTTP interface to reverse engineering the local firmware of the robot requires an explanation.
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.
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.
Finally, the source for the roomba_rest980 integration is on GitHub. Try it out!
Go Back