Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions homeassistant/components/lifx/light.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
MESSAGE_RETRIES = 8
UNAVAILABLE_GRACE = 90

SERVICE_LIFX_SET_STATE = "lifx_set_state"
SERVICE_LIFX_SET_STATE = "set_state"

ATTR_INFRARED = "infrared"
ATTR_ZONES = "zones"
Expand All @@ -74,9 +74,9 @@
}
)

SERVICE_EFFECT_PULSE = "lifx_effect_pulse"
SERVICE_EFFECT_COLORLOOP = "lifx_effect_colorloop"
SERVICE_EFFECT_STOP = "lifx_effect_stop"
SERVICE_EFFECT_PULSE = "effect_pulse"
SERVICE_EFFECT_COLORLOOP = "effect_colorloop"
SERVICE_EFFECT_STOP = "effect_stop"

ATTR_POWER_ON = "power_on"
ATTR_PERIOD = "period"
Expand Down Expand Up @@ -282,7 +282,7 @@ def cleanup(self, event=None):
SERVICE_EFFECT_PULSE,
SERVICE_EFFECT_COLORLOOP,
]:
self.hass.services.async_remove(DOMAIN, service)
self.hass.services.async_remove(LIFX_DOMAIN, service)

def register_set_state(self):
"""Register the LIFX set_state service call."""
Expand All @@ -298,7 +298,7 @@ async def service_handler(service):
await asyncio.wait(tasks)

self.hass.services.async_register(
DOMAIN,
LIFX_DOMAIN,
SERVICE_LIFX_SET_STATE,
service_handler,
schema=LIFX_SET_STATE_SCHEMA,
Expand All @@ -314,21 +314,24 @@ async def service_handler(service):
await self.start_effect(entities, service.service, **service.data)

self.hass.services.async_register(
DOMAIN,
LIFX_DOMAIN,
SERVICE_EFFECT_PULSE,
service_handler,
schema=LIFX_EFFECT_PULSE_SCHEMA,
)

self.hass.services.async_register(
DOMAIN,
LIFX_DOMAIN,
SERVICE_EFFECT_COLORLOOP,
service_handler,
schema=LIFX_EFFECT_COLORLOOP_SCHEMA,
)

self.hass.services.async_register(
DOMAIN, SERVICE_EFFECT_STOP, service_handler, schema=LIFX_EFFECT_STOP_SCHEMA
LIFX_DOMAIN,
SERVICE_EFFECT_STOP,
service_handler,
schema=LIFX_EFFECT_STOP_SCHEMA,
)

async def start_effect(self, entities, service, **kwargs):
Expand Down Expand Up @@ -652,7 +655,7 @@ async def default_effect(self, **kwargs):
"""Start an effect with default parameters."""
service = kwargs[ATTR_EFFECT]
data = {ATTR_ENTITY_ID: self.entity_id}
await self.hass.services.async_call(DOMAIN, service, data)
await self.hass.services.async_call(LIFX_DOMAIN, service, data)

async def async_update(self):
"""Update bulb status."""
Expand Down
77 changes: 77 additions & 0 deletions homeassistant/components/lifx/services.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
set_state:
description: Set a color/brightness and possibliy turn the light on/off.
fields:
entity_id:
description: Name(s) of entities to set a state on.
example: "light.garage"
"...":
description: All turn_on parameters can be used to specify a color.
infrared:
description: Automatic infrared level (0..255) when light brightness is low.
example: 255
zones:
description: List of zone numbers to affect (8 per LIFX Z, starts at 0).
example: "[0,5]"
transition:
description: Duration in seconds it takes to get to the final state.
example: 10
power:
description: Turn the light on (True) or off (False). Leave out to keep the power as it is.
example: True

effect_pulse:
description: Run a flash effect by changing to a color and back.
fields:
entity_id:
description: Name(s) of entities to run the effect on.
example: "light.kitchen"
mode:
description: "Decides how colors are changed. Possible values: blink, breathe, ping, strobe, solid."
example: strobe
brightness:
description: Number between 0..255 indicating brightness of the temporary color.
example: 120
color_name:
description: A human readable color name.
example: "red"
rgb_color:
description: The temporary color in RGB-format.
example: "[255, 100, 100]"
period:
description: Duration of the effect in seconds (default 1.0).
example: 3
cycles:
description: Number of times the effect should run (default 1.0).
example: 2
power_on:
description: Powered off lights are temporarily turned on during the effect (default True).
example: False

effect_colorloop:
description: Run an effect with looping colors.
fields:
entity_id:
description: Name(s) of entities to run the effect on.
example: "light.disco1, light.disco2, light.disco3"
brightness:
description: Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light.
example: 120
period:
description: Duration (in seconds) between color changes (default 60).
example: 180
change:
description: Hue movement per period, in degrees on a color wheel (ranges from 0 to 360, default 20).
example: 45
spread:
description: Maximum hue difference between participating lights, in degrees on a color wheel (ranges from 0 to 360, default 30).
example: 0
power_on:
description: Powered off lights are temporarily turned on during the effect (default True).
example: False

effect_stop:
description: Stop a running effect.
fields:
entity_id:
description: Name(s) of entities to stop effects on. Leave out to stop effects everywhere.
example: "light.bedroom"
78 changes: 0 additions & 78 deletions homeassistant/components/light/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -120,84 +120,6 @@ toggle:
- colorloop
- random

lifx_set_state:
description: Set a color/brightness and possibliy turn the light on/off.
fields:
entity_id:
description: Name(s) of entities to set a state on.
example: "light.garage"
"...":
description: All turn_on parameters can be used to specify a color.
infrared:
description: Automatic infrared level (0..255) when light brightness is low.
example: 255
zones:
description: List of zone numbers to affect (8 per LIFX Z, starts at 0).
example: "[0,5]"
transition:
description: Duration in seconds it takes to get to the final state.
example: 10
power:
description: Turn the light on (True) or off (False). Leave out to keep the power as it is.
example: True

lifx_effect_pulse:
description: Run a flash effect by changing to a color and back.
fields:
entity_id:
description: Name(s) of entities to run the effect on.
example: "light.kitchen"
mode:
description: "Decides how colors are changed. Possible values: blink, breathe, ping, strobe, solid."
example: strobe
brightness:
description: Number between 0..255 indicating brightness of the temporary color.
example: 120
color_name:
description: A human readable color name.
example: "red"
rgb_color:
description: The temporary color in RGB-format.
example: "[255, 100, 100]"
period:
description: Duration of the effect in seconds (default 1.0).
example: 3
cycles:
description: Number of times the effect should run (default 1.0).
example: 2
power_on:
description: Powered off lights are temporarily turned on during the effect (default True).
example: False

lifx_effect_colorloop:
description: Run an effect with looping colors.
fields:
entity_id:
description: Name(s) of entities to run the effect on.
example: "light.disco1, light.disco2, light.disco3"
brightness:
description: Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light.
example: 120
period:
description: Duration (in seconds) between color changes (default 60).
example: 180
change:
description: Hue movement per period, in degrees on a color wheel (ranges from 0 to 360, default 20).
example: 45
spread:
description: Maximum hue difference between participating lights, in degrees on a color wheel (ranges from 0 to 360, default 30).
example: 0
power_on:
description: Powered off lights are temporarily turned on during the effect (default True).
example: False

lifx_effect_stop:
description: Stop a running effect.
fields:
entity_id:
description: Name(s) of entities to stop effects on. Leave out to stop effects everywhere.
example: "light.bedroom"

xiaomi_miio_set_scene:
description: Set a fixed scene.
fields:
Expand Down