From 723112db2f6875330af05be00374afe0a6fb11fb Mon Sep 17 00:00:00 2001 From: Teemu Rytilahti Date: Wed, 2 Feb 2022 12:17:13 +0100 Subject: [PATCH] Guard emeter accesses to avoid keyerrors Raise an exception to inform the caller that update() is needed --- kasa/smartdevice.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kasa/smartdevice.py b/kasa/smartdevice.py index 30468c45f..bf43cf174 100755 --- a/kasa/smartdevice.py +++ b/kasa/smartdevice.py @@ -219,6 +219,8 @@ def _verify_emeter(self) -> None: """Raise an exception if there is no emeter.""" if not self.has_emeter: raise SmartDeviceException("Device has no emeter") + if self.emeter_type not in self._last_update: + raise SmartDeviceException("update() required prior accessing emeter") async def _query_helper( self, target: str, cmd: str, arg: Optional[Dict] = None, child_ids=None