add new animation RotatingRainbowBeamerBlack

new animation that disables the lights on the projector side of the room
mostly copied from the kitchenlight effect by tessak9
This commit is contained in:
dario 2026-05-16 22:07:14 +02:00
commit 69840b41fc
Signed by: dario
SSH key fingerprint: SHA256:zP7OE8nhYwOWaDhOawrP6NmUVcZWi0wyPKQa6052GpM
3 changed files with 32 additions and 3 deletions

View file

@ -239,6 +239,29 @@ class RotatingRainbowKitchenWhite(Animation):
def name(self):
return "kitchenlight"
class RotatingRainbowBeamerBlack(Animation):
def __init__(self, looptime=50.0):
super(RotatingRainbowBeamerBlack, self).__init__()
self.looptime = looptime
pass
def update(self, index, count):
"""
Same as RotatingRainbow but the lights on the projector side are mapped to black
"""
if (index in [2, 4, 5, 6]):
rgb = (0, 0, 0)
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 "beamermode"
class Chase(Steady):
def __init__(self, color, looptime=1.0):

4
dmx.py
View file

@ -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, RotatingRainbowKitchenWhite
Hackertours, RotatingRainbowKitchenWhite, RotatingRainbowBeamerBlack
def ledlog(value):
@ -154,6 +154,8 @@ class DMX:
animation = Hackertours(self._color)
elif animation == "kitchenlight":
animation = RotatingRainbowKitchenWhite()
elif animation == "beamermode":
animation = RotatingRainbowBeamerBlack()
else:
raise ValueError(f"No such animation {animation}")
self._animation = animation

View file

@ -25,6 +25,10 @@
<div>
<input type="radio" class="js_animation" name="state" id="animation_kitchenlight" value="kitchenlight"/>
<label for="animation_kitchenlight">Kitchenlight</label>
</div>
<div>
<input type="radio" class="js_animation" name="state" id="animation_beamermode" value="beamermode"/>
<label for="animation_kitchenlight">Beamer Mode</label>
</div>
% end
<div>