diff --git a/kasa/smart/modules/energy.py b/kasa/smart/modules/energy.py index 166f688ea..ab89c3193 100644 --- a/kasa/smart/modules/energy.py +++ b/kasa/smart/modules/energy.py @@ -28,6 +28,12 @@ def current_consumption(self) -> float | None: """Current power in watts.""" if (power := self.energy.get("current_power")) is not None: return power / 1_000 + # Fallback if get_energy_usage does not provide current_power, + # which can happen on some newer devices (e.g. P304M). + elif ( + power := self.data.get("get_current_power").get("current_power") + ) is not None: + return power return None @property @@ -105,3 +111,8 @@ async def get_daily_stats(self, *, year=None, month=None, kwh=True) -> dict: async def get_monthly_stats(self, *, year=None, kwh=True) -> dict: """Return monthly stats for the given year.""" raise KasaException("Device does not support periodic statistics") + + async def _check_supported(self): + """Additional check to see if the module is supported by the device.""" + # Energy module is not supported on P304M parent device + return "device_on" in self._device.sys_info