2016-06-27 10:12:19 +02:00
// This is a example config (hyperion.config.json) with comments, in any case you need to create your own one with HyperCon!
// location of all configs: /etc/hyperion
// Webpage: https://www.hyperion-project.org
{
2017-09-04 23:12:59 +02:00
/// general Settings
2016-12-23 19:37:35 +01:00
/// * 'name' : The user friendly name of the hyperion instance (used for network things)
2017-01-04 10:55:10 +01:00
/// * 'showOptHelp' : Show option expanations at the webui. Highly recommended for beginners.
2016-12-23 19:37:35 +01:00
"general" :
{
"name" : "MyHyperionConfig",
2017-09-04 23:12:59 +02:00
"showOptHelp" : true
2016-12-23 19:37:35 +01:00
},
2016-06-27 23:56:21 +02:00
/// set log level: silent warn verbose debug
"logger" :
{
"level" : "warn"
},
2017-09-04 23:12:59 +02:00
/// Device configuration contains the following fields:
2016-06-27 10:12:19 +02:00
/// * 'name' : The user friendly name of the device (only used for display purposes)
2018-12-28 18:12:45 +01:00
/// * 'type' : The type of the device
2016-06-27 10:12:19 +02:00
/// * [device type specific configuration]
/// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).
2016-12-02 12:07:24 +01:00
/// * 'rewriteTime': in ms. Data is resend to leds, if no new data is available in thistime. 0 means no refresh
2016-06-27 10:12:19 +02:00
"device" :
{
"type" : "file",
2018-12-28 18:12:45 +01:00
"hardwareLedCount" : 1,
2016-06-27 10:12:19 +02:00
"output" : "/dev/null",
"rate" : 1000000,
2016-12-02 12:07:24 +01:00
"colorOrder" : "rgb",
2017-09-04 23:12:59 +02:00
"rewriteTime": 0
2016-06-27 10:12:19 +02:00
},
2017-09-04 23:12:59 +02:00
/// Color manipulation configuration used to tune the output colors to specific surroundings.
/// The configuration contains a list of color-transforms. Each transform contains the
2016-06-27 10:12:19 +02:00
/// following fields:
2016-12-19 23:59:50 +01:00
/// * 'imageToLedMappingType' : multicolor_mean - every led has it's own calculatedmean color
/// unicolor_mean - every led has same color, color is the mean of whole image
2016-06-27 10:12:19 +02:00
/// * 'channelAdjustment'
2016-12-29 17:02:37 +01:00
/// * 'id' : The unique identifier of the channel adjustments (eg 'device_1')
/// * 'leds' : The indices (or index ranges) of the leds to which this channel adjustment applies
/// (eg '0-5, 9, 11, 12-17'). The indices are zero based.
2018-12-27 23:11:32 +01:00
/// * 'white'/'red'/'green'/'blue'/'cyan'/'magenta'/'yellow' : Array of RGB to adjust the output color
2017-09-04 23:12:59 +02:00
/// * 'gammaRed'/'gammaGreen'/'gammaBlue' : Gamma value for each channel
2017-01-17 21:53:35 +01:00
/// * 'id' : The unique identifier of the channel adjustments (eg 'device_1')
/// * 'id' : The unique identifier of the channel adjustments (eg 'device_1')
2017-04-03 05:19:05 +02:00
/// * 'backlightThreshold' : Minimum brightness (backlight)
/// * 'backlightColored' : backlight with color, instead of white
/// * 'brightness' : overall brightness
/// * 'brightnessCompensation' : 100 means brightness differences are compensated (white is as bright as red, is as bright as yellow.
/// 0 means white is 3x brighter than red, yellow is 2x brighter than red
2016-06-27 10:12:19 +02:00
"color" :
{
2016-12-19 23:59:50 +01:00
"imageToLedMappingType" : "multicolor_mean",
2016-06-27 10:12:19 +02:00
"channelAdjustment" :
[
{
"id" : "default",
"leds" : "*",
2016-12-29 17:02:37 +01:00
"white" : [255,255,255],
"red" : [255,0,0],
"green" : [0,255,0],
"blue" : [0,0,255],
"cyan" : [0,255,255],
"magenta" : [255,0,255],
2017-01-06 14:25:55 +01:00
"yellow" : [255,255,0],
2017-02-16 18:33:33 +01:00
"gammaRed" : 1.5,
"gammaGreen" : 1.5,
"gammaBlue" : 1.5,
2017-04-03 05:19:05 +02:00
"backlightThreshold" : 0,
2017-02-11 22:52:47 +01:00
"backlightColored" : false,
2017-04-03 05:19:05 +02:00
"brightness" : 100,
"brightnessCompensation" : 80
2016-06-27 10:12:19 +02:00
}
2016-07-30 13:07:53 +02:00
]
},
2016-06-27 10:12:19 +02:00
2016-07-30 13:07:53 +02:00
/// smoothing
2017-09-04 23:12:59 +02:00
/// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning
2016-07-30 13:07:53 +02:00
/// parameters:
/// - 'enable' Enable or disable the smoothing (true/false)
/// - 'type' The type of smoothing algorithm ('linear' or 'none')
/// - 'time_ms' The time constant for smoothing algorithm in milliseconds
/// - 'updateFrequency' The update frequency of the leds in Hz
/// - 'updateDelay' The delay of the output to leds (in periods of smoothing)
/// - 'continuousOutput' Flag for enabling continuous output to Leds regardless of new input or not
"smoothing" :
{
"enable" : true,
"type" : "linear",
"time_ms" : 200,
"updateFrequency" : 25.0000,
"updateDelay" : 0,
"continuousOutput" : true
2016-06-27 10:12:19 +02:00
},
/// Configuration for the embedded V4L2 grabber
2018-12-28 18:12:45 +01:00
/// * device : V4L2 Device to use [default="auto"] (Auto detection)
2018-12-27 23:11:32 +01:00
/// * standard : Video standard (PAL/NTSC/SECAM/NO_CHANGE) [default="NO_CHANGE"]
2016-06-27 10:12:19 +02:00
/// * sizeDecimation : Size decimation factor [default=8]
/// * cropLeft : Cropping from the left [default=0]
/// * cropRight : Cropping from the right [default=0]
/// * cropTop : Cropping from the top [default=0]
/// * cropBottom : Cropping from the bottom [default=0]
2017-03-15 20:33:11 +01:00
/// * signalDetection : enable/disable signal detection [default=true]
2017-07-30 14:36:23 +02:00
/// * redSignalThreshold : Signal threshold for the red channel between 0 and 100 [default=5]
/// * greenSignalThreshold : Signal threshold for the green channel between 0 and 100 [default=5]
/// * blueSignalThreshold : Signal threshold for the blue channel between 0 and 100 [default=5]
/// * sDHOffsetMin : area for signal detection - horizontal minimum offset value. Values between 0.0 and 1.0
/// * sDVOffsetMin : area for signal detection - vertical minimum offset value. Values between 0.0 and 1.0
/// * sDHOffsetMax : area for signal detection - horizontal maximum offset value. Values between 0.0 and 1.0
/// * sDVOffsetMax : area for signal detection - vertical maximum offset value. Values between 0.0 and 1.0
2016-09-21 22:01:50 +02:00
"grabberV4L2" :
2016-08-30 22:28:13 +02:00
[
{
"device" : "auto",
2018-12-27 23:11:32 +01:00
"standard" : "NO_CHANGE",
2016-08-30 22:28:13 +02:00
"sizeDecimation" : 8,
2017-01-17 21:53:35 +01:00
"priority" : 240,
2016-08-30 22:28:13 +02:00
"cropLeft" : 0,
"cropRight" : 0,
"cropTop" : 0,
"cropBottom" : 0,
2017-07-30 14:36:23 +02:00
"redSignalThreshold" : 5,
"greenSignalThreshold" : 5,
"blueSignalThreshold" : 5,
"signalDetection" : false,
"sDVOffsetMin" : 0.25,
"sDHOffsetMin" : 0.25,
"sDVOffsetMax" : 0.75,
"sDHOffsetMax" : 0.75
2016-08-30 22:28:13 +02:00
}
2016-08-31 00:54:47 +02:00
],
2016-06-27 10:12:19 +02:00
2017-09-04 23:12:59 +02:00
/// The configuration for the frame-grabber, contains the following items:
2016-07-24 15:18:34 +02:00
/// * type : type of grabber. (auto|osx|dispmanx|amlogic|x11|framebuffer) [auto]
2016-06-27 10:12:19 +02:00
/// * width : The width of the grabbed frames [pixels]
/// * height : The height of the grabbed frames [pixels]
/// * frequency_Hz : The frequency of the frame grab [Hz]
2017-09-04 23:12:59 +02:00
/// * ATTENTION : Power-of-Two resolution is not supported and leads to unexpected behaviour!
2016-07-10 22:04:31 +02:00
"framegrabber" :
2016-06-27 10:12:19 +02:00
{
2016-07-24 15:18:34 +02:00
// for all type of grabbers
"type" : "framebuffer",
"frequency_Hz" : 10,
2017-09-04 23:12:59 +02:00
"cropLeft" : 0,
"cropRight" : 0,
"cropTop" : 0,
"cropBottom" : 0,
2016-07-24 15:18:34 +02:00
// valid for grabber: osx|dispmanx|amlogic|framebuffer
2016-07-13 12:14:02 +02:00
"width" : 96,
"height" : 96,
2017-09-04 23:12:59 +02:00
2016-07-24 15:18:34 +02:00
// valid for x11
2018-12-27 23:11:32 +01:00
"pixelDecimation" : 8,
2016-07-24 15:18:34 +02:00
// valid for framebuffer
"device" : "/dev/fb0"
2016-06-27 10:12:19 +02:00
},
2017-09-04 23:12:59 +02:00
/// The black border configuration, contains the following items:
2016-06-27 10:12:19 +02:00
/// * enable : true if the detector should be activated
2017-03-24 10:17:36 +01:00
/// * threshold : Value below which a pixel is regarded as black (value between 0 and 100 [%])
2016-06-27 10:12:19 +02:00
/// * unknownFrameCnt : Number of frames without any detection before the border is set to 0 (default 600)
/// * borderFrameCnt : Number of frames before a consistent detected border gets set (default 50)
/// * maxInconsistentCnt : Number of inconsistent frames that are ignored before a new border gets a chance to proof consistency
/// * blurRemoveCnt : Number of pixels that get removed from the detected border to cut away blur (default 1)
/// * mode : Border detection mode (values=default,classic,osd)
"blackborderdetector" :
{
2016-07-10 22:04:31 +02:00
"enable" : true,
2017-03-24 10:17:36 +01:00
"threshold" : 5,
2016-07-10 22:04:31 +02:00
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
2016-06-27 10:12:19 +02:00
"maxInconsistentCnt" : 10,
2016-07-10 22:04:31 +02:00
"blurRemoveCnt" : 1,
"mode" : "default"
2016-06-27 10:12:19 +02:00
},
2017-01-04 10:55:10 +01:00
/// foregroundEffect sets a "booteffect" or "bootcolor" during startup for a given period in ms (duration_ms)
/// * enable : if true, foreground effect is enabled
/// * type : choose between "color" or "effect"
/// * color : if type is color, a color is used (RGB) (example: [0,0,255])
/// * effect : if type is effect a effect is used (example: "Rainbow swirl fast")
/// * duration_ms : The duration of the selected effect or color (0=endless)
/// HINT: "foregroundEffect" starts always with priority 0, so it blocks all remotes and grabbers if the duration_ms is endless (0)
"foregroundEffect" :
2016-07-10 22:04:31 +02:00
{
2017-01-04 10:55:10 +01:00
"enable" : true,
"type" : "effect",
"color" : [0,0,255],
"effect" : "Rainbow swirl fast",
"duration_ms" : 3000
},
2017-09-04 23:12:59 +02:00
2017-11-22 00:52:55 +01:00
/// backgroundEffect sets a background effect or color. It is used when all capture devices are stopped (manual via remote). Could be also selected via priorities selection.
2017-01-04 10:55:10 +01:00
/// * enable : if true, background effect is enabled
/// * type : choose between "color" or "effect"
/// * color : if type is color, a color is used (RGB) (example: [255,134,0])
/// * effect : if type is effect a effect is used (example: "Rainbow swirl fast")
"backgroundEffect" :
{
"enable" : true,
"type" : "effect",
"color" : [255,138,0],
"effect" : "Warm mood blobs"
2016-07-10 22:04:31 +02:00
},
2016-06-27 10:12:19 +02:00
2017-09-04 23:12:59 +02:00
/// The configuration of the Json/Proto forwarder. Forward messages to multiple instances of Hyperion on same and/or other hosts
/// 'proto' is mostly used for video streams and 'json' for effects
2016-07-10 22:04:31 +02:00
/// * enable : Enable or disable the forwarder (true/false)
2017-09-04 23:12:59 +02:00
/// * proto : Proto server adress and port of your target. Syntax:[IP:PORT] -> ["127.0.0.1:19447"] or more instances to forward ["127.0.0.1:19447","192.168.0.24:19449"]
/// * json : Json server adress and port of your target. Syntax:[IP:PORT] -> ["127.0.0.1:19446"] or more instances to forward ["127.0.0.1:19446","192.168.0.24:19448"]
2016-06-27 10:12:19 +02:00
/// HINT:If you redirect to "127.0.0.1" (localhost) you could start a second hyperion with another device/led config!
/// Be sure your client(s) is/are listening on the configured ports. The second Hyperion (if used) also needs to be configured! (HyperCon -> External -> Json Server/Proto Server)
2016-07-10 22:04:31 +02:00
"forwarder" :
{
2016-07-10 12:42:21 +02:00
"enable" : false,
2016-07-10 22:04:31 +02:00
"proto" : ["127.0.0.1:19447"],
"json" : ["127.0.0.1:19446"]
},
2016-06-27 10:12:19 +02:00
/// The configuration of the Json server which enables the json remote interface
/// * port : Port at which the json server is started
"jsonServer" :
{
"port" : 19444
},
2018-12-28 18:12:45 +01:00
/// The configuration of the Flatbuffer server which enables the Flatbuffer remote interface
/// * port : Port at which the flatbuffer server is started
"flatbufServer" :
{
"enable" : true,
"port" : 19400,
"timeout" : 5
},
2016-06-27 10:12:19 +02:00
/// The configuration of the boblight server which enables the boblight remote interface
2016-07-10 22:04:31 +02:00
/// * enable : Enable or disable the boblight server (true/false)
2016-06-27 10:12:19 +02:00
/// * port : Port at which the boblight server is started
2017-09-04 23:12:59 +02:00
/// * priority : Priority of the boblight server (Default=201) HINT: lower value result in HIGHER priority!
2016-06-27 10:12:19 +02:00
"boblightServer" :
{
2016-07-10 22:04:31 +02:00
"enable" : false,
"port" : 19333,
2017-03-24 10:17:36 +01:00
"priority" : 201
2016-06-27 10:12:19 +02:00
},
/// The configuration of the udp listener
2016-07-10 22:04:31 +02:00
/// * enable : Enable or disable the udp listener (true/false)
/// * address : The listener address, pre configured is multicast which listen also to unicast ip addresses at the same time. If emtpy, multicast is disabled and it also accepts unicast from all IPs
/// * port : Port at which the udp listener starts
2017-03-24 10:17:36 +01:00
/// * priority : Priority of the udp listener server (Default=200)
2016-07-10 22:04:31 +02:00
/// * timeout : The timeout sets the timelimit for a "soft" off of the udp listener, if no packages are received (for example to switch to a gabber or InitialEffect - background-effect)
/// * shared : If true, the udp listener is shared across all hyperion instances (if using more than one (forwarder))
2016-06-27 10:12:19 +02:00
"udpListener" :
{
2016-07-10 22:04:31 +02:00
"enable" : false,
"address" : "239.255.28.01",
"port" : 2801,
2017-03-24 10:17:36 +01:00
"priority" : 200,
2016-07-10 22:04:31 +02:00
"timeout" : 10000,
"shared" : false
2016-06-27 10:12:19 +02:00
},
/// Configuration of the Hyperion webserver
2017-01-17 21:53:35 +01:00
/// * document_root : path to hyperion webapp files (webconfig developer only)
2016-06-27 10:12:19 +02:00
/// * port : the port where hyperion webapp is accasible
"webConfig" :
{
2017-01-17 21:53:35 +01:00
"document_root" : "/path/to/files",
2017-10-12 11:55:03 +02:00
"port" : 8090
2016-06-27 10:12:19 +02:00
},
2017-09-04 23:12:59 +02:00
/// The configuration of the effect engine, contains the following items:
2017-10-12 11:55:03 +02:00
/// * paths : An array with absolute location(s) of directories with effects,
/// $ROOT is a keyword which will be replaced with the current rootPath that can be specified on startup from the commandline (defaults to your home directory)
2017-09-04 23:12:59 +02:00
/// * disable : An array with effect names that shouldn't be loaded
"effects" :
2016-06-27 10:12:19 +02:00
{
"paths" :
[
2017-10-12 11:55:03 +02:00
"$ROOT/custom-effects",
2016-06-27 10:12:19 +02:00
"/usr/share/hyperion/effects"
2016-09-21 11:11:06 +02:00
],
2016-09-13 11:51:16 +02:00
"disable" :
[
"Rainbow swirl",
"X-Mas"
]
2016-06-27 10:12:19 +02:00
},
2017-09-04 23:12:59 +02:00
2018-12-27 23:11:32 +01:00
"instCapture" : {
"systemEnable" : true,
"systemPriority" : 250,
"v4lEnable" : false,
"v4lPriority" : 240
},
2017-02-15 15:53:35 +01:00
/// Recreate and save led layouts made with web config. These values are just helpers for ui, not for Hyperion.
"ledConfig" :
{
"top" : 8,
"bottom" : 8,
"left" : 5,
"right" : 5,
"glength" : 0,
"gpos" : 0,
"position" : 0,
"reverse" : false,
"hdepth" : 8,
"vdepth" : 5,
"overlap" : 0,
"edgegap" : 0
},
2017-09-04 23:12:59 +02:00
/// The configuration for each individual led. This contains the specification of the area
/// averaged of an input image for each led to determine its color. Each item in the list
2016-06-27 10:12:19 +02:00
/// contains the following fields:
2017-09-04 23:12:59 +02:00
/// * index: The index of the led. This determines its location in the string of leds; zero
2016-06-27 10:12:19 +02:00
/// being the first led.
2017-09-04 23:12:59 +02:00
/// * hscan: The fractional part of the image along the horizontal used for the averaging
2016-06-27 10:12:19 +02:00
/// (minimum and maximum inclusive)
2017-09-04 23:12:59 +02:00
/// * vscan: The fractional part of the image along the vertical used for the averaging
2016-06-27 10:12:19 +02:00
/// (minimum and maximum inclusive)
2017-09-04 23:12:59 +02:00
2017-02-15 15:53:35 +01:00
"leds":
2016-06-27 10:12:19 +02:00
[
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.125,
"minimum": 0
},
2016-12-29 23:27:33 +01:00
"index": 0,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
2016-12-29 23:27:33 +01:00
"index": 1,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
2016-12-29 23:27:33 +01:00
"index": 2,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
2016-12-29 23:27:33 +01:00
"index": 3,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
2016-12-29 23:27:33 +01:00
"index": 4,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
2016-12-29 23:27:33 +01:00
"index": 5,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
2016-12-29 23:27:33 +01:00
"index": 6,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.875
},
2016-12-29 23:27:33 +01:00
"index": 7,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.08,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.95
},
2016-12-29 23:27:33 +01:00
"index": 8,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.2,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.95
},
2016-12-29 23:27:33 +01:00
"index": 9,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.95
},
2016-12-29 23:27:33 +01:00
"index": 10,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.95
},
2016-12-29 23:27:33 +01:00
"index": 11,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.95
},
2016-12-29 23:27:33 +01:00
"index": 12,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.8
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 1,
"minimum": 0.875
},
2016-12-29 23:27:33 +01:00
"index": 13,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.92
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.875,
"minimum": 0.75
},
2016-12-29 23:27:33 +01:00
"index": 14,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.92
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.75,
"minimum": 0.625
},
2016-12-29 23:27:33 +01:00
"index": 15,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.92
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.625,
"minimum": 0.5
},
2016-12-29 23:27:33 +01:00
"index": 16,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.92
}
2016-06-27 10:12:19 +02:00
},
{
2017-02-15 15:53:35 +01:00
"hscan": {
"maximum": 0.5,
"minimum": 0.375
},
2016-12-29 23:27:33 +01:00
"index": 17,
2017-02-15 15:53:35 +01:00
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.375,
"minimum": 0.25
},
"index": 18,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.25,
"minimum": 0.125
},
"index": 19,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.125,
"minimum": 0
},
"index": 20,
"vscan": {
"maximum": 1,
"minimum": 0.92
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 21,
"vscan": {
"maximum": 1,
"minimum": 0.8
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 22,
"vscan": {
"maximum": 0.8,
"minimum": 0.6
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 23,
"vscan": {
"maximum": 0.6,
"minimum": 0.4
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 24,
"vscan": {
"maximum": 0.4,
"minimum": 0.2
}
},
{
"hscan": {
"maximum": 0.05,
"minimum": 0
},
"index": 25,
"vscan": {
"maximum": 0.2,
"minimum": 0
}
2016-06-27 10:12:19 +02:00
}
2016-08-14 20:17:12 +02:00
]
2016-06-27 10:12:19 +02:00
}