File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed
roborock/devices/traits/v1 Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -230,6 +230,12 @@ async def discover_features(self) -> None:
230230 # Dock type also acts like a device feature for some traits.
231231 dock_type = await self ._dock_type ()
232232
233+ # Initialize traits with special arguments before the generic loop
234+ if self .wash_towel_mode is None and self ._is_supported (WashTowelModeTrait , "wash_towel_mode" , dock_type ):
235+ wash_towel_mode = WashTowelModeTrait (self .device_features )
236+ wash_towel_mode ._rpc_channel = self ._get_rpc_channel (wash_towel_mode ) # type: ignore[assignment]
237+ self .wash_towel_mode = wash_towel_mode
238+
233239 # Dynamically create any traits that need to be populated
234240 for item in fields (self ):
235241 if (trait := getattr (self , item .name , None )) is not None :
@@ -245,10 +251,7 @@ async def discover_features(self) -> None:
245251 _LOGGER .debug ("Trait '%s' not supported, skipping" , item .name )
246252 continue
247253 _LOGGER .debug ("Trait '%s' is supported, initializing" , item .name )
248- if item_type is WashTowelModeTrait :
249- trait = item_type (self .device_features )
250- else :
251- trait = item_type ()
254+ trait = item_type ()
252255 setattr (self , item .name , trait )
253256 trait ._rpc_channel = self ._get_rpc_channel (trait )
254257
You can’t perform that action at this time.
0 commit comments