Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion homeassistant/components/broadlink/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,12 @@
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),
}
Expand Down
7 changes: 7 additions & 0 deletions homeassistant/components/deconz/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@
}

STATE_CLASS = {
Humidity: STATE_CLASS_MEASUREMENT,
Pressure: STATE_CLASS_MEASUREMENT,
Temperature: STATE_CLASS_MEASUREMENT,
}

Expand Down Expand Up @@ -300,6 +302,11 @@ def device_class(self):
"""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."""
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/hue/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
20 changes: 16 additions & 4 deletions homeassistant/components/tasmota/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@
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"},
Expand All @@ -64,7 +67,10 @@
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"},
Expand All @@ -81,8 +87,14 @@
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},
Expand Down
10 changes: 8 additions & 2 deletions homeassistant/components/xiaomi_miio/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,16 @@ class SensorType:
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
Expand Down
3 changes: 3 additions & 0 deletions homeassistant/components/zha/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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


Expand Down Expand Up @@ -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


Expand Down
4 changes: 3 additions & 1 deletion homeassistant/components/zwave_js/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,11 @@ def _get_state_class(self) -> str | None:
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

Expand Down