Mark battery, humidity and pressure sensors as STATE_CLASS_MEASUREMENT (#50924)
* Mark battery, humidity and pressure sensors as STATE_CLASS_MEASUREMENT * Fix deconz battery sensor
This commit is contained in:
parent
ec4a47d1db
commit
b169a8dbda
7 changed files with 44 additions and 8 deletions
|
@ -28,7 +28,12 @@ SENSOR_TYPES = {
|
|||
STATE_CLASS_MEASUREMENT,
|
||||
),
|
||||
"air_quality": ("Air Quality", None, None, None),
|
||||
"humidity": ("Humidity", PERCENTAGE, DEVICE_CLASS_HUMIDITY, None),
|
||||
"humidity": (
|
||||
"Humidity",
|
||||
PERCENTAGE,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
),
|
||||
"light": ("Light", None, DEVICE_CLASS_ILLUMINANCE, None),
|
||||
"noise": ("Noise", None, None, None),
|
||||
}
|
||||
|
|
|
@ -65,6 +65,8 @@ ICON = {
|
|||
}
|
||||
|
||||
STATE_CLASS = {
|
||||
Humidity: STATE_CLASS_MEASUREMENT,
|
||||
Pressure: STATE_CLASS_MEASUREMENT,
|
||||
Temperature: STATE_CLASS_MEASUREMENT,
|
||||
}
|
||||
|
||||
|
@ -300,6 +302,11 @@ class DeconzBattery(DeconzDevice, SensorEntity):
|
|||
"""Return the class of the sensor."""
|
||||
return DEVICE_CLASS_BATTERY
|
||||
|
||||
@property
|
||||
def state_class(self):
|
||||
"""Return the state class of the sensor."""
|
||||
return STATE_CLASS_MEASUREMENT
|
||||
|
||||
@property
|
||||
def unit_of_measurement(self):
|
||||
"""Return the unit of measurement of this entity."""
|
||||
|
|
|
@ -93,6 +93,7 @@ class HueBattery(GenericHueSensor, SensorEntity):
|
|||
"""Battery class for when a batt-powered device is only represented as an event."""
|
||||
|
||||
_attr_device_class = DEVICE_CLASS_BATTERY
|
||||
_attr_state_class = STATE_CLASS_MEASUREMENT
|
||||
_attr_unit_of_measurement = PERCENTAGE
|
||||
|
||||
@property
|
||||
|
|
|
@ -53,7 +53,10 @@ ICON = "icon"
|
|||
SENSOR_DEVICE_CLASS_ICON_MAP = {
|
||||
hc.SENSOR_AMBIENT: {DEVICE_CLASS: DEVICE_CLASS_ILLUMINANCE},
|
||||
hc.SENSOR_APPARENT_POWERUSAGE: {DEVICE_CLASS: DEVICE_CLASS_POWER},
|
||||
hc.SENSOR_BATTERY: {DEVICE_CLASS: DEVICE_CLASS_BATTERY},
|
||||
hc.SENSOR_BATTERY: {
|
||||
DEVICE_CLASS: DEVICE_CLASS_BATTERY,
|
||||
STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
hc.SENSOR_CCT: {ICON: "mdi:temperature-kelvin"},
|
||||
hc.SENSOR_CO2: {DEVICE_CLASS: DEVICE_CLASS_CO2},
|
||||
hc.SENSOR_COLOR_BLUE: {ICON: "mdi:palette"},
|
||||
|
@ -64,7 +67,10 @@ SENSOR_DEVICE_CLASS_ICON_MAP = {
|
|||
hc.SENSOR_DISTANCE: {ICON: "mdi:leak"},
|
||||
hc.SENSOR_ECO2: {ICON: "mdi:molecule-co2"},
|
||||
hc.SENSOR_FREQUENCY: {ICON: "mdi:current-ac"},
|
||||
hc.SENSOR_HUMIDITY: {DEVICE_CLASS: DEVICE_CLASS_HUMIDITY},
|
||||
hc.SENSOR_HUMIDITY: {
|
||||
DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||
STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
hc.SENSOR_ILLUMINANCE: {DEVICE_CLASS: DEVICE_CLASS_ILLUMINANCE},
|
||||
hc.SENSOR_STATUS_IP: {ICON: "mdi:ip-network"},
|
||||
hc.SENSOR_STATUS_LINK_COUNT: {ICON: "mdi:counter"},
|
||||
|
@ -81,8 +87,14 @@ SENSOR_DEVICE_CLASS_ICON_MAP = {
|
|||
hc.SENSOR_PM2_5: {ICON: "mdi:air-filter"},
|
||||
hc.SENSOR_POWERFACTOR: {ICON: "mdi:alpha-f-circle-outline"},
|
||||
hc.SENSOR_POWERUSAGE: {DEVICE_CLASS: DEVICE_CLASS_POWER},
|
||||
hc.SENSOR_PRESSURE: {DEVICE_CLASS: DEVICE_CLASS_PRESSURE},
|
||||
hc.SENSOR_PRESSUREATSEALEVEL: {DEVICE_CLASS: DEVICE_CLASS_PRESSURE},
|
||||
hc.SENSOR_PRESSURE: {
|
||||
DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
||||
STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
hc.SENSOR_PRESSUREATSEALEVEL: {
|
||||
DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
||||
STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
hc.SENSOR_PROXIMITY: {ICON: "mdi:ruler"},
|
||||
hc.SENSOR_REACTIVE_POWERUSAGE: {DEVICE_CLASS: DEVICE_CLASS_POWER},
|
||||
hc.SENSOR_STATUS_LAST_RESTART_TIME: {DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP},
|
||||
|
|
|
@ -81,10 +81,16 @@ GATEWAY_SENSOR_TYPES = {
|
|||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
),
|
||||
"humidity": SensorType(
|
||||
unit=PERCENTAGE, icon=None, device_class=DEVICE_CLASS_HUMIDITY
|
||||
unit=PERCENTAGE,
|
||||
icon=None,
|
||||
device_class=DEVICE_CLASS_HUMIDITY,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
),
|
||||
"pressure": SensorType(
|
||||
unit=PRESSURE_HPA, icon=None, device_class=DEVICE_CLASS_PRESSURE
|
||||
unit=PRESSURE_HPA,
|
||||
icon=None,
|
||||
device_class=DEVICE_CLASS_PRESSURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
),
|
||||
"load_power": SensorType(
|
||||
unit=POWER_WATT, icon=None, device_class=DEVICE_CLASS_POWER
|
||||
|
|
|
@ -179,6 +179,7 @@ class Battery(Sensor):
|
|||
|
||||
SENSOR_ATTR = "battery_percentage_remaining"
|
||||
_device_class = DEVICE_CLASS_BATTERY
|
||||
_state_class = STATE_CLASS_MEASUREMENT
|
||||
_unit = PERCENTAGE
|
||||
|
||||
@staticmethod
|
||||
|
@ -241,6 +242,7 @@ class Humidity(Sensor):
|
|||
SENSOR_ATTR = "measured_value"
|
||||
_device_class = DEVICE_CLASS_HUMIDITY
|
||||
_divisor = 100
|
||||
_state_class = STATE_CLASS_MEASUREMENT
|
||||
_unit = PERCENTAGE
|
||||
|
||||
|
||||
|
@ -282,6 +284,7 @@ class Pressure(Sensor):
|
|||
SENSOR_ATTR = "measured_value"
|
||||
_device_class = DEVICE_CLASS_PRESSURE
|
||||
_decimals = 0
|
||||
_state_class = STATE_CLASS_MEASUREMENT
|
||||
_unit = PRESSURE_HPA
|
||||
|
||||
|
||||
|
|
|
@ -122,9 +122,11 @@ class ZwaveSensorBase(ZWaveBaseEntity, SensorEntity):
|
|||
This should be run once during initialization so we don't have to calculate
|
||||
this value on every state update.
|
||||
"""
|
||||
if self.info.primary_value.command_class == CommandClass.BATTERY:
|
||||
return STATE_CLASS_MEASUREMENT
|
||||
if isinstance(self.info.primary_value.property_, str):
|
||||
property_lower = self.info.primary_value.property_.lower()
|
||||
if "temperature" in property_lower:
|
||||
if "humidity" in property_lower or "temperature" in property_lower:
|
||||
return STATE_CLASS_MEASUREMENT
|
||||
return None
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue