python-roborock 7.7.0__py3-none-any.whl → 7.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-roborock
3
- Version: 7.7.0
3
+ Version: 7.8.0
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Project-URL: Repository, https://github.com/python-roborock/python-roborock
6
6
  Project-URL: Documentation, https://python-roborock.readthedocs.io/
@@ -16,11 +16,11 @@ roborock/data/__init__.py,sha256=jSZHOrd-LfVN-TdBkjNW334ef99rGBz4-hPT_7KvoLs,278
16
16
  roborock/data/code_mappings.py,sha256=j-ZZRtQQdIMJQAgEwDAxWKreNhD6U36oIhBKr_nLbis,9783
17
17
  roborock/data/containers.py,sha256=ePz1tmhNY1QpgiVlyc8j6PH5kjU6fkZYtBByCFj2wzU,17896
18
18
  roborock/data/b01_q10/__init__.py,sha256=E4lwJcz4AI1z92FcYOJ-cY3fcfHSoXqvYVgfA-TgaRk,71
19
- roborock/data/b01_q10/b01_q10_code_mappings.py,sha256=UBFkxCWLYCGQatENmNwR0owkXrcB8AosnD-hICfS2AY,15203
19
+ roborock/data/b01_q10/b01_q10_code_mappings.py,sha256=yvpTaSBkaEBcpgE9JrURl_JCJrqWhG_WQkOUt3Ckf14,14727
20
20
  roborock/data/b01_q10/b01_q10_containers.py,sha256=SOubDoxjNfCd-8JHjZ4GQKqWObJeYm0ouiUvWpjPWcY,14199
21
21
  roborock/data/b01_q7/__init__.py,sha256=D-Cd8eB0njf1PQPM6Exl_9A0AhpzIjrL0hapGOCEkkA,69
22
- roborock/data/b01_q7/b01_q7_code_mappings.py,sha256=S2KiBIpkUniEnw0hSSLeLWHZMZvq4Ld6RXzbaXO43Zk,11274
23
- roborock/data/b01_q7/b01_q7_containers.py,sha256=h01GNZM-M4OAMBO3aqE0LHgvmsrirssMmjR3YWdZMqo,10421
22
+ roborock/data/b01_q7/b01_q7_code_mappings.py,sha256=OY5ShERmGh4hKp9SCUohYEbU6FgRJuw34ucYJpjnEiI,11615
23
+ roborock/data/b01_q7/b01_q7_containers.py,sha256=1PEPyKuaMsPXSOtUw8OQu6aSo5BBgQqMVnAE_rTvZ7w,10428
24
24
  roborock/data/dyad/__init__.py,sha256=Ksx7Ri1alsAYAyILOpj9iNbCC_6sF7xvETFRnTO4rdM,65
25
25
  roborock/data/dyad/dyad_code_mappings.py,sha256=PGzEpkdc1jsR5RLRnjVnI2Y87O_HFAFulwOjjjbT4B0,2872
26
26
  roborock/data/dyad/dyad_containers.py,sha256=klJD2wV-2McjAoSN8Bthuyeid59L7M8nzSvc3MtmqOI,434
@@ -126,8 +126,8 @@ roborock/testing/channel.py,sha256=vjulT5MHBe8lAq6XITUqcxJVcCILWx7ZEcw5imTx0Tk,7
126
126
  roborock/testing/cloud.py,sha256=L2L0KlZDYaMuoV19KUQUoq5EAUDeNQ1lJ8Ew5YaOgjo,11946
127
127
  roborock/testing/simulator.py,sha256=g8ZUWVSjgAzuRRxWOCeOq-7deodyEItwUpqEw9RzCmQ,4347
128
128
  roborock/testing/v1_simulator.py,sha256=_LX_vsBMcB2Uu2QDt8QnQymgtVtbnwD5Xa7tmhiPAnY,14439
129
- python_roborock-7.7.0.dist-info/METADATA,sha256=LuQWXmlZKWOMRGdAQWOrZqMm2Q9_5d3KtoxyN24BeaY,5278
130
- python_roborock-7.7.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
131
- python_roborock-7.7.0.dist-info/entry_points.txt,sha256=EvC1nMqi9ZXKgZnqlNXA33v_3nzgPNjnM0mzWlrehnY,47
132
- python_roborock-7.7.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
133
- python_roborock-7.7.0.dist-info/RECORD,,
129
+ python_roborock-7.8.0.dist-info/METADATA,sha256=oab4MAQUTzua8lpKUIFMyFlMK0ihrRYSJ1xdVY5B1Bw,5278
130
+ python_roborock-7.8.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
131
+ python_roborock-7.8.0.dist-info/entry_points.txt,sha256=EvC1nMqi9ZXKgZnqlNXA33v_3nzgPNjnM0mzWlrehnY,47
132
+ python_roborock-7.8.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
133
+ python_roborock-7.8.0.dist-info/RECORD,,
@@ -101,13 +101,8 @@ class B01_Q10_DP(RoborockModeEnum):
101
101
  VOICE_VERSION = ("dpVoiceVersion", 108)
102
102
  ROBOT_COUNTRY_CODE = ("dpRobotCountryCode", 109)
103
103
  HEARTBEAT = ("dpHeartbeat", 110)
104
- # NOTE: ss07 hardware also pushes data points 112 and 113 in its full status
105
- # dump. They are absent from the official app's vacuum plugin and stayed 0
106
- # across every observed state (docked/charging, segment cleaning, lifted-off-
107
- # ground fault, returning to dock, dustbin removed), so their meaning is not
108
- # yet known. They are intentionally left unmapped; ``decode_rpc_response``
109
- # silently ignores unknown codes via ``from_code_optional``, so they do not
110
- # produce "not a valid code" warnings. Map them here once identified.
104
+ UNKNOWN_112 = ("dpUnknown112", 112)
105
+ UNKNOWN_113 = ("dpUnknown113", 113)
111
106
  STATUS = ("dpStatus", 121)
112
107
  BATTERY = ("dpBattery", 122)
113
108
  FAN_LEVEL = ("dpFanLevel", 123) # NOTE: typo "dpfunLevel" in source code
@@ -1,6 +1,6 @@
1
1
  from typing import Self, cast
2
2
 
3
- from ..code_mappings import RoborockModeEnum
3
+ from ..code_mappings import RoborockEnum, RoborockModeEnum
4
4
 
5
5
 
6
6
  class WorkStatusMapping(RoborockModeEnum):
@@ -121,6 +121,22 @@ class WorkModeMapping(RoborockModeEnum):
121
121
  EXPLORE_IDLE = ("explore_idle", 49)
122
122
 
123
123
 
124
+ class StationStateMapping(RoborockEnum):
125
+ """Known dock activity states observed on the Q7 M5+."""
126
+
127
+ unknown = -1
128
+ idle = 0
129
+ collecting_dust = 3
130
+
131
+
132
+ class DustCollectionStateMapping(RoborockEnum):
133
+ """Known dust collection states observed on the Q7 M5+."""
134
+
135
+ unknown = -1
136
+ idle = 0
137
+ collecting_dust = 1
138
+
139
+
124
140
  class StationActionMapping(RoborockModeEnum):
125
141
  """Maps actions for the cleaning/drying station."""
126
142
 
@@ -10,7 +10,9 @@ from .b01_q7_code_mappings import (
10
10
  CleanPathPreferenceMapping,
11
11
  CleanRepeatMapping,
12
12
  CleanTypeMapping,
13
+ DustCollectionStateMapping,
13
14
  SCWindMapping,
15
+ StationStateMapping,
14
16
  WaterLevelMapping,
15
17
  WorkModeMapping,
16
18
  WorkStatusMapping,
@@ -137,11 +139,11 @@ class B01Props(RoborockBase):
137
139
  custom_type: int | None = None
138
140
  sound: int | None = None
139
141
  work_mode: WorkModeMapping | None = None
140
- station_act: int | None = None # dock activity; 3 while collecting dust, 0 idle. hw-confirmed (Q7 M5+)
142
+ station_act: StationStateMapping | None = None
141
143
  charge_state: int | None = None
142
144
  current_map_id: int | None = None
143
145
  map_num: int | None = None
144
- dust_action: int | None = None # 1 while the dock is collecting dust; read-only (prop.set rejected, code 1)
146
+ dust_action: DustCollectionStateMapping | None = None # Read-only; prop.set is rejected with code 1 on the Q7 M5+.
145
147
  quiet_is_open: int | None = None
146
148
  quiet_begin_time: int | None = None
147
149
  quiet_end_time: int | None = None