{ "type" : "object", "required" : true, "properties" : { "logger" : { "type" : "object", "title" : "Logging", "properties" : { "level" : { "type" : "string", "enum" : ["silent", "warn", "verbose", "debug"], "title" : "Log-Level", "default" : "warn" } }, "additionalProperties" : false }, "device" : { "type" : "object", "title" : "LED Device General", "required" : true, "defaultProperties": ["name","ledCount","colorOrder"], "properties" : { "name" : { "type" : "string", "title" : "Configuration name", "required" : true, "propertyOrder" : 1 }, "type" : { "type" : "string", "required" : true }, "ledCount" : { "type" : "integer", "minimum" : 0, "title" : "Count of all hardware LEDs", "propertyOrder" : 2 }, "colorOrder" : { "type" : "string", "title" : "RGB byte order", "enum" : ["rgb", "bgr", "rbg", "brg", "gbr", "grb"], "propertyOrder" : 3 } }, "additionalProperties" : true }, "color" : { "type":"object", "title" : "Color Calibration", "required" : true, "defaultProperties": ["channelAdjustment_enable","channelAdjustment","transform_enable","transform"], "properties": { "channelAdjustment_enable" : { "type" : "boolean", "default" : true, "propertyOrder" : 1 }, "channelAdjustment_v4l_only" : { "type" : "boolean", "default" : false, "propertyOrder" : 2 }, "channelAdjustment" : { "type" : "array", "required" : true, "propertyOrder" : 3, "items" : { "type" : "object", "required" : true, "properties" : { "id" : { "type" : "string", "required" : true }, "leds" : { "type" : "string", "required" : true }, "pureRed" : { "type":"object", "required" : true, "properties": { "redChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "greenChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "blueChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 } }, "additionalProperties" : false }, "pureGreen" : { "type":"object", "required" : true, "properties": { "redChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "greenChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "blueChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 } }, "additionalProperties" : false }, "pureBlue" : { "type":"object", "required" : true, "properties": { "redChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "greenChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 }, "blueChannel" : { "type": "integer", "required" : true, "minimum": 0, "maximum": 255 } }, "additionalProperties" : false } }, "additionalProperties" : false } }, "transform_enable" : { "type" : "boolean", "default" : true, "propertyOrder" : 4 }, "transform_v4l_only" : { "type" : "boolean", "default" : false, "propertyOrder" : 5 }, "transform" : { "type" : "array", "required" : true, "propertyOrder" : 6, "items" : { "type" : "object", "required" : true, "properties" : { "id" : { "type" : "string", "required" : true }, "leds" : { "type" : "string", "required" : true }, "hsl" : { "type":"object", "required" : true, "properties": { "saturationGain" : { "type" : "number", "required" : true, "minimum" : 0.0 }, "luminanceGain" : { "type" : "number", "required" : true, "minimum" : 0.0 }, "luminanceMinimum" : { "type" : "number", "required" : true, "minimum" : 0.0 } }, "additionalProperties" : false }, "red" : { "type":"object", "required" : true, "properties": { "threshold" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 1.0 }, "gamma" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 100.0 } }, "additionalProperties" : false }, "green" : { "type":"object", "required" : true, "properties": { "threshold" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 1.0 }, "gamma" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 100.0 } }, "additionalProperties" : false }, "blue" : { "type":"object", "required" : true, "properties": { "threshold" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 1.0 }, "gamma" : { "type" : "number", "required" : true, "minimum" : 0.0, "maximum": 100.0 } }, "additionalProperties" : false } }, "additionalProperties" : false } } }, "additionalProperties" : false }, "smoothing": { "type" : "object", "title" : "Smoothing", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : true, "propertyOrder" : 1 }, "type" : { "type" : "string", "title" : "Type", "enum" : ["linear"], "default" : "linear", "propertyOrder" : 2 }, "time_ms" : { "type" : "integer", "title" : "Time", "minimum" : 25, "maximum": 600, "default" : 200, "append" : "ms", "propertyOrder" : 3 }, "updateFrequency" : { "type" : "number", "title" : "Update frequency", "minimum" : 1.000, "maximum" : 100.000, "default" : 25.000, "append" : "Hz", "propertyOrder" : 4 }, "updateDelay" : { "type" : "integer", "title" : "Update delay", "minimum" : 0, "maximum": 2048, "default" : 0, "append" : "ms", "propertyOrder" : 5 }, "continuousOutput" : { "type" : "boolean", "title" : "Continuous output", "default" : true, "propertyOrder" : 6 } }, "additionalProperties" : false }, "grabberV4L2" : { "type":"array", "title" : "USB Grabber", "items": { "type" : "object", "title" : "USB Grabber", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : false, "propertyOrder" : 1 }, "device" : { "type" : "string", "title" : "Device", "default" : "auto", "propertyOrder" : 2 }, "input" : { "type" : "integer", "title" : "Input", "default" : 0, "propertyOrder" : 3 }, "standard" : { "type" : "string", "title" : "Video standard", "enum" : ["PAL","NTSC"], "default" : "PAL", "propertyOrder" : 4 }, "width" : { "type" : "integer", "title" : "Width", "default" : -1, "append" : "Pixel", "propertyOrder" : 5 }, "height" : { "type" : "integer", "title" : "Height", "default" : -1, "append" : "Pixel", "propertyOrder" : 6 }, "frameDecimation" : { "type" : "integer", "title" : "Frame decimation", "default" : 2, "propertyOrder" : 7 }, "sizeDecimation" : { "type" : "integer", "title" : "Size decimation", "default" : 6, "propertyOrder" : 8 }, "priority" : { "type" : "integer", "title" : "Priority channel", "default" : 900, "propertyOrder" : 9 }, "mode" : { "type" : "string", "title" : "Mode", "enum" : ["2D","3DSBS","3DTAB"], "default" : "2D", "propertyOrder" : 10 }, "useKodiChecker" : { "type" : "boolean", "title" : "Use Kodi Watch", "default" : false, "propertyOrder" : 11 }, "cropLeft" : { "type" : "integer", "title" : "Crop left", "minimum" : 0, "default" : 0, "append" : "Pixel", "propertyOrder" : 12 }, "cropRight" : { "type" : "integer", "title" : "Crop right", "minimum" : 0, "default" : 0, "append" : "Pixel", "propertyOrder" : 13 }, "cropTop" : { "type" : "integer", "title" : "Crop top", "minimum" : 0, "default" : 0, "append" : "Pixel", "propertyOrder" : 14 }, "cropBottom" : { "type" : "integer", "title" : "Crop bottom", "minimum" : 0, "default" : 0, "append" : "Pixel", "propertyOrder" : 15 }, "redSignalThreshold" : { "type" : "number", "title" : "Red signal threshold", "minimum" : 0.0, "maximum" : 1.0, "default" : 0.1, "append" : "%", "propertyOrder" : 16 }, "greenSignalThreshold" : { "type" : "number", "title" : "Green signal threshold", "minimum" : 0.0, "maximum" : 1.0, "default" : 0.1, "append" : "%", "propertyOrder" : 17 }, "blueSignalThreshold" : { "type" : "number", "title" : "Blue signal threshold", "minimum" : 0.0, "maximum" : 1.0, "default" : 0.1, "append" : "%", "propertyOrder" : 18 } }, "additionalProperties" : false } }, "framegrabber" : { "type" : "object", "title" : "Framegrabber", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : true, "propertyOrder" : 1 }, "type" : { "type" : "string", "title" : "Type", "enum" : ["auto","dispmanx","amlogic","x11","framebuffer"], "default" : "auto" }, "width" : { "type" : "integer", "title" : "Width", "default" : 96, "append" : "Pixel" }, "height" : { "type" : "integer", "title" : "Height", "default" : 96, "append" : "Pixel" }, "frequency_Hz" : { "type" : "integer", "title" : "Frequency", "minimum" : 0, "default" : 10, "append" : "Hz" }, "priority" : { "type" : "integer", "title" : "Priority channel", "minimum" : 0, "default" : 890 }, "cropLeft" : { "type" : "integer", "title" : "Crop left", "minimum" : 0, "default" : 0, "append" : "Pixel" }, "cropRight" : { "type" : "integer", "title" : "Crop right", "minimum" : 0, "default" : 0, "append" : "Pixel" }, "cropTop" : { "type" : "integer", "title" : "Crop top", "minimum" : 0, "default" : 0, "append" : "Pixel" }, "cropBottom" : { "type" : "integer", "title" : "Crop bottom", "minimum" : 0, "default" : 0, "append" : "Pixel" }, "useXGetImage" : { "type" : "boolean", "title" : "Use XGetImage", "default" : false }, "horizontalPixelDecimation" : { "type" : "integer", "title" : "Horizontal pixel decimation", "minimum" : 0, "default" : 8 }, "verticalPixelDecimation" : { "type" : "integer", "title" : "Vertical pixel decimation", "minimum" : 0, "default" : 8 }, "device" : { "type" : "string", "title" : "Device", "default" : "/dev/fb0" }, "display" : { "type" : "integer", "title" : "Display", "minimum" : 0 } }, "additionalProperties" : false }, "blackborderdetector" : { "type" : "object", "title" : "Blackbar detector", "defaultProperties": ["enable","mode","threshold"], "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : true, "propertyOrder" : 1 }, "threshold" : { "type" : "number", "title" : "Threshold", "minimum" : 0.0, "maximum" : 1.0, "default" : 0.05, "append" : "%", "propertyOrder" : 2 }, "unknownFrameCnt" : { "type" : "integer", "minimum" : 0, "default" : 600, "propertyOrder" : 3 }, "borderFrameCnt" : { "type" : "integer", "minimum" : 0, "default" : 50, "propertyOrder" : 4 }, "maxInconsistentCnt" : { "type" : "integer", "minimum" : 0, "default" : 10, "propertyOrder" : 5 }, "blurRemoveCnt" : { "type" : "integer", "minimum" : 0, "default" : 1, "propertyOrder" : 6 }, "mode" : { "type" : "string", "title": "Mode", "enum" : ["default", "classic", "osd"], "default" : "default", "propertyOrder" : 7 } }, "additionalProperties" : false }, "kodiVideoChecker" : { "type" : "object", "title" : "Kodi Watch", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : false, "propertyOrder" : 1 }, "kodiAddress" : { "type" : "string", "title" : "Kodi IP address", "default" : "127.0.0.1", "propertyOrder" : 2 }, "kodiTcpPort" : { "type" : "integer", "title" : "Kodi TCP port", "minimum" : 0, "maximum" : 65535, "default" : 9090, "propertyOrder" : 3 }, "grabVideo" : { "type" : "boolean", "title" : "Video", "default" : true, "propertyOrder" : 4 }, "grabPictures" : { "type" : "boolean", "title" : "Pictures", "default" : true, "propertyOrder" : 5 }, "grabAudio" : { "type" : "boolean", "title" : "Audio", "default" : true, "propertyOrder" : 6 }, "grabMenu" : { "type" : "boolean", "title" : "Menu", "default" : false, "propertyOrder" : 7 }, "grabPause" : { "type" : "boolean", "title" : "Pause", "default" : false, "propertyOrder" : 8 }, "grabScreensaver" : { "type" : "boolean", "title" : "Screensaver", "default" : false, "propertyOrder" : 9 }, "enable3DDetection" : { "type" : "boolean", "title" : "Detect 3D", "default" : false, "propertyOrder" : 10 } }, "additionalProperties" : false }, "initialEffect" : { "type" : "object", "title" : "Initial Effect", "defaultProperties": ["background-effect","foreground-effect","foreground-duration_ms"], "properties" : { "background-effect" : { "type" : "array", "title" : "Background effect", "propertyOrder" : 3 }, "background-effect-args" : { "type" : "object", "title" : "Background effect arguments" }, "foreground-effect" : { "type" : "array", "title" : "Boot effect", "propertyOrder" : 1 }, "foreground-effect-args" : { "type" : "object", "title" : "Boot effect arguments" }, "foreground-duration_ms" : { "type" : "integer", "title" : "Boot effect duration", "propertyOrder" : 2 } }, "additionalProperties" : false }, "forwarder" : { "type" : "object", "title" : "Forwarder", "required" : true, "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "required" : true, "propertyOrder" : 1 }, "json" : { "type" : "array", "title" : "List of JSON clients", "required" : true, "propertyOrder" : 2 }, "proto" : { "type" : "array", "title" : "List of PROTO clients", "required" : true, "propertyOrder" : 3 } }, "additionalProperties" : false }, "jsonServer" : { "type" : "object", "required" : true, "title" : "JSON Server", "properties" : { "port" : { "type" : "integer", "required" : true, "title" : "Port", "minimum" : 0, "maximum" : 65535, "default" : 19444 } }, "additionalProperties" : false }, "protoServer" : { "type" : "object", "required" : true, "title" : "Proto Server", "properties" : { "port" : { "type" : "integer", "required" : true, "title" : "Port", "minimum" : 0, "maximum" : 65535, "default" : 19445 } }, "additionalProperties" : false }, "boblightServer" : { "type" : "object", "title" : "Boblight Server", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : false, "propertyOrder" : 1 }, "port" : { "type" : "integer", "required" : true, "title" : "Port", "minimum" : 0, "maximum" : 65535, "propertyOrder" : 2 }, "priority" : { "type" : "integer", "title" : "Priority", "minimum" : 0, "default" : 800, "propertyOrder" : 3 } }, "additionalProperties" : false }, "udpListener" : { "type" : "object", "title" : "UDP Listener", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : false, "propertyOrder" : 1 }, "address" : { "type" : "string", "title" : "Address", "default" : "239.255.28.01", "required" : true, "propertyOrder" : 2 }, "port" : { "type" : "integer", "title" : "Port", "minimum" : 0, "maximum" : 65535, "default" : 2801, "propertyOrder" : 3 }, "priority" : { "type" : "integer", "title" : "Priority", "default" : 800, "propertyOrder" : 4 }, "timeout" : { "type" : "integer", "title" : "Timeout", "default" : 10000, "propertyOrder" : 5 }, "shared" : { "type" : "boolean", "title" : "Shared", "default" : false, "propertyOrder" : 6 } }, "additionalProperties" : false }, "webConfig" : { "type" : "object", "title" : "WebUI - DANGER CHANGES CAN MAKE THE WEBUI UNREACHABLE!", "properties" : { "enable" : { "type" : "boolean", "title" : "Activate", "default" : true, "propertyOrder" : 1 }, "document_root" : { "type" : "string", "title" : "Document Root", "propertyOrder" : 2 }, "port" : { "type" : "integer", "title" : "Port", "default" : 8099, "propertyOrder" : 3 } }, "additionalProperties" : false }, "effects" : { "type" : "object", "properties" : { "paths" : { "type" : "array", "title" : "List of folders to additional effects", "propertyOrder" : 1 }, "disable" : { "type" : "array", "title" : "List of disabled effects", "propertyOrder" : 2 } }, "additionalProperties" : false }, "leds": { "type":"array", "required":true, "items": { "type":"object", "properties": { "index": { "type":"integer", "required":true }, "clone": { "type":"integer" }, "hscan": { "type":"object", "properties": { "minimum": { "type":"number", "minimum" : 0, "maximum" : 1, "required":true }, "maximum": { "type":"number", "minimum" : 0, "maximum" : 1, "required":true } }, "additionalProperties" : false }, "vscan": { "type":"object", "properties": { "minimum": { "type":"number", "minimum" : 0, "maximum" : 1, "required":true }, "maximum": { "type":"number", "minimum" : 0, "maximum" : 1, "required":true } }, "additionalProperties" : false }, "colorOrder": { "type": "string", "enum" : ["rgb", "bgr", "rbg", "brg", "gbr", "grb"] } }, "additionalProperties" : false } } }, "additionalProperties" : false }