@@ -347,6 +347,11 @@ def manual_feed_quantity(self):
347347 _LOGGER .warning (f"manual_feed_quantity is None for { self .serial } , setting default to 1." )
348348 self ._manual_feed_quantity = 1 # Default value
349349 return self ._manual_feed_quantity
350+
351+ @property
352+ def desiccant_frequency (self ) -> float :
353+ frequency = self ._data .get ("realInfo" , {}).get ("changeDesiccantFrequency" )
354+ return frequency if isinstance (frequency , (float , int )) else 0
350355
351356 # Error-handling updated for set_feeding_plan
352357 async def set_feeding_plan (self , value : bool ) -> None :
@@ -492,3 +497,22 @@ def update_progress(self) -> float:
492497
493498 progress = upgrade_data .get ("progress" )
494499 return float (progress ) if progress is not None else 0.0
500+
501+ async def set_desiccant_cycle (self , value : float ) -> None :
502+ _LOGGER .debug (f"Setting desiccant frequency to { value } for { self .serial } " )
503+ try :
504+ key = "DESICCANT"
505+ await self .api .set_desiccant_cycle (self .serial , value , key )
506+ await self .refresh () # Refresh the state after the action
507+ except aiohttp .ClientError as err :
508+ _LOGGER .error (f"Failed to set desiccant cycle for { self .serial } : { err } " )
509+ raise PetLibroAPIError (f"Error setting desiccant cycle: { err } " )
510+
511+ async def set_desiccant_reset (self ) -> None :
512+ _LOGGER .debug (f"Triggering desiccant reset for { self .serial } " )
513+ try :
514+ await self .api .set_desiccant_reset (self .serial )
515+ await self .refresh () # Refresh the state after the action
516+ except aiohttp .ClientError as err :
517+ _LOGGER .error (f"Failed to trigger desiccant reset for { self .serial } : { err } " )
518+ raise PetLibroAPIError (f"Error triggering desiccant reset: { err } " )
0 commit comments