mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Small cleanups to lifx services to reduce code (#135817)
This commit is contained in:
parent
daac986e00
commit
c2b6c4b4fc
@ -218,16 +218,16 @@ LIFX_PAINT_THEME_SCHEMA = cv.make_entity_service_schema(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
SERVICES = (
|
SERVICES_SCHEMA = {
|
||||||
SERVICE_EFFECT_COLORLOOP,
|
SERVICE_EFFECT_COLORLOOP: LIFX_EFFECT_COLORLOOP_SCHEMA,
|
||||||
SERVICE_EFFECT_FLAME,
|
SERVICE_EFFECT_FLAME: LIFX_EFFECT_FLAME_SCHEMA,
|
||||||
SERVICE_EFFECT_MORPH,
|
SERVICE_EFFECT_MORPH: LIFX_EFFECT_MORPH_SCHEMA,
|
||||||
SERVICE_EFFECT_MOVE,
|
SERVICE_EFFECT_MOVE: LIFX_EFFECT_MOVE_SCHEMA,
|
||||||
SERVICE_EFFECT_PULSE,
|
SERVICE_EFFECT_PULSE: LIFX_EFFECT_PULSE_SCHEMA,
|
||||||
SERVICE_EFFECT_SKY,
|
SERVICE_EFFECT_SKY: LIFX_EFFECT_SKY_SCHEMA,
|
||||||
SERVICE_EFFECT_STOP,
|
SERVICE_EFFECT_STOP: LIFX_EFFECT_STOP_SCHEMA,
|
||||||
SERVICE_PAINT_THEME,
|
SERVICE_PAINT_THEME: LIFX_PAINT_THEME_SCHEMA,
|
||||||
)
|
}
|
||||||
|
|
||||||
|
|
||||||
class LIFXManager:
|
class LIFXManager:
|
||||||
@ -242,7 +242,7 @@ class LIFXManager:
|
|||||||
@callback
|
@callback
|
||||||
def async_unload(self) -> None:
|
def async_unload(self) -> None:
|
||||||
"""Release resources."""
|
"""Release resources."""
|
||||||
for service in SERVICES:
|
for service in SERVICES_SCHEMA:
|
||||||
self.hass.services.async_remove(DOMAIN, service)
|
self.hass.services.async_remove(DOMAIN, service)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
@ -270,72 +270,20 @@ class LIFXManager:
|
|||||||
if all_referenced:
|
if all_referenced:
|
||||||
await self.start_effect(all_referenced, service.service, **service.data)
|
await self.start_effect(all_referenced, service.service, **service.data)
|
||||||
|
|
||||||
self.hass.services.async_register(
|
for service, schema in SERVICES_SCHEMA.items():
|
||||||
DOMAIN,
|
self.hass.services.async_register(
|
||||||
SERVICE_EFFECT_PULSE,
|
DOMAIN, service, service_handler, schema=schema
|
||||||
service_handler,
|
)
|
||||||
schema=LIFX_EFFECT_PULSE_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_COLORLOOP,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_COLORLOOP_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_FLAME,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_FLAME_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_MORPH,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_MORPH_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_MOVE,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_MOVE_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_SKY,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_SKY_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_EFFECT_STOP,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_EFFECT_STOP_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_PAINT_THEME,
|
|
||||||
service_handler,
|
|
||||||
schema=LIFX_PAINT_THEME_SCHEMA,
|
|
||||||
)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def build_theme(theme_name: str = "exciting", palette: list | None = None) -> Theme:
|
def build_theme(theme_name: str = "exciting", palette: list | None = None) -> Theme:
|
||||||
"""Either return the predefined theme or build one from the palette."""
|
"""Either return the predefined theme or build one from the palette."""
|
||||||
if palette is not None:
|
if palette is None:
|
||||||
theme = Theme()
|
return ThemeLibrary().get_theme(theme_name)
|
||||||
for hsbk in palette:
|
|
||||||
theme.add_hsbk(hsbk[0], hsbk[1], hsbk[2], hsbk[3])
|
|
||||||
else:
|
|
||||||
theme = ThemeLibrary().get_theme(theme_name)
|
|
||||||
|
|
||||||
|
theme = Theme()
|
||||||
|
for hsbk in palette:
|
||||||
|
theme.add_hsbk(hsbk[0], hsbk[1], hsbk[2], hsbk[3])
|
||||||
return theme
|
return theme
|
||||||
|
|
||||||
async def _start_effect_flame(
|
async def _start_effect_flame(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user