From ad5b7f46275f65abc5969d56c39c42900be86251 Mon Sep 17 00:00:00 2001
From: Paulo Ruberto
Date: Sat, 6 Dec 2025 10:31:56 -0500
Subject: [PATCH] feat: add mappings for cleaning fluid states
---
roborock/data/v1/v1_code_mappings.py | 7 +++++++
roborock/data/v1/v1_containers.py | 8 ++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/roborock/data/v1/v1_code_mappings.py b/roborock/data/v1/v1_code_mappings.py
index 7cc1ad75..2bc42481 100644
--- a/roborock/data/v1/v1_code_mappings.py
+++ b/roborock/data/v1/v1_code_mappings.py
@@ -123,6 +123,13 @@ class DustBagStatus(RoborockDssCodes):
full = 34
+class CleanFluidStatus(RoborockDssCodes):
+ """Status of the cleaning fluid container."""
+
+ empty_not_installed = 1
+ okay = 2
+
+
class RoborockErrorCode(RoborockEnum):
none = 0
lidar_blocked = 1
diff --git a/roborock/data/v1/v1_containers.py b/roborock/data/v1/v1_containers.py
index cde3d2f0..7d397543 100644
--- a/roborock/data/v1/v1_containers.py
+++ b/roborock/data/v1/v1_containers.py
@@ -39,6 +39,7 @@
from ..containers import RoborockBase, RoborockBaseTimer, _attr_repr
from .v1_code_mappings import (
+ CleanFluidStatus,
ClearWaterBoxStatus,
DirtyWaterBoxStatus,
DustBagStatus,
@@ -229,9 +230,12 @@ def water_box_filter_status(self) -> int | None:
return None
@property
- def clean_fluid_status(self) -> int | None:
+ def clean_fluid_status(self) -> CleanFluidStatus | None:
if self.dss:
- return (self.dss >> 10) & 3
+ value = (self.dss >> 10) & 3
+ if value == 0:
+ return None # Feature not supported by this device
+ return CleanFluidStatus(value)
return None
@property