Add state class to Nettigo Air Monitor sensors (#50959)
This commit is contained in:
parent
d5a9419fb7
commit
41a940f644
4 changed files with 38 additions and 3 deletions
|
@ -4,6 +4,7 @@ from __future__ import annotations
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
|
from homeassistant.components.sensor import ATTR_STATE_CLASS, STATE_CLASS_MEASUREMENT
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_DEVICE_CLASS,
|
ATTR_DEVICE_CLASS,
|
||||||
ATTR_ICON,
|
ATTR_ICON,
|
||||||
|
@ -59,6 +60,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_BME280_PRESSURE: {
|
ATTR_BME280_PRESSURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} BME280 Pressure",
|
ATTR_LABEL: f"{DEFAULT_NAME} BME280 Pressure",
|
||||||
|
@ -66,6 +68,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_BME280_TEMPERATURE: {
|
ATTR_BME280_TEMPERATURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} BME280 Temperature",
|
ATTR_LABEL: f"{DEFAULT_NAME} BME280 Temperature",
|
||||||
|
@ -73,6 +76,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_BMP280_PRESSURE: {
|
ATTR_BMP280_PRESSURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} BMP280 Pressure",
|
ATTR_LABEL: f"{DEFAULT_NAME} BMP280 Pressure",
|
||||||
|
@ -80,6 +84,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_BMP280_TEMPERATURE: {
|
ATTR_BMP280_TEMPERATURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} BMP280 Temperature",
|
ATTR_LABEL: f"{DEFAULT_NAME} BMP280 Temperature",
|
||||||
|
@ -87,6 +92,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_HECA_HUMIDITY: {
|
ATTR_HECA_HUMIDITY: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} HECA Humidity",
|
ATTR_LABEL: f"{DEFAULT_NAME} HECA Humidity",
|
||||||
|
@ -94,6 +100,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_HECA_TEMPERATURE: {
|
ATTR_HECA_TEMPERATURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} HECA Temperature",
|
ATTR_LABEL: f"{DEFAULT_NAME} HECA Temperature",
|
||||||
|
@ -101,6 +108,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_SHT3X_HUMIDITY: {
|
ATTR_SHT3X_HUMIDITY: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} SHT3X Humidity",
|
ATTR_LABEL: f"{DEFAULT_NAME} SHT3X Humidity",
|
||||||
|
@ -108,6 +116,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_SHT3X_TEMPERATURE: {
|
ATTR_SHT3X_TEMPERATURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} SHT3X Temperature",
|
ATTR_LABEL: f"{DEFAULT_NAME} SHT3X Temperature",
|
||||||
|
@ -115,6 +124,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_SPS30_P0: {
|
ATTR_SPS30_P0: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} SPS30 Particulate Matter 1.0",
|
ATTR_LABEL: f"{DEFAULT_NAME} SPS30 Particulate Matter 1.0",
|
||||||
|
@ -122,6 +132,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: None,
|
ATTR_DEVICE_CLASS: None,
|
||||||
ATTR_ICON: "mdi:blur",
|
ATTR_ICON: "mdi:blur",
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_SPS30_P4: {
|
ATTR_SPS30_P4: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} SPS30 Particulate Matter 4.0",
|
ATTR_LABEL: f"{DEFAULT_NAME} SPS30 Particulate Matter 4.0",
|
||||||
|
@ -129,6 +140,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: None,
|
ATTR_DEVICE_CLASS: None,
|
||||||
ATTR_ICON: "mdi:blur",
|
ATTR_ICON: "mdi:blur",
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_DHT22_HUMIDITY: {
|
ATTR_DHT22_HUMIDITY: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} DHT22 Humidity",
|
ATTR_LABEL: f"{DEFAULT_NAME} DHT22 Humidity",
|
||||||
|
@ -136,6 +148,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_DHT22_TEMPERATURE: {
|
ATTR_DHT22_TEMPERATURE: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} DHT22 Temperature",
|
ATTR_LABEL: f"{DEFAULT_NAME} DHT22 Temperature",
|
||||||
|
@ -143,6 +156,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: True,
|
ATTR_ENABLED: True,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_SIGNAL_STRENGTH: {
|
ATTR_SIGNAL_STRENGTH: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} Signal Strength",
|
ATTR_LABEL: f"{DEFAULT_NAME} Signal Strength",
|
||||||
|
@ -150,6 +164,7 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_SIGNAL_STRENGTH,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: False,
|
ATTR_ENABLED: False,
|
||||||
|
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||||
},
|
},
|
||||||
ATTR_UPTIME: {
|
ATTR_UPTIME: {
|
||||||
ATTR_LABEL: f"{DEFAULT_NAME} Uptime",
|
ATTR_LABEL: f"{DEFAULT_NAME} Uptime",
|
||||||
|
@ -157,5 +172,6 @@ SENSORS: Final[dict[str, SensorDescription]] = {
|
||||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
|
||||||
ATTR_ICON: None,
|
ATTR_ICON: None,
|
||||||
ATTR_ENABLED: False,
|
ATTR_ENABLED: False,
|
||||||
|
ATTR_STATE_CLASS: None,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,3 +12,4 @@ class SensorDescription(TypedDict):
|
||||||
device_class: str | None
|
device_class: str | None
|
||||||
icon: str | None
|
icon: str | None
|
||||||
enabled: bool
|
enabled: bool
|
||||||
|
state_class: str | None
|
||||||
|
|
|
@ -4,7 +4,7 @@ from __future__ import annotations
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.components.sensor import SensorEntity
|
from homeassistant.components.sensor import ATTR_STATE_CLASS, SensorEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import ATTR_DEVICE_CLASS, ATTR_ICON
|
from homeassistant.const import ATTR_DEVICE_CLASS, ATTR_ICON
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
@ -45,7 +45,8 @@ class NAMSensor(CoordinatorEntity, SensorEntity):
|
||||||
"""Initialize."""
|
"""Initialize."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator)
|
||||||
self.sensor_type = sensor_type
|
self.sensor_type = sensor_type
|
||||||
self._description = SENSORS[self.sensor_type]
|
self._description = SENSORS[sensor_type]
|
||||||
|
self._attr_state_class = SENSORS[sensor_type][ATTR_STATE_CLASS]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
|
|
|
@ -5,7 +5,11 @@ from unittest.mock import patch
|
||||||
from nettigo_air_monitor import ApiError
|
from nettigo_air_monitor import ApiError
|
||||||
|
|
||||||
from homeassistant.components.nam.const import DOMAIN
|
from homeassistant.components.nam.const import DOMAIN
|
||||||
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
from homeassistant.components.sensor import (
|
||||||
|
ATTR_STATE_CLASS,
|
||||||
|
DOMAIN as SENSOR_DOMAIN,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_DEVICE_CLASS,
|
ATTR_DEVICE_CLASS,
|
||||||
ATTR_ENTITY_ID,
|
ATTR_ENTITY_ID,
|
||||||
|
@ -57,6 +61,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "45.7"
|
assert state.state == "45.7"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_humidity")
|
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_humidity")
|
||||||
|
@ -67,6 +72,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "7.6"
|
assert state.state == "7.6"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_temperature")
|
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_temperature")
|
||||||
|
@ -77,6 +83,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "1011"
|
assert state.state == "1011"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_PRESSURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_PRESSURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PRESSURE_HPA
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PRESSURE_HPA
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_pressure")
|
entry = registry.async_get("sensor.nettigo_air_monitor_bme280_pressure")
|
||||||
|
@ -87,6 +94,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "5.6"
|
assert state.state == "5.6"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_bmp280_temperature")
|
entry = registry.async_get("sensor.nettigo_air_monitor_bmp280_temperature")
|
||||||
|
@ -97,6 +105,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "1022"
|
assert state.state == "1022"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_PRESSURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_PRESSURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PRESSURE_HPA
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PRESSURE_HPA
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_bmp280_pressure")
|
entry = registry.async_get("sensor.nettigo_air_monitor_bmp280_pressure")
|
||||||
|
@ -107,6 +116,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "34.7"
|
assert state.state == "34.7"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_sht3x_humidity")
|
entry = registry.async_get("sensor.nettigo_air_monitor_sht3x_humidity")
|
||||||
|
@ -117,6 +127,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "6.3"
|
assert state.state == "6.3"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_sht3x_temperature")
|
entry = registry.async_get("sensor.nettigo_air_monitor_sht3x_temperature")
|
||||||
|
@ -127,6 +138,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "46.2"
|
assert state.state == "46.2"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_dht22_humidity")
|
entry = registry.async_get("sensor.nettigo_air_monitor_dht22_humidity")
|
||||||
|
@ -137,6 +149,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "6.3"
|
assert state.state == "6.3"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_dht22_temperature")
|
entry = registry.async_get("sensor.nettigo_air_monitor_dht22_temperature")
|
||||||
|
@ -147,6 +160,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "50.0"
|
assert state.state == "50.0"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_HUMIDITY
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_heca_humidity")
|
entry = registry.async_get("sensor.nettigo_air_monitor_heca_humidity")
|
||||||
|
@ -157,6 +171,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "8.0"
|
assert state.state == "8.0"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TEMPERATURE
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_heca_temperature")
|
entry = registry.async_get("sensor.nettigo_air_monitor_heca_temperature")
|
||||||
|
@ -167,6 +182,7 @@ async def test_sensor(hass):
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "-72"
|
assert state.state == "-72"
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_SIGNAL_STRENGTH
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_SIGNAL_STRENGTH
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) == STATE_CLASS_MEASUREMENT
|
||||||
assert (
|
assert (
|
||||||
state.attributes.get(ATTR_UNIT_OF_MEASUREMENT)
|
state.attributes.get(ATTR_UNIT_OF_MEASUREMENT)
|
||||||
== SIGNAL_STRENGTH_DECIBELS_MILLIWATT
|
== SIGNAL_STRENGTH_DECIBELS_MILLIWATT
|
||||||
|
@ -183,6 +199,7 @@ async def test_sensor(hass):
|
||||||
== (utcnow() - timedelta(seconds=456987)).replace(microsecond=0).isoformat()
|
== (utcnow() - timedelta(seconds=456987)).replace(microsecond=0).isoformat()
|
||||||
)
|
)
|
||||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TIMESTAMP
|
assert state.attributes.get(ATTR_DEVICE_CLASS) == DEVICE_CLASS_TIMESTAMP
|
||||||
|
assert state.attributes.get(ATTR_STATE_CLASS) is None
|
||||||
|
|
||||||
entry = registry.async_get("sensor.nettigo_air_monitor_uptime")
|
entry = registry.async_get("sensor.nettigo_air_monitor_uptime")
|
||||||
assert entry
|
assert entry
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue