Пример #1
0
def lights():
    light_group = fetch_all_lights()
    form = LightToggleForm()
    form.selection.choices = light_group.lights

    if form.validate_on_submit():
        print('asldkfjhaslkjdfaslkdf')
        send_actions(Action(form.selection.data, on=True, bri=100))
        return redirect(url_for('home'))

    return render_template('home.html', form=form, current_time=datetime.utcnow(), lights=light_group)
Пример #2
0
def blink(lights, colours, flash_time, count=1):
    colours = [colours] if type(colours) == Colour else colours

    index = 0
    while count > 0:
        for light in lights:
            action = Action(light, on=True, colour=colours[index], bri=100, alert='select')
            send_actions([action])
        sleep(flash_time)

        index = (index + 1) % len(colours)
        if count != -1:
            count -= 1
Пример #3
0
def random_party(lights):
    while True:
        transition_time = 1

        for light in lights:
            offset_colour = Colour.random()

            light_trans_time = random.randint(1, 4)
            if light_trans_time > transition_time:
                transition_time = light_trans_time

            action = Action(light, on=True, colour=offset_colour, transition_time=light_trans_time)
            send_actions([action])

        sleep(transition_time)
Пример #4
0
def flash_between(lights, colours, flash_delay=0.3, brightness=100, alternate_lights=False):
    if len(colours) < 2:
        return

    index = 0
    while True:
        for i, light in enumerate(lights):
            if alternate_lights:
                colour = colours[increment_index(index, len(colours), i + 1)]
            else:
                colour = colours[index]

            action = Action(light, on=True, colour=colour, bri=brightness)
            send_actions([action])
        index = (index + 1) % len(colours)
        sleep(flash_delay)
Пример #5
0
def fade_between(lights: LightGroup, colours, transition_time=10, brightness=100, alternate_lights=False):
    if len(colours) < 2:
        return

    index = 0
    while True:
        for i, light in enumerate(lights):
            if alternate_lights:
                colour = colours[increment_index(index, len(colours), i + 1)]
            else:
                colour = colours[index]

            action = Action(light, on=True, colour=colour, transition_time=transition_time, bri=brightness)
            send_actions([action])

        sleep(transition_time)

        index = increment_index(index, len(colours))
Пример #6
0
def lava_lamp(lights, colour, transition_time=10, brightness=100, similarity_percent=20):
    while True:
        blinked = False
        for light in lights:

            # chance to blink
            if roll(5) and not blinked:
                send_actions([Action(light, on=False, transition_time=transition_time)])
                blinked = True
                continue

            # chance to slightly dim:
            if roll(33):
                offset_brightness = offset_val_by_percentage(brightness, similarity_percent, clamp_val=True, lower=0, upper=100)
            else:
                offset_brightness = brightness

            offset_colour = Colour.random_similar(colour, similarity_percent)

            action = Action(light, on=True, colour=offset_colour, bri=offset_brightness, transition_time=transition_time)
            send_actions([action])

        sleep(transition_time)