mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
89afedf3d5
* extend image effects add a basic light clock * add alpha values to rainbow * some effect tuning * make seconds hand optional and change color to yellow make blue hours hand always visible
55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
import hyperion, time, datetime
|
|
|
|
# Get the parameters
|
|
showSeconds = bool(hyperion.args.get('show_seconds', True))
|
|
centerX = int(round(hyperion.imageWidth)/2)
|
|
centerY = int(round(float(hyperion.imageHeight)/2))
|
|
|
|
colorsSecond = bytearray([
|
|
0, 255,255,0,255,
|
|
5, 255,255,0,255,
|
|
30, 0,0,0,0,
|
|
])
|
|
|
|
colorsMinute = bytearray([
|
|
0, 0,255,0,255,
|
|
5, 0,255,0,250,
|
|
90, 0,0,0,0,
|
|
|
|
])
|
|
|
|
colorsHour = bytearray([
|
|
0, 0,0,255,255,
|
|
10, 0,0,255,255,
|
|
127, 0,0,196,127,
|
|
255, 0,0,196,5,
|
|
])
|
|
|
|
colorsHourTop = bytearray([
|
|
0, 0,0,255,250,
|
|
10, 0,0,255,128,
|
|
20, 0,0,0,0,
|
|
])
|
|
|
|
# effect loop
|
|
while not hyperion.abort():
|
|
now = datetime.datetime.now()
|
|
|
|
angleH = 449 - 30*(now.hour if now.hour<12 else now.hour-12)
|
|
angleM = 449 - 6*now.minute
|
|
angleS = 449 - 6*now.second
|
|
|
|
angleH -= 0 if angleH<360 else 360
|
|
angleM -= 0 if angleM<360 else 360
|
|
angleS -= 0 if angleS<360 else 360
|
|
|
|
hyperion.imageSolidFill(127,127,127);
|
|
hyperion.imageCanonicalGradient(centerX, centerY, angleH, colorsHour)
|
|
hyperion.imageCanonicalGradient(centerX, centerY, angleM, colorsMinute)
|
|
hyperion.imageCanonicalGradient(centerX, centerY, angleH, colorsHourTop)
|
|
if showSeconds:
|
|
hyperion.imageCanonicalGradient(centerX, centerY, angleS, colorsSecond)
|
|
|
|
hyperion.imageShow()
|
|
time.sleep(0.01 )
|