This commit is contained in:
brindosch
2017-04-16 15:25:18 +02:00
parent 203b04d7f4
commit afb26ab978
7 changed files with 134 additions and 187 deletions

View File

@@ -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)

View File

@@ -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]
}
}

View File

@@ -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
}

View 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
}

View File

@@ -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