Skip to content

Commit 765319a

Browse files
Kesp92¨Kesp92¨
and
¨Kesp92¨
authored
Add missing t30s combo vacuums (#763)
Co-authored-by: ¨Kesp92¨ <¨[email protected]¨>
1 parent 63fe09b commit 765319a

File tree

2 files changed

+546
-0
lines changed

2 files changed

+546
-0
lines changed
+273
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
"""Deebot DEEBOT T30S COMBO Capabilities."""
2+
3+
from __future__ import annotations
4+
5+
from deebot_client.capabilities import (
6+
Capabilities,
7+
CapabilityClean,
8+
CapabilityCleanAction,
9+
CapabilityCustomCommand,
10+
CapabilityEvent,
11+
CapabilityExecute,
12+
CapabilityExecuteTypes,
13+
CapabilityLifeSpan,
14+
CapabilityMap,
15+
CapabilitySet,
16+
CapabilitySetEnable,
17+
CapabilitySettings,
18+
CapabilitySetTypes,
19+
CapabilityStation,
20+
CapabilityStats,
21+
DeviceType,
22+
)
23+
from deebot_client.commands import StationAction
24+
from deebot_client.commands.json import station_action
25+
from deebot_client.commands.json.advanced_mode import GetAdvancedMode, SetAdvancedMode
26+
from deebot_client.commands.json.auto_empty import GetAutoEmpty, SetAutoEmpty
27+
from deebot_client.commands.json.battery import GetBattery
28+
from deebot_client.commands.json.carpet import (
29+
GetCarpetAutoFanBoost,
30+
SetCarpetAutoFanBoost,
31+
)
32+
from deebot_client.commands.json.charge import Charge
33+
from deebot_client.commands.json.charge_state import GetChargeState
34+
from deebot_client.commands.json.child_lock import GetChildLock, SetChildLock
35+
from deebot_client.commands.json.clean import Clean, CleanArea, GetCleanInfo
36+
from deebot_client.commands.json.clean_count import GetCleanCount, SetCleanCount
37+
from deebot_client.commands.json.clean_logs import GetCleanLogs
38+
from deebot_client.commands.json.clean_preference import (
39+
GetCleanPreference,
40+
SetCleanPreference,
41+
)
42+
from deebot_client.commands.json.continuous_cleaning import (
43+
GetContinuousCleaning,
44+
SetContinuousCleaning,
45+
)
46+
from deebot_client.commands.json.custom import CustomCommand
47+
from deebot_client.commands.json.efficiency import GetEfficiencyMode, SetEfficiencyMode
48+
from deebot_client.commands.json.error import GetError
49+
from deebot_client.commands.json.fan_speed import GetFanSpeed, SetFanSpeed
50+
from deebot_client.commands.json.life_span import GetLifeSpan, ResetLifeSpan
51+
from deebot_client.commands.json.map import GetCachedMapInfo, GetMajorMap, GetMapTrace
52+
from deebot_client.commands.json.multimap_state import (
53+
GetMultimapState,
54+
SetMultimapState,
55+
)
56+
from deebot_client.commands.json.network import GetNetInfo
57+
from deebot_client.commands.json.ota import GetOta, SetOta
58+
from deebot_client.commands.json.play_sound import PlaySound
59+
from deebot_client.commands.json.pos import GetPos
60+
from deebot_client.commands.json.relocation import SetRelocationState
61+
from deebot_client.commands.json.station_state import GetStationState
62+
from deebot_client.commands.json.stats import GetStats, GetTotalStats
63+
from deebot_client.commands.json.sweep_mode import GetSweepMode, SetSweepMode
64+
from deebot_client.commands.json.true_detect import GetTrueDetect, SetTrueDetect
65+
from deebot_client.commands.json.voice_assistant_state import (
66+
GetVoiceAssistantState,
67+
SetVoiceAssistantState,
68+
)
69+
from deebot_client.commands.json.volume import GetVolume, SetVolume
70+
from deebot_client.commands.json.water_info import GetWaterInfo, SetWaterInfo
71+
from deebot_client.commands.json.work_mode import GetWorkMode, SetWorkMode
72+
from deebot_client.const import DataType
73+
from deebot_client.events import (
74+
AdvancedModeEvent,
75+
AvailabilityEvent,
76+
BatteryEvent,
77+
CachedMapInfoEvent,
78+
CarpetAutoFanBoostEvent,
79+
ChildLockEvent,
80+
CleanCountEvent,
81+
CleanLogEvent,
82+
CleanPreferenceEvent,
83+
ContinuousCleaningEvent,
84+
CustomCommandEvent,
85+
EfficiencyModeEvent,
86+
ErrorEvent,
87+
FanSpeedEvent,
88+
FanSpeedLevel,
89+
LifeSpan,
90+
LifeSpanEvent,
91+
MajorMapEvent,
92+
MapChangedEvent,
93+
MapTraceEvent,
94+
MultimapStateEvent,
95+
NetworkInfoEvent,
96+
OtaEvent,
97+
PositionsEvent,
98+
ReportStatsEvent,
99+
RoomsEvent,
100+
StateEvent,
101+
StationEvent,
102+
StatsEvent,
103+
SweepModeEvent,
104+
TotalStatsEvent,
105+
TrueDetectEvent,
106+
VoiceAssistantStateEvent,
107+
VolumeEvent,
108+
WaterAmount,
109+
WaterInfoEvent,
110+
WorkMode,
111+
WorkModeEvent,
112+
auto_empty,
113+
)
114+
from deebot_client.events.auto_empty import AutoEmptyEvent
115+
from deebot_client.events.efficiency_mode import EfficiencyMode
116+
from deebot_client.models import StaticDeviceInfo
117+
from deebot_client.util import short_name
118+
119+
from . import DEVICES
120+
121+
DEVICES[short_name(__name__)] = StaticDeviceInfo(
122+
DataType.JSON,
123+
Capabilities(
124+
device_type=DeviceType.VACUUM,
125+
availability=CapabilityEvent(
126+
AvailabilityEvent, [GetBattery(is_available_check=True)]
127+
),
128+
battery=CapabilityEvent(BatteryEvent, [GetBattery()]),
129+
charge=CapabilityExecute(Charge),
130+
clean=CapabilityClean(
131+
action=CapabilityCleanAction(command=Clean, area=CleanArea),
132+
continuous=CapabilitySetEnable(
133+
ContinuousCleaningEvent,
134+
[GetContinuousCleaning()],
135+
SetContinuousCleaning,
136+
),
137+
count=CapabilitySet(CleanCountEvent, [GetCleanCount()], SetCleanCount),
138+
log=CapabilityEvent(CleanLogEvent, [GetCleanLogs()]),
139+
preference=CapabilitySetEnable(
140+
CleanPreferenceEvent, [GetCleanPreference()], SetCleanPreference
141+
),
142+
work_mode=CapabilitySetTypes(
143+
event=WorkModeEvent,
144+
get=[GetWorkMode()],
145+
set=SetWorkMode,
146+
types=(
147+
WorkMode.MOP,
148+
WorkMode.MOP_AFTER_VACUUM,
149+
WorkMode.VACUUM,
150+
WorkMode.VACUUM_AND_MOP,
151+
),
152+
),
153+
),
154+
custom=CapabilityCustomCommand(
155+
event=CustomCommandEvent, get=[], set=CustomCommand
156+
),
157+
error=CapabilityEvent(ErrorEvent, [GetError()]),
158+
fan_speed=CapabilitySetTypes(
159+
event=FanSpeedEvent,
160+
get=[GetFanSpeed()],
161+
set=SetFanSpeed,
162+
types=(
163+
FanSpeedLevel.QUIET,
164+
FanSpeedLevel.NORMAL,
165+
FanSpeedLevel.MAX,
166+
FanSpeedLevel.MAX_PLUS,
167+
),
168+
),
169+
life_span=CapabilityLifeSpan(
170+
types=(
171+
LifeSpan.BRUSH,
172+
LifeSpan.FILTER,
173+
LifeSpan.HAND_FILTER,
174+
LifeSpan.SIDE_BRUSH,
175+
LifeSpan.UNIT_CARE,
176+
),
177+
event=LifeSpanEvent,
178+
get=[
179+
GetLifeSpan(
180+
[
181+
LifeSpan.BRUSH,
182+
LifeSpan.FILTER,
183+
LifeSpan.HAND_FILTER,
184+
LifeSpan.SIDE_BRUSH,
185+
LifeSpan.UNIT_CARE,
186+
]
187+
)
188+
],
189+
reset=ResetLifeSpan,
190+
),
191+
map=CapabilityMap(
192+
cached_info=CapabilityEvent(CachedMapInfoEvent, [GetCachedMapInfo()]),
193+
changed=CapabilityEvent(MapChangedEvent, []),
194+
major=CapabilityEvent(MajorMapEvent, [GetMajorMap()]),
195+
multi_state=CapabilitySetEnable(
196+
MultimapStateEvent, [GetMultimapState()], SetMultimapState
197+
),
198+
position=CapabilityEvent(PositionsEvent, [GetPos()]),
199+
relocation=CapabilityExecute(SetRelocationState),
200+
rooms=CapabilityEvent(RoomsEvent, [GetCachedMapInfo()]),
201+
trace=CapabilityEvent(MapTraceEvent, [GetMapTrace()]),
202+
),
203+
network=CapabilityEvent(NetworkInfoEvent, [GetNetInfo()]),
204+
play_sound=CapabilityExecute(PlaySound),
205+
settings=CapabilitySettings(
206+
advanced_mode=CapabilitySetEnable(
207+
AdvancedModeEvent, [GetAdvancedMode()], SetAdvancedMode
208+
),
209+
carpet_auto_fan_boost=CapabilitySetEnable(
210+
CarpetAutoFanBoostEvent,
211+
[GetCarpetAutoFanBoost()],
212+
SetCarpetAutoFanBoost,
213+
),
214+
child_lock=CapabilitySetEnable(
215+
ChildLockEvent, [GetChildLock()], SetChildLock
216+
),
217+
efficiency_mode=CapabilitySetTypes(
218+
event=EfficiencyModeEvent,
219+
get=[GetEfficiencyMode()],
220+
set=SetEfficiencyMode,
221+
types=(
222+
EfficiencyMode.ENERGY_EFFICIENT_MODE,
223+
EfficiencyMode.STANDARD_MODE,
224+
),
225+
),
226+
ota=CapabilitySetEnable(OtaEvent, [GetOta()], SetOta),
227+
sweep_mode=CapabilitySetEnable(
228+
SweepModeEvent, [GetSweepMode()], SetSweepMode
229+
),
230+
true_detect=CapabilitySetEnable(
231+
TrueDetectEvent, [GetTrueDetect()], SetTrueDetect
232+
),
233+
voice_assistant=CapabilitySetEnable(
234+
VoiceAssistantStateEvent,
235+
[GetVoiceAssistantState()],
236+
SetVoiceAssistantState,
237+
),
238+
volume=CapabilitySet(VolumeEvent, [GetVolume()], SetVolume),
239+
),
240+
state=CapabilityEvent(StateEvent, [GetChargeState(), GetCleanInfo()]),
241+
station=CapabilityStation(
242+
action=CapabilityExecuteTypes(
243+
station_action.StationAction, types=(StationAction.EMPTY_DUSTBIN,)
244+
),
245+
auto_empty=CapabilitySetTypes(
246+
event=AutoEmptyEvent,
247+
get=[GetAutoEmpty()],
248+
set=SetAutoEmpty,
249+
types=(
250+
auto_empty.Frequency.AUTO,
251+
auto_empty.Frequency.SMART,
252+
),
253+
),
254+
state=CapabilityEvent(StationEvent, [GetStationState()]),
255+
),
256+
stats=CapabilityStats(
257+
clean=CapabilityEvent(StatsEvent, [GetStats()]),
258+
report=CapabilityEvent(ReportStatsEvent, []),
259+
total=CapabilityEvent(TotalStatsEvent, [GetTotalStats()]),
260+
),
261+
water=CapabilitySetTypes(
262+
event=WaterInfoEvent,
263+
get=[GetWaterInfo()],
264+
set=SetWaterInfo,
265+
types=(
266+
WaterAmount.LOW,
267+
WaterAmount.MEDIUM,
268+
WaterAmount.HIGH,
269+
WaterAmount.ULTRAHIGH,
270+
),
271+
),
272+
),
273+
)

0 commit comments

Comments
 (0)