mirror of
https://github.com/python-kasa/python-kasa.git
synced 2024-12-23 03:33:35 +00:00
Add support for firmware module v1 (#821)
The v1 of firmware does not support changing the auto update setting, this makes it so that it isn't requested in that case.
This commit is contained in:
parent
33be568897
commit
063518b7db
@ -48,16 +48,17 @@ class Firmware(SmartModule):
|
|||||||
|
|
||||||
def __init__(self, device: "SmartDevice", module: str):
|
def __init__(self, device: "SmartDevice", module: str):
|
||||||
super().__init__(device, module)
|
super().__init__(device, module)
|
||||||
self._add_feature(
|
if self.supported_version > 1:
|
||||||
Feature(
|
self._add_feature(
|
||||||
device,
|
Feature(
|
||||||
"Auto update enabled",
|
device,
|
||||||
container=self,
|
"Auto update enabled",
|
||||||
attribute_getter="auto_update_enabled",
|
container=self,
|
||||||
attribute_setter="set_auto_update_enabled",
|
attribute_getter="auto_update_enabled",
|
||||||
type=FeatureType.Switch,
|
attribute_setter="set_auto_update_enabled",
|
||||||
|
type=FeatureType.Switch,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
self._add_feature(
|
self._add_feature(
|
||||||
Feature(
|
Feature(
|
||||||
device,
|
device,
|
||||||
@ -70,12 +71,17 @@ class Firmware(SmartModule):
|
|||||||
|
|
||||||
def query(self) -> Dict:
|
def query(self) -> Dict:
|
||||||
"""Query to execute during the update cycle."""
|
"""Query to execute during the update cycle."""
|
||||||
return {"get_auto_update_info": None, "get_latest_fw": None}
|
req = {
|
||||||
|
"get_latest_fw": None,
|
||||||
|
}
|
||||||
|
if self.supported_version > 1:
|
||||||
|
req["get_auto_update_info"] = None
|
||||||
|
return req
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def latest_firmware(self):
|
def latest_firmware(self):
|
||||||
"""Return latest firmware information."""
|
"""Return latest firmware information."""
|
||||||
fw = self.data["get_latest_fw"]
|
fw = self.data.get("get_latest_fw") or self.data
|
||||||
if isinstance(fw, SmartErrorCode):
|
if isinstance(fw, SmartErrorCode):
|
||||||
# Error in response, probably disconnected from the cloud.
|
# Error in response, probably disconnected from the cloud.
|
||||||
return UpdateInfo(type=0, need_to_upgrade=False)
|
return UpdateInfo(type=0, need_to_upgrade=False)
|
||||||
@ -98,7 +104,10 @@ class Firmware(SmartModule):
|
|||||||
@property
|
@property
|
||||||
def auto_update_enabled(self):
|
def auto_update_enabled(self):
|
||||||
"""Return True if autoupdate is enabled."""
|
"""Return True if autoupdate is enabled."""
|
||||||
return self.data["get_auto_update_info"]["enable"]
|
return (
|
||||||
|
"get_auto_update_info" in self.data
|
||||||
|
and self.data["get_auto_update_info"]["enable"]
|
||||||
|
)
|
||||||
|
|
||||||
async def set_auto_update_enabled(self, enabled: bool):
|
async def set_auto_update_enabled(self, enabled: bool):
|
||||||
"""Change autoupdate setting."""
|
"""Change autoupdate setting."""
|
||||||
|
Loading…
Reference in New Issue
Block a user