mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Update Roborock map more consistently on state change (#142228)
* update map more consistently on state change * Makecoordinator keep track of last_updated_state
This commit is contained in:
parent
414fe53261
commit
31c660557d
@ -153,6 +153,7 @@ class RoborockDataUpdateCoordinator(DataUpdateCoordinator[DeviceProp]):
|
|||||||
ImageConfig(scale=MAP_SCALE),
|
ImageConfig(scale=MAP_SCALE),
|
||||||
[],
|
[],
|
||||||
)
|
)
|
||||||
|
self.last_update_state: str | None = None
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def dock_device_info(self) -> DeviceInfo:
|
def dock_device_info(self) -> DeviceInfo:
|
||||||
@ -291,7 +292,6 @@ class RoborockDataUpdateCoordinator(DataUpdateCoordinator[DeviceProp]):
|
|||||||
|
|
||||||
async def _async_update_data(self) -> DeviceProp:
|
async def _async_update_data(self) -> DeviceProp:
|
||||||
"""Update data via library."""
|
"""Update data via library."""
|
||||||
previous_state = self.roborock_device_info.props.status.state_name
|
|
||||||
try:
|
try:
|
||||||
# Update device props and standard api information
|
# Update device props and standard api information
|
||||||
await self._update_device_prop()
|
await self._update_device_prop()
|
||||||
@ -308,7 +308,7 @@ class RoborockDataUpdateCoordinator(DataUpdateCoordinator[DeviceProp]):
|
|||||||
and (dt_util.utcnow() - self.maps[self.current_map].last_updated)
|
and (dt_util.utcnow() - self.maps[self.current_map].last_updated)
|
||||||
> IMAGE_CACHE_INTERVAL
|
> IMAGE_CACHE_INTERVAL
|
||||||
)
|
)
|
||||||
or previous_state != new_status.state_name
|
or self.last_update_state != new_status.state_name
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
await self.update_map()
|
await self.update_map()
|
||||||
@ -330,6 +330,7 @@ class RoborockDataUpdateCoordinator(DataUpdateCoordinator[DeviceProp]):
|
|||||||
self.update_interval = V1_CLOUD_NOT_CLEANING_INTERVAL
|
self.update_interval = V1_CLOUD_NOT_CLEANING_INTERVAL
|
||||||
else:
|
else:
|
||||||
self.update_interval = V1_LOCAL_NOT_CLEANING_INTERVAL
|
self.update_interval = V1_LOCAL_NOT_CLEANING_INTERVAL
|
||||||
|
self.last_update_state = self.roborock_device_info.props.status.state_name
|
||||||
return self.roborock_device_info.props
|
return self.roborock_device_info.props
|
||||||
|
|
||||||
def _set_current_map(self) -> None:
|
def _set_current_map(self) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user