Add some missing sensors for Shelly integration (#39651)

This commit is contained in:
Maciej Bieniek 2020-09-04 16:42:57 +02:00 committed by GitHub
parent a096c20930
commit 0b7576b634
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)