Report a sleeping Roborock Q7 job as paused (#180432)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Thomas Rupprecht
2026-08-29 14:18:06 +02:00
committed by GitHub
co-authored by Claude Opus 5
parent 325bc5f91f
commit 304788935a
2 changed files with 24 additions and 0 deletions
@@ -75,6 +75,9 @@ Q7_STATE_CODE_TO_STATE = {
WorkStatusMapping.SLEEPING: VacuumActivity.IDLE,
WorkStatusMapping.WAITING_FOR_ORDERS: VacuumActivity.IDLE,
WorkStatusMapping.PAUSED: VacuumActivity.PAUSED,
# An untouched pause falls asleep after ~10 minutes; the job is kept and
# resumes on the next start, so this is a pause rather than an idle state.
WorkStatusMapping.WORKING_SLEEP: VacuumActivity.PAUSED,
WorkStatusMapping.DOCKING: VacuumActivity.RETURNING,
WorkStatusMapping.CHARGING: VacuumActivity.DOCKED,
WorkStatusMapping.SWEEP_MOPING: VacuumActivity.CLEANING,
+21
View File
@@ -6,6 +6,7 @@ from unittest.mock import Mock, call
import pytest
from roborock import RoborockException
from roborock.data import WorkStatusMapping
from roborock.data.b01_q10.b01_q10_code_mappings import B01_Q10_DP, YXFanLevel
from roborock.roborock_typing import RoborockCommand
from syrupy.assertion import SnapshotAssertion
@@ -890,6 +891,26 @@ async def test_q7_activity_none_status(
assert vacuum.state == "unknown"
async def test_q7_working_sleep_is_paused(
hass: HomeAssistant,
setup_entry: MockConfigEntry,
fake_q7_vacuum: FakeDevice,
) -> None:
"""Test a cleaning job that fell asleep is reported as paused."""
assert fake_q7_vacuum.b01_q7_properties is not None
fake_q7_vacuum.b01_q7_properties._props_data.status = (
WorkStatusMapping.WORKING_SLEEP
)
coordinator = setup_entry.runtime_data.b01_q7[0]
await coordinator.async_refresh()
await hass.async_block_till_done()
vacuum = hass.states.get(Q7_ENTITY_ID)
assert vacuum
assert vacuum.state == "paused"
@pytest.fixture(name="q10_vacuum_api", autouse=False)
def fake_q10_vacuum_api_fixture(
fake_q10_vacuum: FakeDevice,