[switch.tplink] Don't thrown an exception if a device doesn't support current_consumption.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Fabio Manganiello 2024-10-14 18:07:21 +02:00
parent f364be17e3
commit f032957d0b
Signed by: blacklight
GPG key ID: D90FBA7F76362774

View file

@ -185,10 +185,20 @@ class SwitchTplinkPlugin(RunnablePlugin, SwitchEntityManager):
device = self._get_device(device)
return self._set(device, not device.is_on)
@staticmethod
def _serialize(device: SmartDevice) -> dict:
def _current_consumption(self, device: SmartDevice) -> Optional[float]:
try:
return device.current_consumption()
except SmartDeviceException as e:
self.logger.warning(
'Could not retrieve current consumption for device %s: %s',
device.host,
e,
)
return None
def _serialize(self, device: SmartDevice) -> dict:
return {
'current_consumption': device.current_consumption(),
'current_consumption': self._current_consumption(device),
'id': device.host,
'ip': device.host,
'host': device.host,