Roomba — don't run when the TV is on?

I’d like my Roomba to not run while we happen to be watching TV. I have the Roomba integration configured, but not actually doing anything — all of the automation is through the app. (I also have the TV configured in HA.)

I can easily see how I’d do this if I were launching the Roomba’s cleaning cycle through Home Assistant. But since that seems like kind of a pain (Add support for irobot roomba clean specific room)… I’d prefer not to.

Is there a way to put the Roomba in a “dormant” mode via HA? I’d want it to:

  1. pause cleaning if the TV turns on while the cleaning run is active, and
  2. not start if the TV is on at the scheduled time.
  3. Bonus: resume cleaning if the TV turns off within some reasonable time window.

I think the first part should be easy — trigger on the TV turning on, and send the pause (or possibly return to dock) command.

But how would I do the second one — keep the Roomba from starting its regularly-scheduled cleaning when the TV is on?

The third also seems a bit tricky, as I’d only want to resume if the Roomba was cleaning when the TV went on — I wouldn’t want it to start every time the TV goes off!

Some quick ideas: First one should be quite easy as you say. Second one you could trigger a docking command if the vacuum changes to cleaning while the TV is on. It would take a few seconds I guess, but probably the easiest way to do it unless you integrate the cleaning schedules into HA instead of using the native app. Third part you could solve with “choose” and some trigger IDs perhaps?

Ooh, yeah — basically, if it starts, send a “actually, nope!” command. That should do it!

I am a little reluctant to go all-in on having HA schedule the runs because I’ve got a fairly complicated map and it seems like a lot of work. But maybe I should just bite that bullet.