mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 02:07:09 +00:00
Add entity category to WLED (#57693)
This commit is contained in:
parent
0407a56fdf
commit
3c11e2a097
@ -25,6 +25,7 @@ class WLEDDataUpdateCoordinator(DataUpdateCoordinator[WLEDDevice]):
|
|||||||
"""Class to manage fetching WLED data from single endpoint."""
|
"""Class to manage fetching WLED data from single endpoint."""
|
||||||
|
|
||||||
keep_master_light: bool
|
keep_master_light: bool
|
||||||
|
config_entry: ConfigEntry
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
@ -11,6 +11,7 @@ from homeassistant.const import (
|
|||||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||||
DEVICE_CLASS_TIMESTAMP,
|
DEVICE_CLASS_TIMESTAMP,
|
||||||
ELECTRIC_CURRENT_MILLIAMPERE,
|
ELECTRIC_CURRENT_MILLIAMPERE,
|
||||||
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
||||||
)
|
)
|
||||||
@ -50,6 +51,7 @@ class WLEDEstimatedCurrentSensor(WLEDEntity, SensorEntity):
|
|||||||
_attr_icon = "mdi:power"
|
_attr_icon = "mdi:power"
|
||||||
_attr_native_unit_of_measurement = ELECTRIC_CURRENT_MILLIAMPERE
|
_attr_native_unit_of_measurement = ELECTRIC_CURRENT_MILLIAMPERE
|
||||||
_attr_device_class = DEVICE_CLASS_CURRENT
|
_attr_device_class = DEVICE_CLASS_CURRENT
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED estimated current sensor."""
|
"""Initialize WLED estimated current sensor."""
|
||||||
@ -76,6 +78,7 @@ class WLEDUptimeSensor(WLEDEntity, SensorEntity):
|
|||||||
|
|
||||||
_attr_device_class = DEVICE_CLASS_TIMESTAMP
|
_attr_device_class = DEVICE_CLASS_TIMESTAMP
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED uptime sensor."""
|
"""Initialize WLED uptime sensor."""
|
||||||
@ -96,6 +99,7 @@ class WLEDFreeHeapSensor(WLEDEntity, SensorEntity):
|
|||||||
_attr_icon = "mdi:memory"
|
_attr_icon = "mdi:memory"
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
_attr_native_unit_of_measurement = DATA_BYTES
|
_attr_native_unit_of_measurement = DATA_BYTES
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED free heap sensor."""
|
"""Initialize WLED free heap sensor."""
|
||||||
@ -115,6 +119,7 @@ class WLEDWifiSignalSensor(WLEDEntity, SensorEntity):
|
|||||||
_attr_icon = "mdi:wifi"
|
_attr_icon = "mdi:wifi"
|
||||||
_attr_native_unit_of_measurement = PERCENTAGE
|
_attr_native_unit_of_measurement = PERCENTAGE
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED Wi-Fi signal sensor."""
|
"""Initialize WLED Wi-Fi signal sensor."""
|
||||||
@ -136,6 +141,7 @@ class WLEDWifiRSSISensor(WLEDEntity, SensorEntity):
|
|||||||
_attr_device_class = DEVICE_CLASS_SIGNAL_STRENGTH
|
_attr_device_class = DEVICE_CLASS_SIGNAL_STRENGTH
|
||||||
_attr_native_unit_of_measurement = SIGNAL_STRENGTH_DECIBELS_MILLIWATT
|
_attr_native_unit_of_measurement = SIGNAL_STRENGTH_DECIBELS_MILLIWATT
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED Wi-Fi RSSI sensor."""
|
"""Initialize WLED Wi-Fi RSSI sensor."""
|
||||||
@ -156,6 +162,7 @@ class WLEDWifiChannelSensor(WLEDEntity, SensorEntity):
|
|||||||
|
|
||||||
_attr_icon = "mdi:wifi"
|
_attr_icon = "mdi:wifi"
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED Wi-Fi Channel sensor."""
|
"""Initialize WLED Wi-Fi Channel sensor."""
|
||||||
@ -176,6 +183,7 @@ class WLEDWifiBSSIDSensor(WLEDEntity, SensorEntity):
|
|||||||
|
|
||||||
_attr_icon = "mdi:wifi"
|
_attr_icon = "mdi:wifi"
|
||||||
_attr_entity_registry_enabled_default = False
|
_attr_entity_registry_enabled_default = False
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED Wi-Fi BSSID sensor."""
|
"""Initialize WLED Wi-Fi BSSID sensor."""
|
||||||
|
@ -5,6 +5,7 @@ from typing import Any
|
|||||||
|
|
||||||
from homeassistant.components.switch import SwitchEntity
|
from homeassistant.components.switch import SwitchEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
|
from homeassistant.const import ENTITY_CATEGORY_CONFIG
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ class WLEDNightlightSwitch(WLEDEntity, SwitchEntity):
|
|||||||
"""Defines a WLED nightlight switch."""
|
"""Defines a WLED nightlight switch."""
|
||||||
|
|
||||||
_attr_icon = "mdi:weather-night"
|
_attr_icon = "mdi:weather-night"
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED nightlight switch."""
|
"""Initialize WLED nightlight switch."""
|
||||||
@ -78,6 +80,7 @@ class WLEDSyncSendSwitch(WLEDEntity, SwitchEntity):
|
|||||||
"""Defines a WLED sync send switch."""
|
"""Defines a WLED sync send switch."""
|
||||||
|
|
||||||
_attr_icon = "mdi:upload-network-outline"
|
_attr_icon = "mdi:upload-network-outline"
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED sync send switch."""
|
"""Initialize WLED sync send switch."""
|
||||||
@ -110,6 +113,7 @@ class WLEDSyncReceiveSwitch(WLEDEntity, SwitchEntity):
|
|||||||
"""Defines a WLED sync receive switch."""
|
"""Defines a WLED sync receive switch."""
|
||||||
|
|
||||||
_attr_icon = "mdi:download-network-outline"
|
_attr_icon = "mdi:download-network-outline"
|
||||||
|
_attr_entity_category = ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
|
||||||
"""Initialize WLED sync receive switch."""
|
"""Initialize WLED sync receive switch."""
|
||||||
|
@ -17,6 +17,7 @@ from homeassistant.const import (
|
|||||||
ATTR_UNIT_OF_MEASUREMENT,
|
ATTR_UNIT_OF_MEASUREMENT,
|
||||||
DATA_BYTES,
|
DATA_BYTES,
|
||||||
ELECTRIC_CURRENT_MILLIAMPERE,
|
ELECTRIC_CURRENT_MILLIAMPERE,
|
||||||
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
@ -106,6 +107,7 @@ async def test_sensors(
|
|||||||
entry = registry.async_get("sensor.wled_rgb_light_estimated_current")
|
entry = registry.async_get("sensor.wled_rgb_light_estimated_current")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_estimated_current"
|
assert entry.unique_id == "aabbccddeeff_estimated_current"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_uptime")
|
state = hass.states.get("sensor.wled_rgb_light_uptime")
|
||||||
assert state
|
assert state
|
||||||
@ -116,26 +118,31 @@ async def test_sensors(
|
|||||||
entry = registry.async_get("sensor.wled_rgb_light_uptime")
|
entry = registry.async_get("sensor.wled_rgb_light_uptime")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_uptime"
|
assert entry.unique_id == "aabbccddeeff_uptime"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_free_memory")
|
state = hass.states.get("sensor.wled_rgb_light_free_memory")
|
||||||
assert state
|
assert state
|
||||||
assert state.attributes.get(ATTR_ICON) == "mdi:memory"
|
assert state.attributes.get(ATTR_ICON) == "mdi:memory"
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == DATA_BYTES
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == DATA_BYTES
|
||||||
assert state.state == "14600"
|
assert state.state == "14600"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
entry = registry.async_get("sensor.wled_rgb_light_free_memory")
|
entry = registry.async_get("sensor.wled_rgb_light_free_memory")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_free_heap"
|
assert entry.unique_id == "aabbccddeeff_free_heap"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_wifi_signal")
|
state = hass.states.get("sensor.wled_rgb_light_wifi_signal")
|
||||||
assert state
|
assert state
|
||||||
assert state.attributes.get(ATTR_ICON) == "mdi:wifi"
|
assert state.attributes.get(ATTR_ICON) == "mdi:wifi"
|
||||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
|
||||||
assert state.state == "76"
|
assert state.state == "76"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
entry = registry.async_get("sensor.wled_rgb_light_wifi_signal")
|
entry = registry.async_get("sensor.wled_rgb_light_wifi_signal")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_wifi_signal"
|
assert entry.unique_id == "aabbccddeeff_wifi_signal"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_wifi_rssi")
|
state = hass.states.get("sensor.wled_rgb_light_wifi_rssi")
|
||||||
assert state
|
assert state
|
||||||
@ -149,6 +156,7 @@ async def test_sensors(
|
|||||||
entry = registry.async_get("sensor.wled_rgb_light_wifi_rssi")
|
entry = registry.async_get("sensor.wled_rgb_light_wifi_rssi")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_wifi_rssi"
|
assert entry.unique_id == "aabbccddeeff_wifi_rssi"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_wifi_channel")
|
state = hass.states.get("sensor.wled_rgb_light_wifi_channel")
|
||||||
assert state
|
assert state
|
||||||
@ -159,6 +167,7 @@ async def test_sensors(
|
|||||||
entry = registry.async_get("sensor.wled_rgb_light_wifi_channel")
|
entry = registry.async_get("sensor.wled_rgb_light_wifi_channel")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_wifi_channel"
|
assert entry.unique_id == "aabbccddeeff_wifi_channel"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
state = hass.states.get("sensor.wled_rgb_light_wifi_bssid")
|
state = hass.states.get("sensor.wled_rgb_light_wifi_bssid")
|
||||||
assert state
|
assert state
|
||||||
@ -169,6 +178,7 @@ async def test_sensors(
|
|||||||
entry = registry.async_get("sensor.wled_rgb_light_wifi_bssid")
|
entry = registry.async_get("sensor.wled_rgb_light_wifi_bssid")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_wifi_bssid"
|
assert entry.unique_id == "aabbccddeeff_wifi_bssid"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
@ -14,6 +14,7 @@ from homeassistant.components.wled.const import (
|
|||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_ENTITY_ID,
|
ATTR_ENTITY_ID,
|
||||||
ATTR_ICON,
|
ATTR_ICON,
|
||||||
|
ENTITY_CATEGORY_CONFIG,
|
||||||
SERVICE_TURN_OFF,
|
SERVICE_TURN_OFF,
|
||||||
SERVICE_TURN_ON,
|
SERVICE_TURN_ON,
|
||||||
STATE_OFF,
|
STATE_OFF,
|
||||||
@ -43,6 +44,7 @@ async def test_switch_state(
|
|||||||
entry = entity_registry.async_get("switch.wled_rgb_light_nightlight")
|
entry = entity_registry.async_get("switch.wled_rgb_light_nightlight")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_nightlight"
|
assert entry.unique_id == "aabbccddeeff_nightlight"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
state = hass.states.get("switch.wled_rgb_light_sync_send")
|
state = hass.states.get("switch.wled_rgb_light_sync_send")
|
||||||
assert state
|
assert state
|
||||||
@ -53,6 +55,7 @@ async def test_switch_state(
|
|||||||
entry = entity_registry.async_get("switch.wled_rgb_light_sync_send")
|
entry = entity_registry.async_get("switch.wled_rgb_light_sync_send")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_sync_send"
|
assert entry.unique_id == "aabbccddeeff_sync_send"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
state = hass.states.get("switch.wled_rgb_light_sync_receive")
|
state = hass.states.get("switch.wled_rgb_light_sync_receive")
|
||||||
assert state
|
assert state
|
||||||
@ -63,6 +66,7 @@ async def test_switch_state(
|
|||||||
entry = entity_registry.async_get("switch.wled_rgb_light_sync_receive")
|
entry = entity_registry.async_get("switch.wled_rgb_light_sync_receive")
|
||||||
assert entry
|
assert entry
|
||||||
assert entry.unique_id == "aabbccddeeff_sync_receive"
|
assert entry.unique_id == "aabbccddeeff_sync_receive"
|
||||||
|
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
|
||||||
|
|
||||||
|
|
||||||
async def test_switch_change_state(
|
async def test_switch_change_state(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user