roborock-cli 0.1.1__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.
- roborock_cli/__init__.py +3 -0
- roborock_cli/__main__.py +76 -0
- roborock_cli/_vendor/VERSION +6 -0
- roborock_cli/_vendor/__init__.py +0 -0
- roborock_cli/_vendor/roborock/__init__.py +27 -0
- roborock_cli/_vendor/roborock/broadcast_protocol.py +114 -0
- roborock_cli/_vendor/roborock/callbacks.py +130 -0
- roborock_cli/_vendor/roborock/cli.py +1338 -0
- roborock_cli/_vendor/roborock/const.py +84 -0
- roborock_cli/_vendor/roborock/data/__init__.py +9 -0
- roborock_cli/_vendor/roborock/data/b01_q10/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_code_mappings.py +213 -0
- roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_containers.py +102 -0
- roborock_cli/_vendor/roborock/data/b01_q7/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_code_mappings.py +303 -0
- roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_containers.py +302 -0
- roborock_cli/_vendor/roborock/data/code_mappings.py +198 -0
- roborock_cli/_vendor/roborock/data/containers.py +530 -0
- roborock_cli/_vendor/roborock/data/dyad/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/dyad/dyad_code_mappings.py +102 -0
- roborock_cli/_vendor/roborock/data/dyad/dyad_containers.py +28 -0
- roborock_cli/_vendor/roborock/data/v1/__init__.py +3 -0
- roborock_cli/_vendor/roborock/data/v1/v1_clean_modes.py +192 -0
- roborock_cli/_vendor/roborock/data/v1/v1_code_mappings.py +644 -0
- roborock_cli/_vendor/roborock/data/v1/v1_containers.py +800 -0
- roborock_cli/_vendor/roborock/data/zeo/__init__.py +2 -0
- roborock_cli/_vendor/roborock/data/zeo/zeo_code_mappings.py +138 -0
- roborock_cli/_vendor/roborock/data/zeo/zeo_containers.py +0 -0
- roborock_cli/_vendor/roborock/device_features.py +668 -0
- roborock_cli/_vendor/roborock/devices/README.md +41 -0
- roborock_cli/_vendor/roborock/devices/__init__.py +11 -0
- roborock_cli/_vendor/roborock/devices/cache.py +143 -0
- roborock_cli/_vendor/roborock/devices/device.py +240 -0
- roborock_cli/_vendor/roborock/devices/device_manager.py +269 -0
- roborock_cli/_vendor/roborock/devices/file_cache.py +79 -0
- roborock_cli/_vendor/roborock/devices/rpc/__init__.py +14 -0
- roborock_cli/_vendor/roborock/devices/rpc/a01_channel.py +94 -0
- roborock_cli/_vendor/roborock/devices/rpc/b01_q10_channel.py +57 -0
- roborock_cli/_vendor/roborock/devices/rpc/b01_q7_channel.py +101 -0
- roborock_cli/_vendor/roborock/devices/rpc/v1_channel.py +457 -0
- roborock_cli/_vendor/roborock/devices/traits/__init__.py +28 -0
- roborock_cli/_vendor/roborock/devices/traits/a01/__init__.py +191 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/__init__.py +12 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/__init__.py +76 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/command.py +32 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/common.py +115 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/status.py +32 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q10/vacuum.py +81 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q7/__init__.py +136 -0
- roborock_cli/_vendor/roborock/devices/traits/b01/q7/clean_summary.py +75 -0
- roborock_cli/_vendor/roborock/devices/traits/traits_mixin.py +64 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/__init__.py +344 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/child_lock.py +29 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/clean_summary.py +83 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/command.py +38 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/common.py +172 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/consumeable.py +48 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/device_features.py +74 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/do_not_disturb.py +41 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/dust_collection_mode.py +13 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/flow_led_status.py +29 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/home.py +285 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/led_status.py +43 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/map_content.py +83 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/maps.py +80 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/network_info.py +55 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/rooms.py +105 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/routines.py +26 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/smart_wash_params.py +13 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/status.py +101 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/valley_electricity_timer.py +44 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/volume.py +27 -0
- roborock_cli/_vendor/roborock/devices/traits/v1/wash_towel_mode.py +13 -0
- roborock_cli/_vendor/roborock/devices/transport/__init__.py +8 -0
- roborock_cli/_vendor/roborock/devices/transport/channel.py +32 -0
- roborock_cli/_vendor/roborock/devices/transport/local_channel.py +295 -0
- roborock_cli/_vendor/roborock/devices/transport/mqtt_channel.py +118 -0
- roborock_cli/_vendor/roborock/diagnostics.py +166 -0
- roborock_cli/_vendor/roborock/exceptions.py +95 -0
- roborock_cli/_vendor/roborock/map/__init__.py +7 -0
- roborock_cli/_vendor/roborock/map/map_parser.py +123 -0
- roborock_cli/_vendor/roborock/mqtt/__init__.py +10 -0
- roborock_cli/_vendor/roborock/mqtt/health_manager.py +60 -0
- roborock_cli/_vendor/roborock/mqtt/roborock_session.py +463 -0
- roborock_cli/_vendor/roborock/mqtt/session.py +108 -0
- roborock_cli/_vendor/roborock/protocol.py +558 -0
- roborock_cli/_vendor/roborock/protocols/__init__.py +3 -0
- roborock_cli/_vendor/roborock/protocols/a01_protocol.py +74 -0
- roborock_cli/_vendor/roborock/protocols/b01_q10_protocol.py +87 -0
- roborock_cli/_vendor/roborock/protocols/b01_q7_protocol.py +81 -0
- roborock_cli/_vendor/roborock/protocols/v1_protocol.py +271 -0
- roborock_cli/_vendor/roborock/py.typed +0 -0
- roborock_cli/_vendor/roborock/roborock_message.py +246 -0
- roborock_cli/_vendor/roborock/roborock_typing.py +382 -0
- roborock_cli/_vendor/roborock/util.py +54 -0
- roborock_cli/_vendor/roborock/web_api.py +761 -0
- roborock_cli/cli.py +715 -0
- roborock_cli/connection.py +202 -0
- roborock_cli/helpers.py +71 -0
- roborock_cli/server.py +759 -0
- roborock_cli/setup_auth.py +92 -0
- roborock_cli-0.1.1.dist-info/METADATA +172 -0
- roborock_cli-0.1.1.dist-info/RECORD +106 -0
- roborock_cli-0.1.1.dist-info/WHEEL +4 -0
- roborock_cli-0.1.1.dist-info/entry_points.txt +2 -0
- roborock_cli-0.1.1.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Total time in seconds consumables have before Roborock recommends replacing
|
|
2
|
+
MAIN_BRUSH_REPLACE_TIME = 1080000
|
|
3
|
+
SIDE_BRUSH_REPLACE_TIME = 720000
|
|
4
|
+
FILTER_REPLACE_TIME = 540000
|
|
5
|
+
SENSOR_DIRTY_REPLACE_TIME = 108000
|
|
6
|
+
MOP_ROLLER_REPLACE_TIME = 1080000
|
|
7
|
+
STRAINER_REPLACE_TIME = 150
|
|
8
|
+
CLEANING_BRUSH_REPLACE_TIME = 300
|
|
9
|
+
DUST_COLLECTION_REPLACE_TIME = 90
|
|
10
|
+
FLOOR_CLEANER_REPLACE_TIME = 300
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
ROBOROCK_V1 = "ROBOROCK.vacuum.v1"
|
|
14
|
+
ROBOROCK_S4 = "roborock.vacuum.s4"
|
|
15
|
+
ROBOROCK_S4_MAX = "roborock.vacuum.a19"
|
|
16
|
+
ROBOROCK_S5 = "roborock.vacuum.s5"
|
|
17
|
+
ROBOROCK_S5_MAX = "roborock.vacuum.s5e"
|
|
18
|
+
ROBOROCK_S6 = "roborock.vacuum.s6"
|
|
19
|
+
ROBOROCK_T6 = "roborock.vacuum.t6" # cn s6
|
|
20
|
+
ROBOROCK_E4 = "roborock.vacuum.a01"
|
|
21
|
+
ROBOROCK_S6_PURE = "roborock.vacuum.a08"
|
|
22
|
+
ROBOROCK_T7 = "roborock.vacuum.a11" # cn s7
|
|
23
|
+
ROBOROCK_T7S = "roborock.vacuum.a14"
|
|
24
|
+
ROBOROCK_T7SPLUS = "roborock.vacuum.a23"
|
|
25
|
+
ROBOROCK_S7_MAXV = "roborock.vacuum.a27"
|
|
26
|
+
ROBOROCK_S7_MAXV_ULTRA = "roborock.vacuum.a65"
|
|
27
|
+
ROBOROCK_S7_PRO_ULTRA = "roborock.vacuum.a62"
|
|
28
|
+
ROBOROCK_Q5 = "roborock.vacuum.a34"
|
|
29
|
+
ROBOROCK_Q5_PRO = "roborock.vacuum.a72"
|
|
30
|
+
ROBOROCK_Q7 = "roborock.vacuum.a40"
|
|
31
|
+
ROBOROCK_Q7_MAX = "roborock.vacuum.a38"
|
|
32
|
+
ROBOROCK_Q7PLUS = "roborock.vacuum.a40"
|
|
33
|
+
ROBOROCK_QREVO_MASTER = "roborock.vacuum.a117"
|
|
34
|
+
ROBOROCK_QREVO_CURV = "roborock.vacuum.a135"
|
|
35
|
+
ROBOROCK_Q8_MAX = "roborock.vacuum.a73"
|
|
36
|
+
ROBOROCK_Q10 = "roborock.vacuum.ss07"
|
|
37
|
+
ROBOROCK_G10S_PRO = "roborock.vacuum.a26"
|
|
38
|
+
ROBOROCK_G20S_Ultra = "roborock.vacuum.a143" # cn saros_r10
|
|
39
|
+
ROBOROCK_G10S = "roborock.vacuum.a46"
|
|
40
|
+
ROBOROCK_G10 = "roborock.vacuum.a29"
|
|
41
|
+
ROCKROBO_G10_SG = "roborock.vacuum.a30" # Variant of the G10, has similar features as S7
|
|
42
|
+
ROBOROCK_S7 = "roborock.vacuum.a15"
|
|
43
|
+
ROBOROCK_S6_MAXV = "roborock.vacuum.a10"
|
|
44
|
+
ROBOROCK_E2 = "roborock.vacuum.e2"
|
|
45
|
+
ROBOROCK_1S = "roborock.vacuum.m1s"
|
|
46
|
+
ROBOROCK_C1 = "roborock.vacuum.c1"
|
|
47
|
+
ROBOROCK_S8_PRO_ULTRA = "roborock.vacuum.a70"
|
|
48
|
+
ROBOROCK_S8 = "roborock.vacuum.a51"
|
|
49
|
+
ROBOROCK_P10 = "roborock.vacuum.a75" # also known as q_revo
|
|
50
|
+
ROBOROCK_S8_MAXV_ULTRA = "roborock.vacuum.a97"
|
|
51
|
+
ROBOROCK_QREVO_S = "roborock.vacuum.a104"
|
|
52
|
+
ROBOROCK_QREVO_PRO = "roborock.vacuum.a101"
|
|
53
|
+
ROBOROCK_QREVO_MAXV = "roborock.vacuum.a87"
|
|
54
|
+
ROBOROCK_SAROS_10R = "roborock.vacuum.a144"
|
|
55
|
+
ROBOROCK_SAROS_10 = "roborock.vacuum.a147"
|
|
56
|
+
|
|
57
|
+
ROBOROCK_DYAD_AIR = "roborock.wetdryvac.a107"
|
|
58
|
+
ROBOROCK_DYAD_PRO_COMBO = "roborock.wetdryvac.a83"
|
|
59
|
+
ROBOROCK_DYAD_PRO = "roborock.wetdryvac.a56"
|
|
60
|
+
|
|
61
|
+
# These are the devices that show up when you add a device - more could be supported and just not show up
|
|
62
|
+
SUPPORTED_VACUUMS = [
|
|
63
|
+
ROBOROCK_G10,
|
|
64
|
+
ROBOROCK_G10S_PRO,
|
|
65
|
+
ROBOROCK_G20S_Ultra,
|
|
66
|
+
ROBOROCK_Q5,
|
|
67
|
+
ROBOROCK_Q7,
|
|
68
|
+
ROBOROCK_Q7_MAX,
|
|
69
|
+
ROBOROCK_S4,
|
|
70
|
+
ROBOROCK_S5_MAX,
|
|
71
|
+
ROBOROCK_S6,
|
|
72
|
+
ROBOROCK_S6_MAXV,
|
|
73
|
+
ROBOROCK_S6_PURE,
|
|
74
|
+
ROBOROCK_S7_MAXV,
|
|
75
|
+
ROBOROCK_S8_PRO_ULTRA,
|
|
76
|
+
ROBOROCK_S8,
|
|
77
|
+
ROBOROCK_S4_MAX,
|
|
78
|
+
ROBOROCK_S7,
|
|
79
|
+
ROBOROCK_P10,
|
|
80
|
+
ROBOROCK_Q10,
|
|
81
|
+
ROCKROBO_G10_SG,
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
NO_MAP = 63
|
|
@@ -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 *
|
|
@@ -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
|
+
RECENT_CLEAN_RECORD = ("dpRecentCleanRecord", 53) # NOTE: typo "dpRecendCleanRecord" in source code
|
|
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
|
+
REQUEST_NOT_DISTURB_DATA = ("dpRequestNotDisturbData", 75) # NOTE: typo "dpRequsetNotDisturbData" in source code
|
|
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_PROGRESS = ("dpCleanProgress", 87) # NOTE: typo "dpCleanProgess" in source code
|
|
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
|
+
REQUEST_DPS = ("dpRequestDps", 102) # NOTE: typo "dpRequetdps" 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
|
+
FAN_LEVEL = ("dpFanLevel", 123) # NOTE: typo "dpfunLevel" in source code
|
|
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
|
+
QUIET = "quiet", 1
|
|
125
|
+
NORMAL = "normal", 2
|
|
126
|
+
STRONG = "strong", 3
|
|
127
|
+
MAX = "max", 4
|
|
128
|
+
SUPER = "super", 8
|
|
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
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""Data container classes for Q10 B01 devices.
|
|
2
|
+
|
|
3
|
+
Many of these classes use the `field(metadata={"dps": ...})` convention to map
|
|
4
|
+
dataclass fields to device Data Points (DPS). This metadata is utilized by the
|
|
5
|
+
`update_from_dps` helper in `roborock.devices.traits.b01.q10.common` to
|
|
6
|
+
automatically update objects from raw device responses.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass, field
|
|
10
|
+
|
|
11
|
+
from ..containers import RoborockBase
|
|
12
|
+
from .b01_q10_code_mappings import (
|
|
13
|
+
B01_Q10_DP,
|
|
14
|
+
YXBackType,
|
|
15
|
+
YXDeviceCleanTask,
|
|
16
|
+
YXDeviceState,
|
|
17
|
+
YXDeviceWorkMode,
|
|
18
|
+
YXFanLevel,
|
|
19
|
+
YXWaterLevel,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass
|
|
24
|
+
class dpCleanRecord(RoborockBase):
|
|
25
|
+
op: str
|
|
26
|
+
result: int
|
|
27
|
+
id: str
|
|
28
|
+
data: list
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@dataclass
|
|
32
|
+
class dpMultiMap(RoborockBase):
|
|
33
|
+
op: str
|
|
34
|
+
result: int
|
|
35
|
+
data: list
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@dataclass
|
|
39
|
+
class dpGetCarpet(RoborockBase):
|
|
40
|
+
op: str
|
|
41
|
+
result: int
|
|
42
|
+
data: str
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@dataclass
|
|
46
|
+
class dpSelfIdentifyingCarpet(RoborockBase):
|
|
47
|
+
op: str
|
|
48
|
+
result: int
|
|
49
|
+
data: str
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@dataclass
|
|
53
|
+
class dpNetInfo(RoborockBase):
|
|
54
|
+
wifiName: str
|
|
55
|
+
ipAdress: str
|
|
56
|
+
mac: str
|
|
57
|
+
signal: int
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@dataclass
|
|
61
|
+
class dpNotDisturbExpand(RoborockBase):
|
|
62
|
+
disturb_dust_enable: int
|
|
63
|
+
disturb_light: int
|
|
64
|
+
disturb_resume_clean: int
|
|
65
|
+
disturb_voice: int
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
@dataclass
|
|
69
|
+
class dpCurrentCleanRoomIds(RoborockBase):
|
|
70
|
+
room_id_list: list
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@dataclass
|
|
74
|
+
class dpVoiceVersion(RoborockBase):
|
|
75
|
+
version: int
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@dataclass
|
|
79
|
+
class dpTimeZone(RoborockBase):
|
|
80
|
+
timeZoneCity: str
|
|
81
|
+
timeZoneSec: int
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@dataclass
|
|
85
|
+
class Q10Status(RoborockBase):
|
|
86
|
+
"""Status for Q10 devices.
|
|
87
|
+
|
|
88
|
+
Fields are mapped to DPS values using metadata. Objects of this class can be
|
|
89
|
+
automatically updated using the `update_from_dps` helper.
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
clean_time: int | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEAN_TIME})
|
|
93
|
+
clean_area: int | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEAN_AREA})
|
|
94
|
+
battery: int | None = field(default=None, metadata={"dps": B01_Q10_DP.BATTERY})
|
|
95
|
+
status: YXDeviceState | None = field(default=None, metadata={"dps": B01_Q10_DP.STATUS})
|
|
96
|
+
fan_level: YXFanLevel | None = field(default=None, metadata={"dps": B01_Q10_DP.FAN_LEVEL})
|
|
97
|
+
water_level: YXWaterLevel | None = field(default=None, metadata={"dps": B01_Q10_DP.WATER_LEVEL})
|
|
98
|
+
clean_count: int | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEAN_COUNT})
|
|
99
|
+
clean_mode: YXDeviceWorkMode | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEAN_MODE})
|
|
100
|
+
clean_task_type: YXDeviceCleanTask | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEAN_TASK_TYPE})
|
|
101
|
+
back_type: YXBackType | None = field(default=None, metadata={"dps": B01_Q10_DP.BACK_TYPE})
|
|
102
|
+
cleaning_progress: int | None = field(default=None, metadata={"dps": B01_Q10_DP.CLEANING_PROGRESS})
|