diff --git a/pyomnilogic_local/models/mspconfig.py b/pyomnilogic_local/models/mspconfig.py index c8abf62..9a96997 100644 --- a/pyomnilogic_local/models/mspconfig.py +++ b/pyomnilogic_local/models/mspconfig.py @@ -67,13 +67,13 @@ class MSPSystem(BaseModel): class MSPSensor(OmniBase): omni_type: OmniType = OmniType.SENSOR - type: SensorType = Field(alias="Type") - units: SensorUnits = Field(alias="Units") + type: SensorType | str = Field(alias="Type") + units: SensorUnits | str = Field(alias="Units") class MSPFilter(OmniBase): omni_type: OmniType = OmniType.FILTER - type: FilterType = Field(alias="Filter-Type") + type: FilterType | str = Field(alias="Filter-Type") max_percent: int = Field(alias="Max-Pump-Speed") min_percent: int = Field(alias="Min-Pump-Speed") max_rpm: int = Field(alias="Max-Pump-RPM") @@ -87,8 +87,8 @@ class MSPFilter(OmniBase): class MSPPump(OmniBase): omni_type: OmniType = OmniType.PUMP - type: PumpType = Field(alias="Type") - function: PumpFunction = Field(alias="Function") + type: PumpType | str = Field(alias="Type") + function: PumpFunction | str = Field(alias="Function") max_percent: int = Field(alias="Max-Pump-Speed") min_percent: int = Field(alias="Min-Pump-Speed") max_rpm: int = Field(alias="Max-Pump-RPM") @@ -102,14 +102,14 @@ class MSPPump(OmniBase): class MSPRelay(OmniBase): omni_type: OmniType = OmniType.RELAY - type: RelayType = Field(alias="Type") - function: RelayFunction = Field(alias="Function") + type: RelayType | str = Field(alias="Type") + function: RelayFunction | str = Field(alias="Function") class MSPHeaterEquip(OmniBase): omni_type: OmniType = OmniType.HEATER_EQUIP type: Literal["PET_HEATER"] = Field(alias="Type") - heater_type: HeaterType = Field(alias="Heater-Type") + heater_type: HeaterType | str = Field(alias="Heater-Type") enabled: Literal["yes", "no"] = Field(alias="Enabled") min_filter_speed: int = Field(alias="Min-Speed-For-Operation") sensor_id: int = Field(alias="Sensor-System-Id") @@ -139,7 +139,7 @@ def __init__(self, **data: Any) -> None: class MSPColorLogicLight(OmniBase): omni_type: OmniType = OmniType.CL_LIGHT - type: ColorLogicLightType = Field(alias="Type") + type: ColorLogicLightType | str = Field(alias="Type") v2_active: Literal["yes", "no"] = Field(alias="V2-Active") @@ -147,7 +147,7 @@ class MSPBoW(OmniBase): _sub_devices = {"filter", "relay", "heater", "sensor", "colorlogic_light"} omni_type: OmniType = OmniType.BOW - type: BodyOfWaterType = Field(alias="Type") + type: BodyOfWaterType | str = Field(alias="Type") filter: list[MSPFilter] | None = Field(alias="Filter") relay: list[MSPRelay] | None = Field(alias="Relay") heater: MSPVirtualHeater | None = Field(alias="Heater") diff --git a/pyomnilogic_local/models/telemetry.py b/pyomnilogic_local/models/telemetry.py index c94f38b..f1b0d29 100644 --- a/pyomnilogic_local/models/telemetry.py +++ b/pyomnilogic_local/models/telemetry.py @@ -45,7 +45,7 @@ class TelemetryBackyard(BaseModel): system_id: int = Field(alias="@systemId") status_version: int = Field(alias="@statusVersion") air_temp: int = Field(alias="@airTemp") - state: BackyardState = Field(alias="@state") + state: BackyardState | int = Field(alias="@state") config_checksum: int = Field(alias="@ConfigChksum") msp_version: str = Field(alias="@mspVersion") @@ -68,27 +68,27 @@ class TelemetryChlorinator(BaseModel): sc_mode: int = Field(alias="@scMode") operating_state: int = Field(alias="@operatingState") timed_percent: int = Field(alias="@Timed-Percent") - operating_mode: ChlorinatorOperatingMode = Field(alias="@operatingMode") + operating_mode: ChlorinatorOperatingMode | int = Field(alias="@operatingMode") enable: bool = Field(alias="@enable") class TelemetryColorLogicLight(BaseModel): omni_type: OmniType = OmniType.CL_LIGHT system_id: int = Field(alias="@systemId") - state: ColorLogicPowerState = Field(alias="@lightState") - show: ColorLogicShow = Field(alias="@currentShow") - speed: ColorLogicSpeed = Field(alias="@speed") - brightness: ColorLogicBrightness = Field(alias="@brightness") + state: ColorLogicPowerState | int = Field(alias="@lightState") + show: ColorLogicShow | int = Field(alias="@currentShow") + speed: ColorLogicSpeed | int = Field(alias="@speed") + brightness: ColorLogicBrightness | int = Field(alias="@brightness") special_effect: int = Field(alias="@specialEffect") class TelemetryFilter(BaseModel): omni_type: OmniType = OmniType.FILTER system_id: int = Field(alias="@systemId") - state: FilterState = Field(alias="@filterState") + state: FilterState | int = Field(alias="@filterState") speed: int = Field(alias="@filterSpeed") - valve_position: FilterValvePosition = Field(alias="@valvePosition") - why_on: FilterWhyOn = Field(alias="@whyFilterIsOn") + valve_position: FilterValvePosition | int = Field(alias="@valvePosition") + why_on: FilterWhyOn | int = Field(alias="@whyFilterIsOn") reported_speed: int = Field(alias="@reportedFilterSpeed") power: int = Field(alias="@power") last_speed: int = Field(alias="@lastSpeed") @@ -103,7 +103,7 @@ class TelemetryGroup(BaseModel): class TelemetryHeater(BaseModel): omni_type: OmniType = OmniType.HEATER system_id: int = Field(alias="@systemId") - state: HeaterState = Field(alias="@heaterState") + state: HeaterState | int = Field(alias="@heaterState") temp: int = Field(alias="@temp") enabled: bool = Field(alias="@enable") priority: int = Field(alias="@priority") @@ -113,7 +113,7 @@ class TelemetryHeater(BaseModel): class TelemetryPump(BaseModel): omni_type: OmniType = OmniType.PUMP system_id: int = Field(alias="@systemId") - state: PumpState = Field(alias="@pumpState") + state: PumpState | int = Field(alias="@pumpState") speed: int = Field(alias="@pummpSpeed") last_speed: int = Field(alias="@lastSpeed") why_on: int = Field(alias="@whyOn") @@ -122,14 +122,14 @@ class TelemetryPump(BaseModel): class TelemetryRelay(BaseModel): omni_type: OmniType = OmniType.RELAY system_id: int = Field(alias="@systemId") - state: RelayState = Field(alias="@relayState") + state: RelayState | int = Field(alias="@relayState") why_on: int = Field(alias="@whyOn") class TelemetryValveActuator(BaseModel): omni_type: OmniType = OmniType.VALVE_ACTUATOR system_id: int = Field(alias="@systemId") - state: ValveActuatorState = Field(alias="@valveActuatorState") + state: ValveActuatorState | int = Field(alias="@valveActuatorState") why_on: int = Field(alias="@whyOn") @@ -139,7 +139,7 @@ class TelemetryVirtualHeater(BaseModel): current_set_point: int = Field(alias="@Current-Set-Point") enabled: bool = Field(alias="@enable") solar_set_point: int = Field(alias="@SolarSetPoint") - mode: HeaterMode = Field(alias="@Mode") + mode: HeaterMode | int = Field(alias="@Mode") silent_mode: int = Field(alias="@SilentMode") why_on: int = Field(alias="@whyHeaterIsOn")