Skip to content

Commit c4d3b86

Browse files
authored
feat: add data subpackage (#551)
* feat: add data subpackage BREAKING CHANGE: you can no longer import .container or .code_mappings, instead import .data
1 parent 72f6fe9 commit c4d3b86

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1527
-1226
lines changed

roborock/__init__.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,14 @@
33
.. include:: ../README.md
44
"""
55

6-
from roborock.b01_containers import *
7-
from roborock.code_mappings import *
8-
from roborock.containers import *
6+
from roborock.data import *
97
from roborock.exceptions import *
108
from roborock.roborock_typing import *
119

1210
from . import (
13-
b01_containers,
14-
clean_modes,
1511
cloud_api,
16-
code_mappings,
1712
const,
18-
containers,
13+
data,
1914
exceptions,
2015
roborock_typing,
2116
version_1_apis,
@@ -27,13 +22,10 @@
2722
"web_api",
2823
"version_1_apis",
2924
"version_a01_apis",
30-
"containers",
31-
"b01_containers",
3225
"const",
3326
"cloud_api",
34-
"clean_modes",
35-
"code_mappings",
3627
"roborock_typing",
3728
"exceptions",
29+
"data",
3830
# Add new APIs here in the future when they are public e.g. devices/
3931
]

roborock/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from abc import ABC, abstractmethod
99
from typing import Any
1010

11-
from .containers import (
11+
from .data import (
1212
DeviceData,
1313
)
1414
from .exceptions import (

roborock/broadcast_protocol.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from Crypto.Cipher import AES
2020

2121
from roborock import RoborockException
22-
from roborock.containers import BroadcastMessage
22+
from roborock.data import BroadcastMessage
2323
from roborock.protocol import EncryptionAdapter, Utils, _Parser
2424

2525
_LOGGER = logging.getLogger(__name__)

roborock/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
from pyshark.packet.packet import Packet # type: ignore
4343

4444
from roborock import SHORT_MODEL_TO_ENUM, RoborockCommand
45-
from roborock.containers import CombinedMapInfo, DeviceData, HomeData, NetworkInfo, RoborockBase, UserData
45+
from roborock.data import CombinedMapInfo, DeviceData, HomeData, NetworkInfo, RoborockBase, UserData
4646
from roborock.device_features import DeviceFeatures
4747
from roborock.devices.cache import Cache, CacheData
4848
from roborock.devices.device import RoborockDevice

roborock/cloud_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from paho.mqtt.reasoncodes import ReasonCode # type: ignore
1515

1616
from .api import KEEPALIVE, RoborockClient
17-
from .containers import DeviceData, UserData
17+
from .data import DeviceData, UserData
1818
from .exceptions import RoborockException, VacuumError
1919
from .protocol import (
2020
Decoder,

roborock/data/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"""This module is meant to hold dataclasses and codemappings for various devices and protocols."""
2+
3+
from .b01_q7 import *
4+
from .b01_q10 import *
5+
from .code_mappings import *
6+
from .containers import *
7+
from .dyad import *
8+
from .v1 import *
9+
from .zeo import *

roborock/data/b01_q10/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .b01_q10_code_mappings import *
2+
from .b01_q10_containers import *
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
from ..code_mappings import RoborockModeEnum
2+
3+
4+
class B01_Q10_DP(RoborockModeEnum):
5+
CLEAN_TIME = ("dpCleanTime", 6)
6+
CLEAN_AREA = ("dpCleanArea", 7)
7+
SEEK = ("dpSeek", 11)
8+
REMOTE = ("dpRemote", 12)
9+
MAP_RESET = ("dpMapReset", 13)
10+
REQUEST = ("dpRequest", 16)
11+
RESET_SIDE_BRUSH = ("dpResetSideBrush", 18)
12+
RESET_MAIN_BRUSH = ("dpResetMainBrush", 20)
13+
RESET_FILTER = ("dpResetFilter", 22)
14+
RAG_LIFE = ("dpRagLife", 23)
15+
RESET_RAG_LIFE = ("dpResetRagLife", 24)
16+
NOT_DISTURB = ("dpNotDisturb", 25)
17+
VOLUME = ("dpVolume", 26)
18+
BEAK_CLEAN = ("dpBeakClean", 27)
19+
TOTAL_CLEAN_AREA = ("dpTotalCleanArea", 29)
20+
TOTAL_CLEAN_COUNT = ("dpTotalCleanCount", 30)
21+
TOTAL_CLEAN_TIME = ("dpTotalCleanTime", 31)
22+
TIMER = ("dpTimer", 32)
23+
NOT_DISTURB_DATA = ("dpNotDisturbData", 33)
24+
DEVICE_INFO = ("dpDeviceInfo", 34)
25+
VOICE_PACKAGE = ("dpVoicePackage", 35)
26+
VOICE_LANGUAGE = ("dpVoiceLanguage", 36)
27+
DUST_SWITCH = ("dpDustSwitch", 37)
28+
CUSTOM_MODE = ("dpCustomMode", 39)
29+
MOP_STATE = ("dpMopState", 40)
30+
UNIT = ("dpUnit", 42)
31+
CARPET_CLEAN_PREFER = ("dpCarpetCleanPrefer", 44)
32+
AUTO_BOOST = ("dpAutoBoost", 45)
33+
CHILD_LOCK = ("dpChildLock", 47)
34+
DUST_SETTING = ("dpDustSetting", 50)
35+
MAP_SAVE_SWITCH = ("dpMapSaveSwitch", 51)
36+
CLEAN_RECORD = ("dpCleanRecord", 52)
37+
RECEND_CLEAN_RECORD = ("dpRecendCleanRecord", 53)
38+
RESTRICTED_ZONE = ("dpRestrictedZone", 54)
39+
RESTRICTED_ZONE_UP = ("dpRestrictedZoneUp", 55)
40+
VIRTUAL_WALL = ("dpVirtualWall", 56)
41+
VIRTUAL_WALL_UP = ("dpVirtualWallUp", 57)
42+
ZONED = ("dpZoned", 58)
43+
ZONED_UP = ("dpZonedUp", 59)
44+
MULTI_MAP_SWITCH = ("dpMultiMapSwitch", 60)
45+
MULTI_MAP = ("dpMultiMap", 61)
46+
CUSTOMER_CLEAN = ("dpCustomerClean", 62)
47+
CUSTOMER_CLEAN_REQUEST = ("dpCustomerCleanRequest", 63)
48+
GET_CARPET = ("dpGetCarpet", 64)
49+
CARPET_UP = ("dpCarpetUp", 65)
50+
SELF_IDENTIFYING_CARPET = ("dpSelfIdentifyingCarpet", 66)
51+
SENSOR_LIFE = ("dpSensorLife", 67)
52+
RESET_SENSOR = ("dpResetSensor", 68)
53+
REQUEST_TIMER = ("dpRequestTimer", 69)
54+
REMOVE_ZONED = ("dpRemoveZoned", 70)
55+
REMOVE_ZONED_UP = ("dpRemoveZonedUp", 71)
56+
ROOM_MERGE = ("dpRoomMerge", 72)
57+
ROOM_SPLIT = ("dpRoomSplit", 73)
58+
RESET_ROOM_NAME = ("dpResetRoomName", 74)
59+
REQUSET_NOT_DISTURB_DATA = ("dpRequsetNotDisturbData", 75)
60+
CARPET_CLEAN_TYPE = ("dpCarpetCleanType", 76)
61+
BUTTON_LIGHT_SWITCH = ("dpButtonLightSwitch", 77)
62+
CLEAN_LINE = ("dpCleanLine", 78)
63+
TIME_ZONE = ("dpTimeZone", 79)
64+
AREA_UNIT = ("dpAreaUnit", 80)
65+
NET_INFO = ("dpNetInfo", 81)
66+
CLEAN_ORDER = ("dpCleanOrder", 82)
67+
ROBOT_TYPE = ("dpRobotType", 83)
68+
LOG_SWITCH = ("dpLogSwitch", 84)
69+
FLOOR_MATERIAL = ("dpFloorMaterial", 85)
70+
LINE_LASER_OBSTACLE_AVOIDANCE = ("dpLineLaserObstacleAvoidance", 86)
71+
CLEAN_PROGESS = ("dpCleanProgess", 87)
72+
GROUND_CLEAN = ("dpGroundClean", 88)
73+
IGNORE_OBSTACLE = ("dpIgnoreObstacle", 89)
74+
FAULT = ("dpFault", 90)
75+
CLEAN_EXPAND = ("dpCleanExpand", 91)
76+
NOT_DISTURB_EXPAND = ("dpNotDisturbExpand", 92)
77+
TIMER_TYPE = ("dpTimerType", 93)
78+
CREATE_MAP_FINISHED = ("dpCreateMapFinished", 94)
79+
ADD_CLEAN_AREA = ("dpAddCleanArea", 95)
80+
ADD_CLEAN_STATE = ("dpAddCleanState", 96)
81+
RESTRICTED_AREA = ("dpRestrictedArea", 97)
82+
RESTRICTED_AREA_UP = ("dpRestrictedAreaUp", 98)
83+
SUSPECTED_THRESHOLD = ("dpSuspectedThreshold", 99)
84+
SUSPECTED_THRESHOLD_UP = ("dpSuspectedThresholdUp", 100)
85+
COMMON = ("dpCommon", 101)
86+
JUMP_SCAN = ("dpJumpScan", 101)
87+
REQUETDPS = ("dpRequetdps", 102) # NOTE: THIS TYPO IS FOUND IN SOURCE CODE
88+
CLIFF_RESTRICTED_AREA = ("dpCliffRestrictedArea", 102)
89+
CLIFF_RESTRICTED_AREA_UP = ("dpCliffRestrictedAreaUp", 103)
90+
BREAKPOINT_CLEAN = ("dpBreakpointClean", 104)
91+
VALLEY_POINT_CHARGING = ("dpValleyPointCharging", 105)
92+
VALLEY_POINT_CHARGING_DATA_UP = ("dpValleyPointChargingDataUp", 106)
93+
VALLEY_POINT_CHARGING_DATA = ("dpValleyPointChargingData", 107)
94+
VOICE_VERSION = ("dpVoiceVersion", 108)
95+
ROBOT_COUNTRY_CODE = ("dpRobotCountryCode", 109)
96+
HEARTBEAT = ("dpHeartbeat", 110)
97+
STATUS = ("dpStatus", 121)
98+
BATTERY = ("dpBattery", 122)
99+
FUN_LEVEL = ("dpfunLevel", 123)
100+
WATER_LEVEL = ("dpWaterLevel", 124)
101+
MAIN_BRUSH_LIFE = ("dpMainBrushLife", 125)
102+
SIDE_BRUSH_LIFE = ("dpSideBrushLife", 126)
103+
FILTER_LIFE = ("dpFilterLife", 127)
104+
TASK_CANCEL_IN_MOTION = ("dpTaskCancelInMotion", 132)
105+
OFFLINE = ("dpOffline", 135)
106+
CLEAN_COUNT = ("dpCleanCount", 136)
107+
CLEAN_MODE = ("dpCleanMode", 137)
108+
CLEAN_TASK_TYPE = ("dpCleanTaskType", 138)
109+
BACK_TYPE = ("dpBackType", 139)
110+
CLEANING_PROGRESS = ("dpCleaningProgress", 141)
111+
FLEEING_GOODS = ("dpFleeingGoods", 142)
112+
START_CLEAN = ("dpStartClean", 201)
113+
START_BACK = ("dpStartBack", 202)
114+
START_DOCK_TASK = ("dpStartDockTask", 203)
115+
PAUSE = ("dpPause", 204)
116+
RESUME = ("dpResume", 205)
117+
STOP = ("dpStop", 206)
118+
USER_PLAN = ("dpUserPlan", 207)
119+
120+
121+
class YXFanLevel(RoborockModeEnum):
122+
UNKNOWN = "unknown", -1
123+
CLOSE = "close", 0
124+
QUITE = "quite", 1
125+
NORMAL = "normal", 2
126+
STRONG = "strong", 3
127+
MAX = "max", 4
128+
SUPER = "super", 5
129+
130+
131+
class YXWaterLevel(RoborockModeEnum):
132+
UNKNOWN = "unknown", -1
133+
CLOSE = "close", 0
134+
LOW = "low", 1
135+
MIDDLE = "middle", 2
136+
HIGH = "high", 3
137+
138+
139+
class YXCleanLine(RoborockModeEnum):
140+
FAST = "fast", 0
141+
DAILY = "daily", 1
142+
FINE = "fine", 2
143+
144+
145+
class YXRoomMaterial(RoborockModeEnum):
146+
HORIZONTAL_FLOOR_BOARD = "horizontalfloorboard", 0
147+
VERTICAL_FLOOR_BOARD = "verticalfloorboard", 1
148+
CERAMIC_TILE = "ceramictile", 2
149+
OTHER = "other", 255
150+
151+
152+
class YXCleanType(RoborockModeEnum):
153+
UNKNOWN = "unknown", -1
154+
BOTH_WORK = "bothwork", 1
155+
ONLY_SWEEP = "onlysweep", 2
156+
ONLY_MOP = "onlymop", 3
157+
158+
159+
class YXDeviceState(RoborockModeEnum):
160+
UNKNOWN = "unknown", -1
161+
SLEEP_STATE = "sleepstate", 2
162+
STANDBY_STATE = "standbystate", 3
163+
CLEANING_STATE = "cleaningstate", 5
164+
TO_CHARGE_STATE = "tochargestate", 6
165+
REMOTEING_STATE = "remoteingstate", 7
166+
CHARGING_STATE = "chargingstate", 8
167+
PAUSE_STATE = "pausestate", 10
168+
FAULT_STATE = "faultstate", 12
169+
UPGRADE_STATE = "upgradestate", 14
170+
DUSTING = "dusting", 22
171+
CREATING_MAP_STATE = "creatingmapstate", 29
172+
MAP_SAVE_STATE = "mapsavestate", 99
173+
RE_LOCATION_STATE = "relocationstate", 101
174+
ROBOT_SWEEPING = "robotsweeping", 102
175+
ROBOT_MOPING = "robotmoping", 103
176+
ROBOT_SWEEP_AND_MOPING = "robotsweepandmoping", 104
177+
ROBOT_TRANSITIONING = "robottransitioning", 105
178+
ROBOT_WAIT_CHARGE = "robotwaitcharge", 108
179+
180+
181+
class YXBackType(RoborockModeEnum):
182+
UNKNOWN = "unknown", -1
183+
IDLE = "idle", 0
184+
BACK_DUSTING = "backdusting", 4
185+
BACK_CHARGING = "backcharging", 5
186+
187+
188+
class YXDeviceWorkMode(RoborockModeEnum):
189+
UNKNOWN = "unknown", -1
190+
BOTH_WORK = "bothwork", 1
191+
ONLY_SWEEP = "onlysweep", 2
192+
ONLY_MOP = "onlymop", 3
193+
CUSTOMIZED = "customized", 4
194+
SAVE_WORRY = "saveworry", 5
195+
SWEEP_MOP = "sweepmop", 6
196+
197+
198+
class YXDeviceCleanTask(RoborockModeEnum):
199+
UNKNOWN = "unknown", -1
200+
IDLE = "idle", 0
201+
SMART = "smart", 1
202+
ELECTORAL = "electoral", 2
203+
DIVIDE_AREAS = "divideareas", 3
204+
CREATING_MAP = "creatingmap", 4
205+
PART = "part", 5
206+
207+
208+
class YXDeviceDustCollectionFrequency(RoborockModeEnum):
209+
DAILY = "daily", 0
210+
INTERVAL_15 = "interval_15", 15
211+
INTERVAL_30 = "interval_30", 30
212+
INTERVAL_45 = "interval_45", 45
213+
INTERVAL_60 = "interval_60", 60
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from ..containers import RoborockBase
2+
3+
4+
class dpCleanRecord(RoborockBase):
5+
op: str
6+
result: int
7+
id: str
8+
data: list
9+
10+
11+
class dpMultiMap(RoborockBase):
12+
op: str
13+
result: int
14+
data: list
15+
16+
17+
class dpGetCarpet(RoborockBase):
18+
op: str
19+
result: int
20+
data: str
21+
22+
23+
class dpSelfIdentifyingCarpet(RoborockBase):
24+
op: str
25+
result: int
26+
data: str
27+
28+
29+
class dpNetInfo(RoborockBase):
30+
wifiName: str
31+
ipAdress: str
32+
mac: str
33+
signal: int
34+
35+
36+
class dpNotDisturbExpand(RoborockBase):
37+
disturb_dust_enable: int
38+
disturb_light: int
39+
disturb_resume_clean: int
40+
disturb_voice: int
41+
42+
43+
class dpCurrentCleanRoomIds(RoborockBase):
44+
room_id_list: list
45+
46+
47+
class dpVoiceVersion(RoborockBase):
48+
version: int
49+
50+
51+
class dpTimeZone(RoborockBase):
52+
timeZoneCity: str
53+
timeZoneSec: int

roborock/data/b01_q7/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .b01_q7_code_mappings import *
2+
from .b01_q7_containers import *

0 commit comments

Comments
 (0)