Add entity category to WLED (#57693)

This commit is contained in:
Paulus Schoutsen 2021-10-14 13:31:01 -07:00 committed by GitHub
parent 0407a56fdf
commit 3c11e2a097
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 0 deletions

View file

@ -25,6 +25,7 @@ class WLEDDataUpdateCoordinator(DataUpdateCoordinator[WLEDDevice]):
"""Class to manage fetching WLED data from single endpoint."""
keep_master_light: bool
config_entry: ConfigEntry
def __init__(
self,

View file

@ -11,6 +11,7 @@ from homeassistant.const import (
DEVICE_CLASS_SIGNAL_STRENGTH,
DEVICE_CLASS_TIMESTAMP,
ELECTRIC_CURRENT_MILLIAMPERE,
ENTITY_CATEGORY_DIAGNOSTIC,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
)
@ -50,6 +51,7 @@ class WLEDEstimatedCurrentSensor(WLEDEntity, SensorEntity):
_attr_icon = "mdi:power"
_attr_native_unit_of_measurement = ELECTRIC_CURRENT_MILLIAMPERE
_attr_device_class = DEVICE_CLASS_CURRENT
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED estimated current sensor."""
@ -76,6 +78,7 @@ class WLEDUptimeSensor(WLEDEntity, SensorEntity):
_attr_device_class = DEVICE_CLASS_TIMESTAMP
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED uptime sensor."""
@ -96,6 +99,7 @@ class WLEDFreeHeapSensor(WLEDEntity, SensorEntity):
_attr_icon = "mdi:memory"
_attr_entity_registry_enabled_default = False
_attr_native_unit_of_measurement = DATA_BYTES
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED free heap sensor."""
@ -115,6 +119,7 @@ class WLEDWifiSignalSensor(WLEDEntity, SensorEntity):
_attr_icon = "mdi:wifi"
_attr_native_unit_of_measurement = PERCENTAGE
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED Wi-Fi signal sensor."""
@ -136,6 +141,7 @@ class WLEDWifiRSSISensor(WLEDEntity, SensorEntity):
_attr_device_class = DEVICE_CLASS_SIGNAL_STRENGTH
_attr_native_unit_of_measurement = SIGNAL_STRENGTH_DECIBELS_MILLIWATT
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED Wi-Fi RSSI sensor."""
@ -156,6 +162,7 @@ class WLEDWifiChannelSensor(WLEDEntity, SensorEntity):
_attr_icon = "mdi:wifi"
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED Wi-Fi Channel sensor."""
@ -176,6 +183,7 @@ class WLEDWifiBSSIDSensor(WLEDEntity, SensorEntity):
_attr_icon = "mdi:wifi"
_attr_entity_registry_enabled_default = False
_attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED Wi-Fi BSSID sensor."""

View file

@ -5,6 +5,7 @@ from typing import Any
from homeassistant.components.switch import SwitchEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ENTITY_CATEGORY_CONFIG
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -42,6 +43,7 @@ class WLEDNightlightSwitch(WLEDEntity, SwitchEntity):
"""Defines a WLED nightlight switch."""
_attr_icon = "mdi:weather-night"
_attr_entity_category = ENTITY_CATEGORY_CONFIG
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED nightlight switch."""
@ -78,6 +80,7 @@ class WLEDSyncSendSwitch(WLEDEntity, SwitchEntity):
"""Defines a WLED sync send switch."""
_attr_icon = "mdi:upload-network-outline"
_attr_entity_category = ENTITY_CATEGORY_CONFIG
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED sync send switch."""
@ -110,6 +113,7 @@ class WLEDSyncReceiveSwitch(WLEDEntity, SwitchEntity):
"""Defines a WLED sync receive switch."""
_attr_icon = "mdi:download-network-outline"
_attr_entity_category = ENTITY_CATEGORY_CONFIG
def __init__(self, coordinator: WLEDDataUpdateCoordinator) -> None:
"""Initialize WLED sync receive switch."""

View file

@ -17,6 +17,7 @@ from homeassistant.const import (
ATTR_UNIT_OF_MEASUREMENT,
DATA_BYTES,
ELECTRIC_CURRENT_MILLIAMPERE,
ENTITY_CATEGORY_DIAGNOSTIC,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
STATE_UNKNOWN,
@ -106,6 +107,7 @@ async def test_sensors(
entry = registry.async_get("sensor.wled_rgb_light_estimated_current")
assert entry
assert entry.unique_id == "aabbccddeeff_estimated_current"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_uptime")
assert state
@ -116,26 +118,31 @@ async def test_sensors(
entry = registry.async_get("sensor.wled_rgb_light_uptime")
assert entry
assert entry.unique_id == "aabbccddeeff_uptime"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_free_memory")
assert state
assert state.attributes.get(ATTR_ICON) == "mdi:memory"
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == DATA_BYTES
assert state.state == "14600"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
entry = registry.async_get("sensor.wled_rgb_light_free_memory")
assert entry
assert entry.unique_id == "aabbccddeeff_free_heap"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_wifi_signal")
assert state
assert state.attributes.get(ATTR_ICON) == "mdi:wifi"
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == PERCENTAGE
assert state.state == "76"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
entry = registry.async_get("sensor.wled_rgb_light_wifi_signal")
assert entry
assert entry.unique_id == "aabbccddeeff_wifi_signal"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_wifi_rssi")
assert state
@ -149,6 +156,7 @@ async def test_sensors(
entry = registry.async_get("sensor.wled_rgb_light_wifi_rssi")
assert entry
assert entry.unique_id == "aabbccddeeff_wifi_rssi"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_wifi_channel")
assert state
@ -159,6 +167,7 @@ async def test_sensors(
entry = registry.async_get("sensor.wled_rgb_light_wifi_channel")
assert entry
assert entry.unique_id == "aabbccddeeff_wifi_channel"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
state = hass.states.get("sensor.wled_rgb_light_wifi_bssid")
assert state
@ -169,6 +178,7 @@ async def test_sensors(
entry = registry.async_get("sensor.wled_rgb_light_wifi_bssid")
assert entry
assert entry.unique_id == "aabbccddeeff_wifi_bssid"
assert entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC
@pytest.mark.parametrize(

View file

@ -14,6 +14,7 @@ from homeassistant.components.wled.const import (
from homeassistant.const import (
ATTR_ENTITY_ID,
ATTR_ICON,
ENTITY_CATEGORY_CONFIG,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_OFF,
@ -43,6 +44,7 @@ async def test_switch_state(
entry = entity_registry.async_get("switch.wled_rgb_light_nightlight")
assert entry
assert entry.unique_id == "aabbccddeeff_nightlight"
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
state = hass.states.get("switch.wled_rgb_light_sync_send")
assert state
@ -53,6 +55,7 @@ async def test_switch_state(
entry = entity_registry.async_get("switch.wled_rgb_light_sync_send")
assert entry
assert entry.unique_id == "aabbccddeeff_sync_send"
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
state = hass.states.get("switch.wled_rgb_light_sync_receive")
assert state
@ -63,6 +66,7 @@ async def test_switch_state(
entry = entity_registry.async_get("switch.wled_rgb_light_sync_receive")
assert entry
assert entry.unique_id == "aabbccddeeff_sync_receive"
assert entry.entity_category == ENTITY_CATEGORY_CONFIG
async def test_switch_change_state(