roborock.devices.traits.v1.status

 1from typing import Self
 2
 3from roborock.data import HomeDataProduct, ModelStatus, S7MaxVStatus, Status
 4from roborock.devices.traits.v1 import common
 5from roborock.roborock_typing import RoborockCommand
 6
 7
 8class StatusTrait(Status, common.V1TraitMixin):
 9    """Trait for managing the status of Roborock devices."""
10
11    command = RoborockCommand.GET_STATUS
12
13    def __init__(self, product_info: HomeDataProduct) -> None:
14        """Initialize the StatusTrait."""
15        self._product_info = product_info
16
17    def _parse_response(self, response: common.V1ResponseData) -> Self:
18        """Parse the response from the device into a CleanSummary."""
19        status_type: type[Status] = ModelStatus.get(self._product_info.model, S7MaxVStatus)
20        if isinstance(response, list):
21            response = response[0]
22        if isinstance(response, dict):
23            return status_type.from_dict(response)
24        raise ValueError(f"Unexpected status format: {response!r}")
 9class StatusTrait(Status, common.V1TraitMixin):
10    """Trait for managing the status of Roborock devices."""
11
12    command = RoborockCommand.GET_STATUS
13
14    def __init__(self, product_info: HomeDataProduct) -> None:
15        """Initialize the StatusTrait."""
16        self._product_info = product_info
17
18    def _parse_response(self, response: common.V1ResponseData) -> Self:
19        """Parse the response from the device into a CleanSummary."""
20        status_type: type[Status] = ModelStatus.get(self._product_info.model, S7MaxVStatus)
21        if isinstance(response, list):
22            response = response[0]
23        if isinstance(response, dict):
24            return status_type.from_dict(response)
25        raise ValueError(f"Unexpected status format: {response!r}")

Trait for managing the status of Roborock devices.

StatusTrait(product_info: roborock.data.containers.HomeDataProduct)
14    def __init__(self, product_info: HomeDataProduct) -> None:
15        """Initialize the StatusTrait."""
16        self._product_info = product_info

Initialize the StatusTrait.

command = <RoborockCommand.GET_STATUS: 'get_status'>