|
| 1 | +"""2pv572 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 | + CapabilityLifeSpan, |
| 13 | + CapabilityMap, |
| 14 | + CapabilitySettings, |
| 15 | + CapabilitySetTypes, |
| 16 | + CapabilityStats, |
| 17 | + DeviceType, |
| 18 | +) |
| 19 | +from deebot_client.commands.json import GetNetInfoLegacy |
| 20 | +from deebot_client.commands.json.custom import CustomCommand |
| 21 | +from deebot_client.commands.xml import ( |
| 22 | + Charge, |
| 23 | + Clean, |
| 24 | + CleanArea, |
| 25 | + GetBatteryInfo, |
| 26 | + GetChargerPos, |
| 27 | + GetCleanLogs, |
| 28 | + GetCleanSpeed, |
| 29 | + GetCleanState, |
| 30 | + GetError, |
| 31 | + GetLifeSpan, |
| 32 | + GetMapM, |
| 33 | + GetMapSt, |
| 34 | + GetPos, |
| 35 | + GetTrM, |
| 36 | + PlaySound, |
| 37 | + PullMP, |
| 38 | + ResetLifeSpan, |
| 39 | + SetCleanSpeed, |
| 40 | +) |
| 41 | +from deebot_client.commands.xml.charge_state import GetChargeState |
| 42 | +from deebot_client.commands.xml.stats import GetCleanSum |
| 43 | +from deebot_client.const import DataType |
| 44 | +from deebot_client.events import ( |
| 45 | + AvailabilityEvent, |
| 46 | + BatteryEvent, |
| 47 | + CleanLogEvent, |
| 48 | + CustomCommandEvent, |
| 49 | + ErrorEvent, |
| 50 | + FanSpeedEvent, |
| 51 | + FanSpeedLevel, |
| 52 | + LifeSpan, |
| 53 | + LifeSpanEvent, |
| 54 | + NetworkInfoEvent, |
| 55 | + ReportStatsEvent, |
| 56 | + RoomsEvent, |
| 57 | + StateEvent, |
| 58 | + StatsEvent, |
| 59 | + TotalStatsEvent, |
| 60 | +) |
| 61 | +from deebot_client.events.map import ( |
| 62 | + CachedMapInfoEvent, |
| 63 | + MajorMapEvent, |
| 64 | + MapChangedEvent, |
| 65 | + MapTraceEvent, |
| 66 | + PositionsEvent, |
| 67 | +) |
| 68 | +from deebot_client.models import StaticDeviceInfo |
| 69 | +from deebot_client.util import short_name |
| 70 | + |
| 71 | +from . import DEVICES |
| 72 | + |
| 73 | +DEVICES[short_name(__name__)] = StaticDeviceInfo( |
| 74 | + DataType.XML, |
| 75 | + Capabilities( |
| 76 | + availability=CapabilityEvent(AvailabilityEvent, []), |
| 77 | + battery=CapabilityEvent(BatteryEvent, [GetBatteryInfo()]), |
| 78 | + charge=CapabilityExecute(Charge), |
| 79 | + clean=CapabilityClean( |
| 80 | + action=CapabilityCleanAction(command=Clean, area=CleanArea), |
| 81 | + log=CapabilityEvent(CleanLogEvent, [GetCleanLogs()]), |
| 82 | + ), |
| 83 | + custom=CapabilityCustomCommand( |
| 84 | + event=CustomCommandEvent, get=[], set=CustomCommand |
| 85 | + ), |
| 86 | + device_type=DeviceType.VACUUM, |
| 87 | + error=CapabilityEvent(ErrorEvent, [GetError()]), |
| 88 | + fan_speed=CapabilitySetTypes( |
| 89 | + event=FanSpeedEvent, |
| 90 | + get=[GetCleanSpeed()], |
| 91 | + set=SetCleanSpeed, |
| 92 | + types=( |
| 93 | + FanSpeedLevel.NORMAL, |
| 94 | + FanSpeedLevel.MAX, |
| 95 | + ), |
| 96 | + ), |
| 97 | + life_span=CapabilityLifeSpan( |
| 98 | + types=(LifeSpan.BRUSH, LifeSpan.SIDE_BRUSH, LifeSpan.DUST_CASE_HEAP), |
| 99 | + event=LifeSpanEvent, |
| 100 | + get=[ |
| 101 | + GetLifeSpan(LifeSpan.BRUSH), |
| 102 | + GetLifeSpan(LifeSpan.SIDE_BRUSH), |
| 103 | + GetLifeSpan(LifeSpan.DUST_CASE_HEAP), |
| 104 | + ], |
| 105 | + reset=ResetLifeSpan, |
| 106 | + ), |
| 107 | + map=CapabilityMap( |
| 108 | + cached_info=CapabilityEvent(CachedMapInfoEvent, [GetMapSt()]), |
| 109 | + changed=CapabilityEvent(MapChangedEvent, []), |
| 110 | + major=CapabilityEvent(MajorMapEvent, [GetMapM()]), |
| 111 | + minor=CapabilityExecute(PullMP), |
| 112 | + position=CapabilityEvent(PositionsEvent, [GetPos(), GetChargerPos()]), |
| 113 | + rooms=CapabilityEvent(RoomsEvent, [GetMapSt()]), |
| 114 | + trace=CapabilityEvent(MapTraceEvent, [GetTrM()]), |
| 115 | + ), |
| 116 | + network=CapabilityEvent(NetworkInfoEvent, [GetNetInfoLegacy()]), |
| 117 | + play_sound=CapabilityExecute(PlaySound), |
| 118 | + state=CapabilityEvent(StateEvent, [GetChargeState(), GetCleanState()]), |
| 119 | + stats=CapabilityStats( |
| 120 | + clean=CapabilityEvent(StatsEvent, []), |
| 121 | + report=CapabilityEvent(ReportStatsEvent, []), |
| 122 | + total=CapabilityEvent(TotalStatsEvent, [GetCleanSum()]), |
| 123 | + ), |
| 124 | + settings=CapabilitySettings(), |
| 125 | + ), |
| 126 | +) |
0 commit comments