mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
update
This commit is contained in:
@@ -1,80 +0,0 @@
|
||||
import hyperion
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
def myRange(index, margin):
|
||||
return [i % hyperion.ledCount for i in range(index-margin, index+margin+1)]
|
||||
|
||||
""" Define some variables """
|
||||
sleepTime = 1
|
||||
ledCount = hyperion.ledCount
|
||||
|
||||
offset = hyperion.args.get('offset', 0)
|
||||
direction = bool(hyperion.args.get('direction', False))
|
||||
|
||||
hourMargin = hyperion.args.get('hour-margin', 2)
|
||||
minuteMargin = hyperion.args.get('minute-margin', 1)
|
||||
secondMargin = hyperion.args.get('second-margin', 0)
|
||||
|
||||
hourColor = hyperion.args.get('hour-color', (255,0,0))
|
||||
minuteColor = hyperion.args.get('minute-color', (0,255,0))
|
||||
secondColor = hyperion.args.get('second-color', (0,0,255))
|
||||
|
||||
markerColor = hyperion.args.get('marker-color', (255,255,255))
|
||||
|
||||
marker = ledCount/4
|
||||
markers = (0+offset, int(marker + offset) % ledCount, int(2*marker + offset) % ledCount, int(3*marker + offset) % ledCount)
|
||||
|
||||
""" The effect loop """
|
||||
while not hyperion.abort():
|
||||
|
||||
""" The algorithm to calculate the change in color """
|
||||
led_data = bytearray()
|
||||
|
||||
now = datetime.now()
|
||||
h = now.hour
|
||||
m = now.minute
|
||||
s = now.second
|
||||
|
||||
hmin = float(h+(1/60*m))
|
||||
|
||||
if hmin > 12:
|
||||
hmin -= 12
|
||||
|
||||
hour = float(hmin/12 * ledCount)
|
||||
led_hour = int(hour + offset) % ledCount
|
||||
|
||||
minute = m/60. * ledCount
|
||||
led_minute = int(minute + offset) % ledCount
|
||||
|
||||
second = s/60. * ledCount
|
||||
led_second = int(second + offset) % ledCount
|
||||
|
||||
hourRange = myRange(led_hour, hourMargin)
|
||||
minuteRange = myRange(led_minute, minuteMargin)
|
||||
secondRange = myRange(led_second, secondMargin)
|
||||
|
||||
for i in range(ledCount):
|
||||
blend = [0, 0, 0]
|
||||
|
||||
if i in markers:
|
||||
blend = markerColor
|
||||
|
||||
if i in hourRange:
|
||||
blend = hourColor
|
||||
|
||||
if i in minuteRange:
|
||||
blend = minuteColor
|
||||
|
||||
if i in secondRange:
|
||||
blend = secondColor
|
||||
|
||||
led_data += bytearray((int(blend[0]), int(blend[1]), int(blend[2])))
|
||||
|
||||
""" send the data to hyperion """
|
||||
hyperion.setColor(led_data)
|
||||
|
||||
""" sleep for a while """
|
||||
timediff = (datetime.now()-now).microseconds/1000000.
|
||||
time.sleep(sleepTime-timediff)
|
||||
|
@@ -3,6 +3,13 @@
|
||||
"script" : "light-clock.py",
|
||||
"args" :
|
||||
{
|
||||
"show_seconds" : true
|
||||
"show_seconds" : true,
|
||||
"hour-color" : [0,0,255],
|
||||
"minute-color" : [0,255,0],
|
||||
"second-color" : [255,0,0],
|
||||
"background-color" : [0,0,0],
|
||||
"marker-depth" : 0,
|
||||
"marker-width" : 5,
|
||||
"marker-color" : [255,255,255]
|
||||
}
|
||||
}
|
||||
|
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"type": "object",
|
||||
"script": "clock.py",
|
||||
"title": "edt_eff_clock_header_title",
|
||||
"required": true,
|
||||
"properties": {
|
||||
"offset": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_offset_title",
|
||||
"default": 0,
|
||||
"append": "edt_append_leds",
|
||||
"propertyOrder": 1
|
||||
},
|
||||
"hour-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorHour_title",
|
||||
"format": "colorpicker",
|
||||
"default": [255, 0, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 2
|
||||
},
|
||||
"minute-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorMinute_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 255, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 3
|
||||
},
|
||||
"second-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorSecond_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 0, 255],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 4
|
||||
},
|
||||
"hour-margin": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_hourMargin_title",
|
||||
"default": 2,
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"minute-margin": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_minuteMargin_title",
|
||||
"default": 1,
|
||||
"propertyOrder" : 6
|
||||
},
|
||||
"second-margin": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_secondMargin_title",
|
||||
"default": 0,
|
||||
"propertyOrder" : 7
|
||||
},
|
||||
"marker-color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_colorMarker_title",
|
||||
"format":"colorpicker",
|
||||
"default": [255,255,255],
|
||||
"items" : {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 8
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
27
effects/schema/flag.schema.json
Normal file
27
effects/schema/flag.schema.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"type":"object",
|
||||
"script" : "flag.py",
|
||||
"title":"edt_eff_flag_header_title",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"flags": {
|
||||
"type": "array",
|
||||
"format": "select",
|
||||
"title" : "edt_eff_flags_title",
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["de","lt","fr","se","nl"]
|
||||
},
|
||||
"propertyOrder" : 1
|
||||
}
|
||||
"switch-time": {
|
||||
"type": "integer",
|
||||
"title":"edt_eff_switchtime_title",
|
||||
"default": 5000,
|
||||
"append" : "edt_append_ms",
|
||||
"propertyOrder" : 2
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
@@ -4,11 +4,99 @@
|
||||
"title":"edt_eff_lightclock_header_title",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"hour-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorHour_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 0, 255],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 1
|
||||
},
|
||||
"minute-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorMinute_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 255, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 2
|
||||
},
|
||||
"second-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_colorSecond_title",
|
||||
"format": "colorpicker",
|
||||
"default": [255, 0, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 3
|
||||
},
|
||||
"background-color": {
|
||||
"type": "array",
|
||||
"title": "edt_eff_backgroundColor_title",
|
||||
"format": "colorpicker",
|
||||
"default": [255, 255, 255],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder": 4
|
||||
},
|
||||
"marker-depth": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_markerDepth_title",
|
||||
"default": 5,
|
||||
"minmum" : 0,
|
||||
"maximum" : 100,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"marker-width": {
|
||||
"type": "integer",
|
||||
"title": "edt_eff_markerWidth_title",
|
||||
"default": 5,
|
||||
"minmum" : 0,
|
||||
"maximum" : 100,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 6
|
||||
},
|
||||
"marker-color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_colorMarker_title",
|
||||
"format":"colorpicker",
|
||||
"default": [255,255,255],
|
||||
"items" : {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 7
|
||||
},
|
||||
"show_seconds": {
|
||||
"type": "boolean",
|
||||
"title":"edt_eff_showseconds_title",
|
||||
"default": true,
|
||||
"propertyOrder" : 1
|
||||
"propertyOrder" : 8
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
Reference in New Issue
Block a user