Skip to content

Q7: service.start_station_act is accepted, but no value starts a manual empty #982

Open

Description

@aidanlloydtucker

I tried to find a manual dock empty for my Q7 M5+, since #919 left it open.

Device: Roborock Q7 M5+, roborock.vacuum.sc05, firmware 03.01.80.

These did nothing:

service.start_station_act

The Q7 app plugin does not call this method. I found it in a protocol write-up for the Dyson Spot+Scrub Ai, which uses the same service.* commands: https://github.com/ArmandDelessert/dyson-spot-scrub-windows/blob/00682cac611c5b7f26ca823951d1943da0f1f679/docs/protocole.md. On that robot, {"ctrl_value": 1, "station_act": 3} starts the empty.

I sent each request with python-roborock 7.12.0 on a second MQTT session. For every test the robot was docked and charging (status: 4, charge_state: 1). DND was not active, child lock was off, and auto-empty was on. I read station_act and dust_action with prop.get every 5 seconds for 45 to 95 seconds. I also listened for the dock.

Params Reply What happened
{"ctrl_value": 1, "station_act": 3}, mop mount removed {"result": 0} Fault 522 (mop not installed). The robot said the mop mount was missing. No empty.
{"ctrl_value": 1, "station_act": 3}, mop mount on {"result": 0} Nothing
Same, after a 6 min clean and after an 11 min clean. Both docked during DND, so no auto-empty ran. {"result": 0} Nothing
station_act 1, 2, and 4 {"result": 0} Nothing
station_act 5 B01 error code 1 Nothing
{"ctrl_value": 2, "station_act": 3} and {"ctrl_value": 1, "station_act": 3, "dust_action": 1} {"result": 0} Nothing

So the firmware has a handler for this method, but I could not get it to run the dust collection.

Other notes

  • On my Q7 the app shows dust_frequency: 15 as "Frequent, 15 min". The set_dust_collection_frequency docstring calls it cleans per emptying.
  • record_dust_num in the clean records looks like the number of empties. The 11 min clean that docked during DND recorded 0. My older cleans of 10 min or more recorded 1 or more.
  • roborock-q7-diagnostics lists CMD_MCU_DUST_COLLECT = 0x90 on the factory port 6001. I have not tried factory mode.

Does anyone know which request starts a manual empty on the Q7, or how the Q7 numbers station_act in a request?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions