From 5ebfb1f2f300fbdd374b0aaa2a0db41f2420d5b4 Mon Sep 17 00:00:00 2001 From: Felipe Martins Diel Date: Mon, 11 Jan 2021 02:25:50 -0300 Subject: [PATCH] Filter unsupported features and convert sensor data to float --- broadlink/switch.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/broadlink/switch.py b/broadlink/switch.py index 41e2c5b8..f7f23084 100644 --- a/broadlink/switch.py +++ b/broadlink/switch.py @@ -312,6 +312,18 @@ def __init__(self, *args, **kwargs) -> None: device.__init__(self, *args, **kwargs) self.type = "SP4B" + def get_state(self) -> dict: + """Get full state of device.""" + state = super().get_state() + + # Convert sensor data to float. Remove keys if sensors are not supported. + sensor_attrs = ["current", "volt", "power", "totalconsum", "overload"] + for attr in sensor_attrs: + value = state.pop(attr, -1) + if value != -1: + state[attr] = value / 1000 + return state + def _encode(self, flag: int, state: dict) -> bytes: """Encode a message.""" payload = json.dumps(state, separators=(",", ":")).encode()