mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 22:07:10 +00:00
Update Unifi bandwidth sensors (#101598)
* Change bandwidth sensors device class, state class, unit of measurement, icon * Reformat imports * Reformat imports * Revert suggested_unit_of_measurement. Add unit tests.
This commit is contained in:
parent
e4943dd1e6
commit
b79eae2e94
@ -27,10 +27,11 @@ from homeassistant.components.sensor import (
|
|||||||
SensorDeviceClass,
|
SensorDeviceClass,
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
|
SensorStateClass,
|
||||||
UnitOfTemperature,
|
UnitOfTemperature,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import EntityCategory, UnitOfInformation, UnitOfPower
|
from homeassistant.const import EntityCategory, UnitOfDataRate, UnitOfPower
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
@ -133,8 +134,10 @@ class UnifiSensorEntityDescription(
|
|||||||
ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
|
ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
|
||||||
UnifiSensorEntityDescription[Clients, Client](
|
UnifiSensorEntityDescription[Clients, Client](
|
||||||
key="Bandwidth sensor RX",
|
key="Bandwidth sensor RX",
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
device_class=SensorDeviceClass.DATA_RATE,
|
||||||
native_unit_of_measurement=UnitOfInformation.MEGABYTES,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
native_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
|
||||||
|
icon="mdi:upload",
|
||||||
has_entity_name=True,
|
has_entity_name=True,
|
||||||
allowed_fn=lambda controller, _: controller.option_allow_bandwidth_sensors,
|
allowed_fn=lambda controller, _: controller.option_allow_bandwidth_sensors,
|
||||||
api_handler_fn=lambda api: api.clients,
|
api_handler_fn=lambda api: api.clients,
|
||||||
@ -151,8 +154,10 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
|
|||||||
),
|
),
|
||||||
UnifiSensorEntityDescription[Clients, Client](
|
UnifiSensorEntityDescription[Clients, Client](
|
||||||
key="Bandwidth sensor TX",
|
key="Bandwidth sensor TX",
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
device_class=SensorDeviceClass.DATA_RATE,
|
||||||
native_unit_of_measurement=UnitOfInformation.MEGABYTES,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
native_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
|
||||||
|
icon="mdi:download",
|
||||||
has_entity_name=True,
|
has_entity_name=True,
|
||||||
allowed_fn=lambda controller, _: controller.option_allow_bandwidth_sensors,
|
allowed_fn=lambda controller, _: controller.option_allow_bandwidth_sensors,
|
||||||
api_handler_fn=lambda api: api.clients,
|
api_handler_fn=lambda api: api.clients,
|
||||||
|
@ -8,9 +8,11 @@ import pytest
|
|||||||
|
|
||||||
from homeassistant.components.device_tracker import DOMAIN as TRACKER_DOMAIN
|
from homeassistant.components.device_tracker import DOMAIN as TRACKER_DOMAIN
|
||||||
from homeassistant.components.sensor import (
|
from homeassistant.components.sensor import (
|
||||||
|
ATTR_STATE_CLASS,
|
||||||
DOMAIN as SENSOR_DOMAIN,
|
DOMAIN as SENSOR_DOMAIN,
|
||||||
SCAN_INTERVAL,
|
SCAN_INTERVAL,
|
||||||
SensorDeviceClass,
|
SensorDeviceClass,
|
||||||
|
SensorStateClass,
|
||||||
)
|
)
|
||||||
from homeassistant.components.unifi.const import (
|
from homeassistant.components.unifi.const import (
|
||||||
CONF_ALLOW_BANDWIDTH_SENSORS,
|
CONF_ALLOW_BANDWIDTH_SENSORS,
|
||||||
@ -354,16 +356,28 @@ async def test_bandwidth_sensors(
|
|||||||
|
|
||||||
assert len(hass.states.async_all()) == 5
|
assert len(hass.states.async_all()) == 5
|
||||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 4
|
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 4
|
||||||
assert hass.states.get("sensor.wired_client_rx").state == "1234.0"
|
|
||||||
assert hass.states.get("sensor.wired_client_tx").state == "5678.0"
|
|
||||||
assert hass.states.get("sensor.wireless_client_rx").state == "2345.0"
|
|
||||||
assert hass.states.get("sensor.wireless_client_tx").state == "6789.0"
|
|
||||||
|
|
||||||
ent_reg = er.async_get(hass)
|
# Verify sensor attributes and state
|
||||||
assert (
|
|
||||||
ent_reg.async_get("sensor.wired_client_rx").entity_category
|
wrx_sensor = hass.states.get("sensor.wired_client_rx")
|
||||||
is EntityCategory.DIAGNOSTIC
|
assert wrx_sensor.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DATA_RATE
|
||||||
)
|
assert wrx_sensor.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT
|
||||||
|
assert wrx_sensor.state == "1234.0"
|
||||||
|
|
||||||
|
wtx_sensor = hass.states.get("sensor.wired_client_tx")
|
||||||
|
assert wtx_sensor.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DATA_RATE
|
||||||
|
assert wtx_sensor.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT
|
||||||
|
assert wtx_sensor.state == "5678.0"
|
||||||
|
|
||||||
|
wlrx_sensor = hass.states.get("sensor.wireless_client_rx")
|
||||||
|
assert wlrx_sensor.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DATA_RATE
|
||||||
|
assert wlrx_sensor.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT
|
||||||
|
assert wlrx_sensor.state == "2345.0"
|
||||||
|
|
||||||
|
wltx_sensor = hass.states.get("sensor.wireless_client_tx")
|
||||||
|
assert wltx_sensor.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.DATA_RATE
|
||||||
|
assert wltx_sensor.attributes.get(ATTR_STATE_CLASS) == SensorStateClass.MEASUREMENT
|
||||||
|
assert wltx_sensor.state == "6789.0"
|
||||||
|
|
||||||
# Verify state update
|
# Verify state update
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user