fix: fix interval setting

pull/106/head
Jeff Culverhouse 3 months ago
parent 259d2d2475
commit 165d0c723f

@ -60,10 +60,10 @@ class AmcrestServiceProtocol(Protocol):
async def get_privacy_mode(self, device_id: str) -> bool: ...
async def get_snapshot_from_device(self, device_id: str) -> str | None: ...
async def get_storage_stats(self, device_id: str) -> dict[str, str | float]: ...
async def handle_device_command(self, device_id: str, handler: str, message: str) -> None: ...
async def handle_device_topic(self, components: list[str], payload: str) -> None: ...
async def handle_device_command(self, device_id: str, handler: str, message: Any) -> None: ...
async def handle_device_topic(self, components: list[str], payload: Any) -> None: ...
async def handle_homeassistant_message(self, payload: str) -> None: ...
async def handle_service_command(self, handler: str, message: str) -> None: ...
async def handle_service_command(self, handler: str, message: Any) -> None: ...
async def heartbeat(self) -> None: ...
async def main_loop(self) -> None: ...
async def mqtt_on_connect(

@ -55,7 +55,7 @@ class HelpersMixin:
# send command to Amcrest -----------------------------------------------------------------------
async def handle_device_command(self: Amcrest2Mqtt, device_id: str, handler: str, message: str) -> None:
async def handle_device_command(self: Amcrest2Mqtt, device_id: str, handler: str, message: Any) -> None:
match handler:
case "save_recordings":
if message == "ON" and "path" not in self.config["media"]:
@ -70,17 +70,14 @@ class HelpersMixin:
case "reboot":
self.reboot_device(device_id)
async def handle_service_command(self: Amcrest2Mqtt, handler: str, message: str) -> None:
async def handle_service_command(self: Amcrest2Mqtt, handler: str, message: Any) -> None:
match handler:
case "storage_refresh":
case "storage_interval":
self.device_interval = int(message)
case "device_list_refresh":
case "rescan_interval":
self.device_list_interval = int(message)
case "snapshot_refresh":
self.snapshot_update_interval = int(message)
case "refresh_device_list":
if message == "refresh":
await self.rediscover_all()
case _:
self.logger.error(f"unrecognized message to {self.mqtt_helper.service_slug}: {handler} -> {message}")
return

@ -75,9 +75,22 @@ class PublishMixin:
"entity_category": "diagnostic",
"icon": "mdi:clock-outline",
},
"storage_interval": {
"refresh_interval": {
"platform": "number",
"name": "Refresh interval",
"uniq_id": self.mqtt_helper.svc_unique_id("refresh_interval"),
"stat_t": self.mqtt_helper.stat_t(device_id, "service", "refresh_interval"),
"cmd_t": self.mqtt_helper.cmd_t(device_id, "refresh_interval"),
"unit_of_measurement": "s",
"min": 1,
"max": 3600,
"step": 1,
"icon": "mdi:timer-refresh",
"mode": "box",
},
"storage_interval": {
"platform": "number",
"name": "Storage interval",
"uniq_id": self.mqtt_helper.svc_unique_id("storage_interval"),
"stat_t": self.mqtt_helper.stat_t(device_id, "service", "storage_interval"),
"cmd_t": self.mqtt_helper.cmd_t(device_id, "storage_interval"),
@ -125,7 +138,8 @@ class PublishMixin:
"server": "online",
"api_calls": self.api_calls,
"last_call": last_call_date.replace(tzinfo=local_tz).astimezone(timezone.utc).isoformat(),
"storage_interval": self.device_interval,
"refresh_interval": self.device_interval,
"storage_interval": self.storage_update_interval,
"snapshot_interval": self.snapshot_update_interval,
"rate_limited": "YES" if self.rate_limited else "NO",
}

Loading…
Cancel
Save