mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
improve serial hotplug (#389)
* - disable device when error indecates that the problem is not solvable on reconnect
- introduce a preOpenDelay of 2 seconds (currently value is hardcoded)
* rs232:
- make preOpenDelay available via webui
- fix preOpenDelay
- add basic usb serial detection
* - revert 3819ae7
- fix schema files
* make json checks compat with utf8+bom
* make shutdown effect a bit more flexible
This commit is contained in:
@@ -1,68 +1,68 @@
|
||||
{
|
||||
"type":"object",
|
||||
"script" : "candle.py",
|
||||
"title":"edt_eff_candle_header_title",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"candles": {
|
||||
"type": "string",
|
||||
"title":"edt_eff_whichleds_title",
|
||||
"enum" : ["all","all-together","list"],
|
||||
"default" : "all",
|
||||
"options" : {
|
||||
"enum_titles" : ["edt_eff_enum_all", "edt_eff_enum_all-together", "edt_eff_enum_list"]
|
||||
"type":"object",
|
||||
"script" : "candle.py",
|
||||
"title":"edt_eff_candle_header_title",
|
||||
"required":true,
|
||||
"properties":{
|
||||
"candles": {
|
||||
"type": "string",
|
||||
"title":"edt_eff_whichleds_title",
|
||||
"enum" : ["all","all-together","list"],
|
||||
"default" : "all",
|
||||
"options" : {
|
||||
"enum_titles" : ["edt_eff_enum_all", "edt_eff_enum_all-together", "edt_eff_enum_list"]
|
||||
},
|
||||
"propertyOrder" : 1
|
||||
},
|
||||
"propertyOrder" : 1
|
||||
"ledlist": {
|
||||
"type": "string",
|
||||
"title":"edt_eff_ledlist_title",
|
||||
"default" : "1,11,21",
|
||||
"propertyOrder" : 2
|
||||
},
|
||||
"color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_color_title",
|
||||
"format":"colorpicker",
|
||||
"default": [255,138,0],
|
||||
"items" : {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"colorShift": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_colorshift_title",
|
||||
"default": 1,
|
||||
"minimum" : 0,
|
||||
"maximum": 30,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"brightness": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_brightness_title",
|
||||
"default": 100,
|
||||
"minimum" : 1,
|
||||
"maximum": 100,
|
||||
"step" : 10,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"sleepTime": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_sleeptime_title",
|
||||
"default": 0.15,
|
||||
"minimum" : 0.01,
|
||||
"maximum": 1,
|
||||
"step": 0.01,
|
||||
"append" : "edt_append_s",
|
||||
"propertyOrder" : 6
|
||||
}
|
||||
},
|
||||
"ledlist": {
|
||||
"type": "string",
|
||||
"title":"edt_eff_ledlist_title",
|
||||
"default" : "1,11,21",
|
||||
"propertyOrder" : 2
|
||||
},
|
||||
"color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_color_title",
|
||||
"format":"colorpicker",
|
||||
"default": [255,138,0],
|
||||
"items" : {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"colorShift": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_colorshift_title",
|
||||
"default": 1,
|
||||
"minimum" : 0,
|
||||
"maximum": 30,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"brightness": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_brightness_title",
|
||||
"default": 100,
|
||||
"minimum" : 1,
|
||||
"maximum": 100,
|
||||
"step" : 10,
|
||||
"append" : "edt_append_percent",
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"sleepTime": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_sleeptime_title",
|
||||
"default": 0.15,
|
||||
"minimum" : 0.01,
|
||||
"maximum": 1,
|
||||
"step": 0.01,
|
||||
"append" : "edt_append_s",
|
||||
"propertyOrder" : 6
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
"additionalProperties": false
|
||||
}
|
||||
|
@@ -1,78 +1,78 @@
|
||||
{
|
||||
"type":"object",
|
||||
"script" : "clock.py",
|
||||
"title":"edt_eff_clock_header_title",
|
||||
"required":true,
|
||||
"properties":{
|
||||
{
|
||||
"type": "object",
|
||||
"script": "clock.py",
|
||||
"title": "edt_eff_clock_header_title",
|
||||
"required": true,
|
||||
"properties": {
|
||||
"offset": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_offset_title",
|
||||
"title": "edt_eff_offset_title",
|
||||
"default": 0,
|
||||
"append" : "edt_append_leds",
|
||||
"propertyOrder" : 1
|
||||
"append": "edt_append_leds",
|
||||
"propertyOrder": 1
|
||||
},
|
||||
"hour-color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_colorHour_title",
|
||||
"format":"colorpicker",
|
||||
"default": [255,0,0],
|
||||
"items" : {
|
||||
"title": "edt_eff_colorHour_title",
|
||||
"format": "colorpicker",
|
||||
"default": [255, 0, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 2
|
||||
"propertyOrder": 2
|
||||
},
|
||||
"minute-color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_colorMinute_title",
|
||||
"format":"colorpicker",
|
||||
"default": [0,255,0],
|
||||
"items" : {
|
||||
"title": "edt_eff_colorMinute_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 255, 0],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 3
|
||||
"propertyOrder": 3
|
||||
},
|
||||
"second-color": {
|
||||
"type": "array",
|
||||
"title":"edt_eff_colorSecond_title",
|
||||
"format":"colorpicker",
|
||||
"default": [0,0,255],
|
||||
"items" : {
|
||||
"title": "edt_eff_colorSecond_title",
|
||||
"format": "colorpicker",
|
||||
"default": [0, 0, 255],
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 4
|
||||
"propertyOrder": 4
|
||||
},
|
||||
"hour-margin": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_hourMargin_title",
|
||||
"title": "edt_eff_hourMargin_title",
|
||||
"default": 2,
|
||||
"append" : "edt_append_leds",
|
||||
"propertyOrder" : 5
|
||||
"append": "edt_append_leds",
|
||||
"propertyOrder": 5
|
||||
},
|
||||
"minute-margin": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_minuteMargin_title",
|
||||
"title": "edt_eff_minuteMargin_title",
|
||||
"default": 1,
|
||||
"append" : "edt_append_leds",
|
||||
"propertyOrder" : 6
|
||||
"append": "edt_append_leds",
|
||||
"propertyOrder": 6
|
||||
},
|
||||
"second-margin": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_secondMargin_title",
|
||||
"title": "edt_eff_secondMargin_title",
|
||||
"default": 0,
|
||||
"append" : "edt_append_leds",
|
||||
"propertyOrder" : 7
|
||||
"append": "edt_append_leds",
|
||||
"propertyOrder": 7
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{
|
||||
{
|
||||
"type":"object",
|
||||
"script" : "pacman.py",
|
||||
"title":"edt_eff_pacman_header_title",
|
||||
|
@@ -40,11 +40,23 @@
|
||||
"maxItems": 3,
|
||||
"propertyOrder" : 3
|
||||
},
|
||||
"initial-blink": {
|
||||
"type": "boolean",
|
||||
"title":"edt_eff_initial_blink_title",
|
||||
"default": true,
|
||||
"propertyOrder" : 4
|
||||
},
|
||||
"set-post-color": {
|
||||
"type": "boolean",
|
||||
"title":"edt_eff_set_post_color_title",
|
||||
"default": true,
|
||||
"propertyOrder" : 5
|
||||
},
|
||||
"shutdown-enabled": {
|
||||
"type": "boolean",
|
||||
"title":"edt_eff_enableshutdown_title",
|
||||
"default": false,
|
||||
"propertyOrder" : 4
|
||||
"propertyOrder" : 6
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
@@ -6,6 +6,8 @@
|
||||
"speed" : 1.2,
|
||||
"alarm-color" : [255,0,0],
|
||||
"post-color" : [255,174,11],
|
||||
"shutdown-enabled" : false
|
||||
"shutdown-enabled" : false,
|
||||
"initial-blink" : true,
|
||||
"set-post-color" : true
|
||||
}
|
||||
}
|
||||
|
@@ -13,21 +13,25 @@ sleepTime = float(hyperion.args.get('speed', 1.0))*0.5
|
||||
alarmColor = hyperion.args.get('alarm-color', (255,0,0))
|
||||
postColor = hyperion.args.get('post-color', (255,174,11))
|
||||
off = bool(hyperion.args.get('shutdown-enabled', False))
|
||||
initialBlink = bool(hyperion.args.get('initial-blink', True))
|
||||
setPostColor = bool(hyperion.args.get('set-post-color', True))
|
||||
|
||||
width = 12
|
||||
height = 10
|
||||
|
||||
imageData = bytearray(height * width * (0,0,0))
|
||||
|
||||
# Start the write data loop
|
||||
for i in range(6):
|
||||
if hyperion.abort():
|
||||
off = False
|
||||
break
|
||||
if i % 2:
|
||||
hyperion.setColor(alarmColor[0], alarmColor[1], alarmColor[2])
|
||||
else:
|
||||
hyperion.setColor(0, 0, 0)
|
||||
time.sleep(sleepTime)
|
||||
if initialBlink:
|
||||
for i in range(6):
|
||||
if hyperion.abort():
|
||||
off = False
|
||||
break
|
||||
if i % 2:
|
||||
hyperion.setColor(alarmColor[0], alarmColor[1], alarmColor[2])
|
||||
else:
|
||||
hyperion.setColor(0, 0, 0)
|
||||
time.sleep(sleepTime)
|
||||
|
||||
for y in range(height,0,-1):
|
||||
if hyperion.abort():
|
||||
@@ -39,11 +43,12 @@ for y in range(height,0,-1):
|
||||
time.sleep(sleepTime)
|
||||
time.sleep(1)
|
||||
|
||||
for y in range(height):
|
||||
for x in range(width):
|
||||
setPixel(x, y, postColor)
|
||||
hyperion.setImage(width, height, imageData)
|
||||
time.sleep(2)
|
||||
if setPostColor:
|
||||
for y in range(height):
|
||||
for x in range(width):
|
||||
setPixel(x, y, postColor)
|
||||
hyperion.setImage(width, height, imageData)
|
||||
time.sleep(2)
|
||||
|
||||
if off and not hyperion.abort():
|
||||
subprocess.call("halt")
|
||||
|
Reference in New Issue
Block a user