diff --git a/kasa/smart/modules/firmware.py b/kasa/smart/modules/firmware.py index 16704ef0..b1302b37 100644 --- a/kasa/smart/modules/firmware.py +++ b/kasa/smart/modules/firmware.py @@ -1,6 +1,7 @@ """Implementation of firmware module.""" from __future__ import annotations +import asyncio import asyncio import logging @@ -16,6 +17,11 @@ from ...exceptions import SmartErrorCode from ...feature import Feature from ..smartmodule import SmartModule +# When support for cpython older than 3.11 is dropped +# async_timeout can be replaced with asyncio.timeout +from async_timeout import timeout as asyncio_timeout + + if TYPE_CHECKING: from ..smartdevice import SmartDevice @@ -99,6 +105,12 @@ class Firmware(SmartModule): category=Feature.Category.Info, ) ) + self._add_feature( + Feature(device, "Current firmware version", container=self, attribute_getter="current_firmware") + ) + self._add_feature( + Feature(device, "Available firmware version", container=self, attribute_getter="latest_firmware") + ) def query(self) -> dict: """Query to execute during the update cycle.""" @@ -112,6 +124,7 @@ class Firmware(SmartModule): """Return the current firmware version.""" return self._device.hw_info["sw_ver"] + @property def latest_firmware(self) -> str: """Return the latest firmware version."""