Add entity translations to Flux led (#95355)
This commit is contained in:
parent
90854df5b2
commit
e19b29d6ae
8 changed files with 104 additions and 53 deletions
|
@ -18,7 +18,7 @@ from flux_led.protocol import (
|
|||
from homeassistant import config_entries
|
||||
from homeassistant.components.light import EFFECT_RANDOM
|
||||
from homeassistant.components.number import NumberEntity, NumberMode
|
||||
from homeassistant.const import CONF_NAME, EntityCategory
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers.debounce import Debouncer
|
||||
|
@ -50,7 +50,6 @@ async def async_setup_entry(
|
|||
| FluxMusicPixelsPerSegmentNumber
|
||||
| FluxMusicSegmentsNumber
|
||||
] = []
|
||||
name = entry.data.get(CONF_NAME, entry.title)
|
||||
base_unique_id = entry.unique_id or entry.entry_id
|
||||
|
||||
if device.pixels_per_segment is not None:
|
||||
|
@ -58,35 +57,25 @@ async def async_setup_entry(
|
|||
FluxPixelsPerSegmentNumber(
|
||||
coordinator,
|
||||
base_unique_id,
|
||||
f"{name} Pixels Per Segment",
|
||||
"pixels_per_segment",
|
||||
)
|
||||
)
|
||||
if device.segments is not None:
|
||||
entities.append(
|
||||
FluxSegmentsNumber(
|
||||
coordinator, base_unique_id, f"{name} Segments", "segments"
|
||||
)
|
||||
)
|
||||
entities.append(FluxSegmentsNumber(coordinator, base_unique_id, "segments"))
|
||||
if device.music_pixels_per_segment is not None:
|
||||
entities.append(
|
||||
FluxMusicPixelsPerSegmentNumber(
|
||||
coordinator,
|
||||
base_unique_id,
|
||||
f"{name} Music Pixels Per Segment",
|
||||
"music_pixels_per_segment",
|
||||
)
|
||||
)
|
||||
if device.music_segments is not None:
|
||||
entities.append(
|
||||
FluxMusicSegmentsNumber(
|
||||
coordinator, base_unique_id, f"{name} Music Segments", "music_segments"
|
||||
)
|
||||
FluxMusicSegmentsNumber(coordinator, base_unique_id, "music_segments")
|
||||
)
|
||||
if device.effect_list and device.effect_list != [EFFECT_RANDOM]:
|
||||
entities.append(
|
||||
FluxSpeedNumber(coordinator, base_unique_id, f"{name} Effect Speed", None)
|
||||
)
|
||||
entities.append(FluxSpeedNumber(coordinator, base_unique_id, None))
|
||||
|
||||
async_add_entities(entities)
|
||||
|
||||
|
@ -101,6 +90,7 @@ class FluxSpeedNumber(
|
|||
_attr_native_step = 1
|
||||
_attr_mode = NumberMode.SLIDER
|
||||
_attr_icon = "mdi:speedometer"
|
||||
_attr_translation_key = "effect_speed"
|
||||
|
||||
@property
|
||||
def native_value(self) -> float:
|
||||
|
@ -137,11 +127,10 @@ class FluxConfigNumber(
|
|||
self,
|
||||
coordinator: FluxLedUpdateCoordinator,
|
||||
base_unique_id: str,
|
||||
name: str,
|
||||
key: str | None,
|
||||
) -> None:
|
||||
"""Initialize the flux number."""
|
||||
super().__init__(coordinator, base_unique_id, name, key)
|
||||
super().__init__(coordinator, base_unique_id, key)
|
||||
self._debouncer: Debouncer[Coroutine[Any, Any, None]] | None = None
|
||||
self._pending_value: int | None = None
|
||||
|
||||
|
@ -185,6 +174,7 @@ class FluxConfigNumber(
|
|||
class FluxPixelsPerSegmentNumber(FluxConfigNumber):
|
||||
"""Defines a flux_led pixels per segment number."""
|
||||
|
||||
_attr_translation_key = "pixels_per_segment"
|
||||
_attr_icon = "mdi:dots-grid"
|
||||
|
||||
@property
|
||||
|
@ -211,6 +201,7 @@ class FluxPixelsPerSegmentNumber(FluxConfigNumber):
|
|||
class FluxSegmentsNumber(FluxConfigNumber):
|
||||
"""Defines a flux_led segments number."""
|
||||
|
||||
_attr_translation_key = "segments"
|
||||
_attr_icon = "mdi:segment"
|
||||
|
||||
@property
|
||||
|
@ -245,6 +236,7 @@ class FluxMusicNumber(FluxConfigNumber):
|
|||
class FluxMusicPixelsPerSegmentNumber(FluxMusicNumber):
|
||||
"""Defines a flux_led music pixels per segment number."""
|
||||
|
||||
_attr_translation_key = "music_pixels_per_segment"
|
||||
_attr_icon = "mdi:dots-grid"
|
||||
|
||||
@property
|
||||
|
@ -273,6 +265,7 @@ class FluxMusicPixelsPerSegmentNumber(FluxMusicNumber):
|
|||
class FluxMusicSegmentsNumber(FluxMusicNumber):
|
||||
"""Defines a flux_led music segments number."""
|
||||
|
||||
_attr_translation_key = "music_segments"
|
||||
_attr_icon = "mdi:segment"
|
||||
|
||||
@property
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue