mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-01-10 14:57:07 +00:00
Do not request unsupported modules after the initial update (#298)
* Do not request unsupported modules after the initial update * debugify logging
This commit is contained in:
parent
8c7b1b4a68
commit
3a7836cd33
@ -1,5 +1,6 @@
|
|||||||
"""Base class for all module implementations."""
|
"""Base class for all module implementations."""
|
||||||
import collections
|
import collections
|
||||||
|
import logging
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
@ -7,6 +8,9 @@ if TYPE_CHECKING:
|
|||||||
from kasa import SmartDevice
|
from kasa import SmartDevice
|
||||||
|
|
||||||
|
|
||||||
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
# TODO: This is used for query construcing
|
# TODO: This is used for query construcing
|
||||||
def merge(d, u):
|
def merge(d, u):
|
||||||
"""Update dict recursively."""
|
"""Update dict recursively."""
|
||||||
@ -45,6 +49,10 @@ class Module(ABC):
|
|||||||
@property
|
@property
|
||||||
def is_supported(self) -> bool:
|
def is_supported(self) -> bool:
|
||||||
"""Return whether the module is supported by the device."""
|
"""Return whether the module is supported by the device."""
|
||||||
|
if self._module not in self._device._last_update:
|
||||||
|
_LOGGER.debug("Initial update, so consider supported: %s", self._module)
|
||||||
|
return True
|
||||||
|
|
||||||
return "err_code" not in self.data
|
return "err_code" not in self.data
|
||||||
|
|
||||||
def call(self, method, params=None):
|
def call(self, method, params=None):
|
||||||
|
@ -327,6 +327,9 @@ class SmartDevice:
|
|||||||
self.add_module("emeter", Emeter(self, self.emeter_type))
|
self.add_module("emeter", Emeter(self, self.emeter_type))
|
||||||
|
|
||||||
for module in self.modules.values():
|
for module in self.modules.values():
|
||||||
|
if not module.is_supported:
|
||||||
|
_LOGGER.debug("Module %s not supported, skipping" % module)
|
||||||
|
continue
|
||||||
q = module.query()
|
q = module.query()
|
||||||
_LOGGER.debug("Adding query for %s: %s", module, q)
|
_LOGGER.debug("Adding query for %s: %s", module, q)
|
||||||
req = merge(req, module.query())
|
req = merge(req, module.query())
|
||||||
|
Loading…
Reference in New Issue
Block a user