@@ -34,6 +34,8 @@ async def refresh(self):
3434 "wetFeedingPlan" : wet_feeding_plan or {},
3535 "getfeedingplantoday" : get_feeding_plan_today or {}
3636 })
37+ if self .manual_feed_id is not None :
38+ self ._manual_feed_active = True
3739 except PetLibroAPIError as err :
3840 _LOGGER .error (f"Error refreshing data for PolarWetFoodFeeder: { err } " )
3941
@@ -122,6 +124,10 @@ def next_feeding_end_time(self) -> str:
122124 except ValueError :
123125 return "Invalid time"
124126
127+ def __init__ (self , * args , ** kwargs ):
128+ super ().__init__ (* args , ** kwargs )
129+ self ._manual_feed_active = False
130+
125131 @property
126132 def manual_feed_id (self ) -> int :
127133 """Returns the manual feed ID."""
@@ -130,7 +136,7 @@ def manual_feed_id(self) -> int:
130136 @property
131137 def manual_feed_now (self ) -> bool :
132138 """Returns whether the feeder is set to feed now or not."""
133- return self .manual_feed_id is not None
139+ return self ._manual_feed_active
134140
135141 @property
136142 def online (self ) -> bool :
@@ -192,9 +198,13 @@ async def set_manual_feed_now(self, start: bool, plate: int) -> None:
192198 await self .api .set_manual_feed_now (self .serial , plate )
193199 else :
194200 _LOGGER .debug (f"Triggering stop feed now for { self .serial } " )
195- await self .api .set_stop_feed_now (self .serial , self .manual_feed_id )
201+ if self .manual_feed_id is None :
202+ _LOGGER .warning ("No manual feed ID available to stop for %s" , self .serial )
203+ else :
204+ await self .api .set_stop_feed_now (self .serial , self .manual_feed_id )
196205
197- await self .refresh () # Refresh the state after the action
206+ self ._manual_feed_active = start
207+ await self .refresh ()
198208 except aiohttp .ClientError as err :
199209 _LOGGER .error (f"Failed to trigger manual feed now for { self .serial } with plate no.{ plate } : { err } " )
200210 raise PetLibroAPIError (f"Error triggering manual feed now: { err } " )
0 commit comments