From 3585e2482626f2efae299e847ca72528bb1c8156 Mon Sep 17 00:00:00 2001 From: Chris Jowett <421501+cryptk@users.noreply.github.com> Date: Tue, 12 May 2026 19:35:26 +0000 Subject: [PATCH] fix: get mspconfig checksum from msp config itself --- pyomnilogic_local/models/mspconfig.py | 1 + pyomnilogic_local/omnilogic.py | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pyomnilogic_local/models/mspconfig.py b/pyomnilogic_local/models/mspconfig.py index 94032c8..42547b9 100644 --- a/pyomnilogic_local/models/mspconfig.py +++ b/pyomnilogic_local/models/mspconfig.py @@ -432,6 +432,7 @@ class MSPConfig(BaseModel): backyard: MSPBackyard = Field(alias="Backyard") groups: list[MSPGroup] | None = None schedules: list[MSPSchedule] | None = None + checksum: int = Field(alias="CHECKSUM") def __init__(self, **data: Any) -> None: # Extract groups from the Groups container if present diff --git a/pyomnilogic_local/omnilogic.py b/pyomnilogic_local/omnilogic.py index ec399a2..ffec182 100644 --- a/pyomnilogic_local/omnilogic.py +++ b/pyomnilogic_local/omnilogic.py @@ -47,7 +47,6 @@ class OmniLogic: _api: OmniLogicAPI | OmniLogicMockAPI _mspconfig_last_updated: float = 0.0 _telemetry_last_updated: float = 0.0 - _mspconfig_checksum: int = 0 _telemetry_dirty: bool = True _refresh_lock: asyncio.Lock # This is the minimum supported MSP version for full functionality @@ -129,7 +128,7 @@ async def refresh( update_mspconfig = False if force_mspconfig: update_mspconfig = True - if self.telemetry.backyard.config_checksum != self._mspconfig_checksum: + if not hasattr(self, "mspconfig") or self.telemetry.backyard.config_checksum != self.mspconfig.checksum: update_mspconfig = True if ( @@ -149,7 +148,6 @@ async def refresh( if update_mspconfig: self.mspconfig = await self._api.async_get_mspconfig() self._mspconfig_last_updated = time.time() - self._mspconfig_checksum = self.telemetry.backyard.config_checksum if update_mspconfig or update_telemetry: self._update_equipment()