7777)
7878
7979# Dyad protocol default values
80- DEFAULT_DYAD_STATUS : dict [int , Any ] = {
81- int ( RoborockDyadDataProtocol .STATUS ) : RoborockDyadStateCode .charging . value ,
82- int ( RoborockDyadDataProtocol .POWER ) : 100 ,
83- int ( RoborockDyadDataProtocol .SUCTION ) : DyadSuction .l1 . value ,
84- int ( RoborockDyadDataProtocol .WATER_LEVEL ) : DyadWaterLevel .l1 . value ,
85- int ( RoborockDyadDataProtocol .CLEAN_MODE ) : DyadCleanMode .auto . value ,
86- int ( RoborockDyadDataProtocol .AUTO_DRY ) : 1 ,
87- int ( RoborockDyadDataProtocol .VOLUME_SET ) : 80 ,
88- int ( RoborockDyadDataProtocol .ERROR ) : DyadError .none . value ,
89- int ( RoborockDyadDataProtocol .TOTAL_RUN_TIME ) : 120 ,
90- int ( RoborockDyadDataProtocol .SILENT_MODE ) : 0 ,
80+ DEFAULT_DYAD_STATUS : dict [enum . Enum , Any ] = {
81+ RoborockDyadDataProtocol .STATUS : RoborockDyadStateCode .charging ,
82+ RoborockDyadDataProtocol .POWER : 100 ,
83+ RoborockDyadDataProtocol .SUCTION : DyadSuction .l1 ,
84+ RoborockDyadDataProtocol .WATER_LEVEL : DyadWaterLevel .l1 ,
85+ RoborockDyadDataProtocol .CLEAN_MODE : DyadCleanMode .auto ,
86+ RoborockDyadDataProtocol .AUTO_DRY : 1 ,
87+ RoborockDyadDataProtocol .VOLUME_SET : 80 ,
88+ RoborockDyadDataProtocol .ERROR : DyadError .none ,
89+ RoborockDyadDataProtocol .TOTAL_RUN_TIME : 120 ,
90+ RoborockDyadDataProtocol .SILENT_MODE : 0 ,
9191}
9292
9393# Zeo protocol default values
94- DEFAULT_ZEO_STATUS : dict [int , Any ] = {
95- int ( RoborockZeoProtocol .STATE ) : ZeoState .standby . value ,
96- int ( RoborockZeoProtocol .MODE ) : ZeoMode .wash_and_dry . value ,
97- int ( RoborockZeoProtocol .PROGRAM ) : ZeoProgram .standard . value ,
98- int ( RoborockZeoProtocol .TEMP ) : ZeoTemperature .medium . value ,
99- int ( RoborockZeoProtocol .RINSE_TIMES ) : ZeoRinse .low . value ,
100- int ( RoborockZeoProtocol .SPIN_LEVEL ) : ZeoSpin .high . value ,
101- int ( RoborockZeoProtocol .DRYING_MODE ) : ZeoDryingMode .store . value ,
102- int ( RoborockZeoProtocol .DETERGENT_EMPTY ) : False ,
103- int ( RoborockZeoProtocol .SOFTENER_EMPTY ) : False ,
104- int ( RoborockZeoProtocol .SOUND_SET ) : True ,
105- int ( RoborockZeoProtocol .ERROR ) : ZeoError .none . value ,
106- int ( RoborockZeoProtocol .WASHING_LEFT ) : 0 ,
107- int ( RoborockZeoProtocol .COUNTDOWN ) : 0 ,
108- int ( RoborockZeoProtocol .TIMES_AFTER_CLEAN ) : 0 ,
109- int ( RoborockZeoProtocol .DETERGENT_TYPE ) : ZeoDetergentType .low . value ,
110- int ( RoborockZeoProtocol .SOFTENER_TYPE ) : ZeoSoftenerType .low . value ,
94+ DEFAULT_ZEO_STATUS : dict [enum . Enum , Any ] = {
95+ RoborockZeoProtocol .STATE : ZeoState .standby ,
96+ RoborockZeoProtocol .MODE : ZeoMode .wash_and_dry ,
97+ RoborockZeoProtocol .PROGRAM : ZeoProgram .standard ,
98+ RoborockZeoProtocol .TEMP : ZeoTemperature .medium ,
99+ RoborockZeoProtocol .RINSE_TIMES : ZeoRinse .low ,
100+ RoborockZeoProtocol .SPIN_LEVEL : ZeoSpin .high ,
101+ RoborockZeoProtocol .DRYING_MODE : ZeoDryingMode .store ,
102+ RoborockZeoProtocol .DETERGENT_EMPTY : False ,
103+ RoborockZeoProtocol .SOFTENER_EMPTY : False ,
104+ RoborockZeoProtocol .SOUND_SET : True ,
105+ RoborockZeoProtocol .ERROR : ZeoError .none ,
106+ RoborockZeoProtocol .WASHING_LEFT : 0 ,
107+ RoborockZeoProtocol .COUNTDOWN : 0 ,
108+ RoborockZeoProtocol .TIMES_AFTER_CLEAN : 0 ,
109+ RoborockZeoProtocol .DETERGENT_TYPE : ZeoDetergentType .low ,
110+ RoborockZeoProtocol .SOFTENER_TYPE : ZeoSoftenerType .low ,
111111}
112112
113113
@@ -126,13 +126,13 @@ def __init__(
126126 duid : str ,
127127 device_info : HomeDataDevice ,
128128 product : HomeDataProduct ,
129- status : dict [Any , Any ] | None = None ,
129+ status : dict [enum . Enum , Any ] | None = None ,
130130 ):
131131 super ().__init__ (duid , device_info , product , has_local_channel = False )
132132 raw_status = status or {}
133133 self .status : dict [int , Any ] = {int (_extract_int_value (k )): _extract_int_value (v ) for k , v in raw_status .items ()}
134134
135- def set_protocol_value (self , protocol : Any , value : Any , push : bool = False ) -> None :
135+ def set_protocol_value (self , protocol : enum . Enum | int , value : Any , push : bool = False ) -> None :
136136 """Set a protocol value in the simulator status.
137137
138138 Accepts protocol enums (e.g. RoborockDyadDataProtocol, RoborockZeoProtocol)
@@ -205,17 +205,17 @@ class DyadSimulator(A01DeviceSimulator):
205205 def __init__ (
206206 self ,
207207 duid : str = "fake_dyad_duid" ,
208- status : dict [Any , Any ] | None = None ,
208+ status : dict [enum . Enum , Any ] | None = None ,
209209 device_info : HomeDataDevice | None = None ,
210210 product : HomeDataProduct | None = None ,
211211 ):
212212 product = product or DEFAULT_DYAD_PRODUCT
213213 if device_info is None :
214214 device_info = replace (DEFAULT_DYAD_DEVICE_INFO , duid = duid , name = f"Dyad { duid } " )
215- merged_status : dict [int , Any ] = copy .deepcopy (DEFAULT_DYAD_STATUS )
215+ merged_status : dict [enum . Enum , Any ] = copy .deepcopy (DEFAULT_DYAD_STATUS )
216216 if status :
217217 for k , v in status .items ():
218- merged_status [int ( _extract_int_value ( k )) ] = _extract_int_value ( v )
218+ merged_status [k ] = v
219219
220220 super ().__init__ (duid , device_info , product , merged_status )
221221
@@ -246,17 +246,17 @@ class ZeoSimulator(A01DeviceSimulator):
246246 def __init__ (
247247 self ,
248248 duid : str = "fake_zeo_duid" ,
249- status : dict [Any , Any ] | None = None ,
249+ status : dict [enum . Enum , Any ] | None = None ,
250250 device_info : HomeDataDevice | None = None ,
251251 product : HomeDataProduct | None = None ,
252252 ):
253253 product = product or DEFAULT_ZEO_PRODUCT
254254 if device_info is None :
255255 device_info = replace (DEFAULT_ZEO_DEVICE_INFO , duid = duid , name = f"Zeo { duid } " )
256- merged_status : dict [int , Any ] = copy .deepcopy (DEFAULT_ZEO_STATUS )
256+ merged_status : dict [enum . Enum , Any ] = copy .deepcopy (DEFAULT_ZEO_STATUS )
257257 if status :
258258 for k , v in status .items ():
259- merged_status [int ( _extract_int_value ( k )) ] = _extract_int_value ( v )
259+ merged_status [k ] = v
260260
261261 super ().__init__ (duid , device_info , product , merged_status )
262262
0 commit comments