From c434ad6af57d758e2c36cd7f31eb2d4c6222a720 Mon Sep 17 00:00:00 2001 From: zhumuht <40521367+zhumuht@users.noreply.github.com> Date: Thu, 11 Oct 2018 00:56:00 +0800 Subject: [PATCH] fix_broadlink_sp2_show_energy (#17271) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix_broadlink_sp2_show_energy Signed-off-by: 朱海涛 * fix_broadlink_sp2_show_energy Signed-off-by: 朱海涛 * fix_broadlink_sp2_show_energy Signed-off-by: 朱海涛 * fix_broadlink_sp2_show_energy Signed-off-by: 朱海涛 * fix_broadlink_sp2_show_energy Signed-off-by: 朱海涛 --- homeassistant/components/switch/broadlink.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/homeassistant/components/switch/broadlink.py b/homeassistant/components/switch/broadlink.py index 0562292acec..685402611a0 100644 --- a/homeassistant/components/switch/broadlink.py +++ b/homeassistant/components/switch/broadlink.py @@ -260,6 +260,7 @@ class BroadlinkSP1Switch(BroadlinkRMSwitch): super().__init__(friendly_name, friendly_name, device, None, None) self._command_on = 1 self._command_off = 0 + self._load_power = None def _sendpacket(self, packet, retry=2): """Send packet to device.""" @@ -288,6 +289,14 @@ class BroadlinkSP2Switch(BroadlinkSP1Switch): """Return the polling state.""" return True + @property + def current_power_w(self): + """Return the current power usage in Watt.""" + try: + return round(self._load_power, 2) + except (ValueError, TypeError): + return None + def update(self): """Synchronize state with switch.""" self._update() @@ -296,6 +305,7 @@ class BroadlinkSP2Switch(BroadlinkSP1Switch): """Update the state of the device.""" try: state = self._device.check_power() + load_power = self._device.get_energy() except (socket.timeout, ValueError) as error: if retry < 1: _LOGGER.error(error) @@ -306,6 +316,7 @@ class BroadlinkSP2Switch(BroadlinkSP1Switch): if state is None and retry > 0: return self._update(retry-1) self._state = state + self._load_power = load_power class BroadlinkMP1Slot(BroadlinkRMSwitch):