Command queueing for Roborock?

Hey Everyone!

I have a Roborock S7 Max Ultra that I have successfully hooked up to Home Assistant. I’ve placed some Zigbee buttons in various rooms and programmed them to tell the S7 to vacuum that room if pressed once, vacuum and mop if pressed twice, and cancel if long-pressed. This works great if I just do one room at a time, but I would like to walk from room to room and press each button to queue commands.

For example, I start in the mud room (the little room where we take our shoes off) and double-press to vacuum and mop that room. The S7 will immediately start to vacuum that room and will mop that room once the vacuum cycle is complete. While the S7 is vacuuming, I go into the kitchen and single press to vacuum, walk to the living room and single press, and then walk into the bedroom and single press. I then walk back to the kitchen, long press to cancel that room and then double-press to vacuum and mop. When I’m done button-mashing, the S7 should finish vacuuming the mud room, then proceed to vacuum the other rooms, and finally mop the mud room and kitchen in that order.

What would be a good approach to queue, replace, and reorder these commands within Home Assistant?

Thank you in advance for your help!!


As I know using roborock, currently have two of them, vacuum has to finish one task to start a new task. If you start a new task while task is running it will cancel running task.
I created scripts that are called by automation to start mop and vacuuming.
I have a presence sensor in the kitchen so ie. if kitchen is used for at least one hour daily, start daily automation for mop and vacuuming.