From 0b7576b63475de072f3b0dfcb20bf5649cc97938 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Fri, 4 Sep 2020 16:42:57 +0200 Subject: [PATCH] Add some missing sensors for Shelly integration (#39651) --- homeassistant/components/shelly/sensor.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/homeassistant/components/shelly/sensor.py b/homeassistant/components/shelly/sensor.py index d66076d1754..f10e0864061 100644 --- a/homeassistant/components/shelly/sensor.py +++ b/homeassistant/components/shelly/sensor.py @@ -4,6 +4,7 @@ import aioshelly from homeassistant.components import sensor from homeassistant.const import ( CONCENTRATION_PARTS_PER_MILLION, + DEGREE, ELECTRICAL_CURRENT_AMPERE, ENERGY_KILO_WATT_HOUR, POWER_WATT, @@ -26,8 +27,11 @@ SENSORS = { "energyReturned": [ENERGY_KILO_WATT_HOUR, sensor.DEVICE_CLASS_ENERGY], "extTemp": [None, sensor.DEVICE_CLASS_TEMPERATURE], "humidity": [UNIT_PERCENTAGE, sensor.DEVICE_CLASS_HUMIDITY], + "luminosity": ["lx", sensor.DEVICE_CLASS_ILLUMINANCE], "overpowerValue": [POWER_WATT, sensor.DEVICE_CLASS_POWER], "power": [POWER_WATT, sensor.DEVICE_CLASS_POWER], + "powerFactor": [UNIT_PERCENTAGE, sensor.DEVICE_CLASS_POWER_FACTOR], + "tilt": [DEGREE, None], "voltage": [VOLT, sensor.DEVICE_CLASS_VOLTAGE], } @@ -93,6 +97,8 @@ class ShellySensor(ShellyBlockEntity, Entity): if value is None: return None + if self.attribute in ["luminosity", "tilt"]: + return round(value) if self.attribute in [ "deviceTemp", "extTemp", @@ -101,6 +107,8 @@ class ShellySensor(ShellyBlockEntity, Entity): "power", ]: return round(value, 1) + if self.attribute == "powerFactor": + return round(value * 100, 1) # Energy unit change from Wmin or Wh to kWh if self.info.get(aioshelly.BLOCK_VALUE_UNIT) == "Wmin": return round(value / 60 / 1000, 2)