diff --git a/kasa/smart/smartdevice.py b/kasa/smart/smartdevice.py index 176efb710..48f50c0e8 100644 --- a/kasa/smart/smartdevice.py +++ b/kasa/smart/smartdevice.py @@ -167,7 +167,14 @@ def _update_children_info(self) -> None: self._last_update, "get_child_device_list", {} ): for info in child_info["child_device_list"]: - self._children[info["device_id"]]._update_internal_state(info) + child_id = info["device_id"] + if child_id not in self._children: + _LOGGER.debug( + "Skipping child update for %s, probably unsupported device", + child_id, + ) + continue + self._children[child_id]._update_internal_state(info) def _update_internal_info(self, info_resp: dict) -> None: """Update the internal device info.""" diff --git a/kasa/smartcam/smartcamdevice.py b/kasa/smartcam/smartcamdevice.py index 0e49be264..7c7977fd1 100644 --- a/kasa/smartcam/smartcamdevice.py +++ b/kasa/smartcam/smartcamdevice.py @@ -68,7 +68,14 @@ def _update_children_info(self) -> None: self._last_update, "getChildDeviceList", {} ): for info in child_info["child_device_list"]: - self._children[info["device_id"]]._update_internal_state(info) + child_id = info["device_id"] + if child_id not in self._children: + _LOGGER.debug( + "Skipping child update for %s, probably unsupported device", + child_id, + ) + continue + self._children[child_id]._update_internal_state(info) async def _initialize_smart_child( self, info: dict, child_components: dict