diff --git a/animation.py b/animation.py index 86d5d23..f131be8 100644 --- a/animation.py +++ b/animation.py @@ -216,6 +216,30 @@ class RotatingRainbow(Animation): return "rainbow" +class RotatingRainbowKitchenWhite(Animation): + def __init__(self, looptime=50.0): + super(RotatingRainbowKitchenWhite, self).__init__() + self.looptime = looptime + pass + + def update(self, index, count): + """ + Same as RotatingRainbow but the two lights above the kitchen are mapped to white + """ + if (index == 2 or index == 7): + rgb = (255, 255, 255) + else: + hue = (time() / self.looptime + (index + 0.0) / count) % 1.0 + rgb = hsv_to_rgb(hue, 1, 1) + return rgb + + def __str__(self): + return f"{type(self).__name__}" + + def name(self): + return "kitchenlight" + + class Chase(Steady): def __init__(self, color, looptime=1.0): super(Chase, self).__init__(color) diff --git a/dmx.py b/dmx.py index e01d8f4..edafb2f 100644 --- a/dmx.py +++ b/dmx.py @@ -6,7 +6,7 @@ from time import sleep from typing import Union from animation import Animation, Off, RandomSingle, Steady, FadeTo, RotatingRainbow, Chase, TwoColor, Caramelldansen, \ - Hackertours + Hackertours, RotatingRainbowKitchenWhite def ledlog(value): @@ -152,6 +152,8 @@ class DMX: animation = RandomSingle(self._color) elif animation == "hackertours": animation = Hackertours(self._color) + elif animation == "kitchenlight": + animation = RotatingRainbowKitchenWhite() else: raise ValueError(f"No such animation {animation}") self._animation = animation diff --git a/views/index.tpl b/views/index.tpl index 1953385..02d19f1 100644 --- a/views/index.tpl +++ b/views/index.tpl @@ -21,6 +21,12 @@ + % if room == "big": +