Add effect support for light strips (#293)

* Add effect support for KL430

* KL400 supports effects

* Add KL400 fixture

* Comments from review

* actually commit the remove
This commit is contained in:
J. Nick Koston
2022-03-21 11:10:12 -10:00
committed by GitHub
parent b22f6b4eef
commit 58f6517445
8 changed files with 508 additions and 2 deletions

View File

@@ -371,6 +371,27 @@ async def temperature(dev: SmartBulb, temperature: int, transition: int):
return await dev.set_color_temp(temperature, transition=transition)
@cli.command()
@click.argument("effect", type=click.STRING, default=None, required=False)
@click.pass_context
@pass_dev
async def effect(dev, ctx, effect):
"""Set an effect."""
if not dev.has_effects:
click.echo("Device does not support effects")
return
if effect is None:
raise click.BadArgumentUsage(
f"Setting an effect requires a named built-in effect: {dev.effect_list}",
ctx,
)
if effect not in dev.effect_list:
raise click.BadArgumentUsage(f"Effect must be one of: {dev.effect_list}", ctx)
click.echo(f"Setting Effect: {effect}")
return await dev.set_effect(effect)
@cli.command()
@click.argument("h", type=click.IntRange(0, 360), default=None, required=False)
@click.argument("s", type=click.IntRange(0, 100), default=None, required=False)