Ah bummer I spoke too soon, every 5 minutes or so with no input the LEDs all come back on bright blue. Going to have to unplug them again
Beiträge von itfcjim
-
-
Just to update, I updated my config to make a properly cropped input image (no rubbish around the edges)
Now when I disconnect the input source all of the LEDs go bright blue, then after a couple of seconds the bottom row all turn off, the top and side rows go a dim blue colour, with two of the LEDs on each side turning off... then after a couple more seconds all of the LEDs turn off! Hoorah! When I reconnect the input source to the grabber the LEDs all function again correctly
I didn't notice any difference in results when having smoothing turned off so I've kept it on linear for now (I'm not sure what this does)
Thanks for all of your help - I can now leave my LED strip plugged in all the time
Jim
-
it is not enough to set blueThreshold, you have to set the others too. I use (rgb) 0.1 0.1 1.0 (allowed values are between 0 and 1 in 0,00390625 steps)
It works for my grabber with blue no signal screen absolut fantastic.Try playing with the rgb thresholds. I know the code behind and this is working well - if you have a steady monocolor no signal image
Thanks! I tried this and it seems to nearly work - after a couple of seconds of being on the "No Signal" blue screen a lot of the LEDs go off, and the rest of them go to a dimmer blue - unfortunately they're still visible so it's not a permanent solution for me. I will look at playing with the cropping when I get time, as perhaps I have some "padding" that is throwing it off
Thanks again for your help
-
Thanks for that - good to know you're on top of it Looking forward to seeing what you guys come up with
-
Hi! Sure, here it is:
Code
Alles anzeigen// Automatically generated configuration file for 'Hyperion daemon' // Generated by: HyperCon (The Hyperion deamon configuration file builder) // Created with HyperCon V1.01.2 (31.03.2016) { /// Device configuration contains the following fields: /// * 'name' : The user friendly name of the device (only used for display purposes) /// * 'type' : The type of the device or leds (known types for now are /// ---------SPI---------, APA102, WS2801, P9813, LPD6803, LPD8806, ---------PWM---------, WS2812b (just RPi1), WS281X (RPi1, RPi2, RPi3), --------OTHER--------, PhilipsHUE, AtmoOrb, PiBlaster, Tinkerforge, UDP, FadeCandy, SEDU, TPM2, USBASP-WS2801, USBASP-WS2812, ------3rd PARTY------, Adalight, AdalightAPA102, AmbiLed, Atmo, Lightpack, Multi-Lightpack, Paintpack, Test (file), None) /// * [device type specific configuration] /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). "device" : { "name" : "MyHyperionConfig", "type" : "ws2801", "output" : "/dev/spidev0.0", "rate" : 250000, "colorOrder" : "rgb" }, /// Color manipulation configuration used to tune the output colors to specific surroundings. /// The configuration contains a list of color-transforms. Each transform contains the /// following fields: /// * 'id' : The unique identifier of the color transformation (eg 'device_1') /// * 'leds' : The indices (or index ranges) of the leds to which this color transform applies /// (eg '0-5, 9, 11, 12-17'). The indices are zero based. /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following /// tuning parameters: /// - 'saturationGain' The gain adjustement of the saturation /// - 'valueGain' The gain adjustement of the value /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the /// following tuning parameters for each channel: /// - 'threshold' The minimum required input value for the channel to be on /// (else zero) /// - 'gamma' The gamma-curve correction factor /// - 'blacklevel' The lowest possible value (when the channel is black) /// - 'whitelevel' The highest possible value (when the channel is white) /// /// Next to the list with color transforms there is also a smoothing option. /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning /// parameters: /// - '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) "color" : { "correction" : [ { "id" : "default", "leds" : "*", "correctionValues" : { "red" : 255, "green" : 255, "blue" : 255 } } ], "temperature" : [ { "id" : "default", "leds" : "*", "temperatureValues" : { "red" : 255, "green" : 255, "blue" : 255 } } ], "transform" : [ { "id" : "default", "leds" : "*", "hsv" : { "saturationGain" : 1.0000, "valueGain" : 1.0000 }, "hsl" : { "saturationGain" : 1.0000, "luminanceGain" : 1.0000 }, "red" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 }, "green" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 }, "blue" : { "threshold" : 0.0000, "gamma" : 1.0000, "blacklevel" : 0.0000, "whitelevel" : 1.0000 } } ], "smoothing" : { "type" : "linear", "time_ms" : 200, "updateFrequency" : 20.0000, "updateDelay" : 0 } }, /// The black border configuration, contains the following items: /// * enable : true if the detector should be activated /// * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0) /// * 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" : { "enable" : true, "threshold" : 0.0, "unknownFrameCnt" : 600, "borderFrameCnt" : 50, "maxInconsistentCnt" : 10, "blurRemoveCnt" : 1, "mode" : "default" }, /// The configuration of the effect engine, contains the following items: /// * paths : An array with absolute location(s) of directories with effects /// * color : Set static color after boot -> set effect to "" (empty) and input the values [R,G,B] and set duration_ms NOT to 0 (use 1) instead /// * effect : The effect selected as 'boot sequence' /// * duration_ms : The duration of the selected effect (0=endless) /// * priority : The priority of the selected effect/static color (default=990) HINT: lower value result in HIGHER priority! "effects" : { "paths" : [ "/storage/hyperion/effects" ] }, "bootsequence" : { "color" : [0,0,0], "effect" : "Rainbow swirl fast", "duration_ms" : 3000, "priority" : 990 }, /// 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 /// * 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"] /// 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) // "forwarder" : // { // "proto" : ["127.0.0.1:19447"], // "json" : ["127.0.0.1:19446"] // }, /// The configuration for the frame-grabber, contains the following items: /// * 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] /// * priority : The priority of the frame-gabber (Default=890) HINT: lower value result in HIGHER priority! /// * ATTENTION : Power-of-Two resolution is not supported and leads to unexpected behaviour! "framegrabber" : { "width" : 80, "height" : 45, "frequency_Hz" : 10.0, "priority" : 890 }, /// The configuration of the Kodi connection used to enable and disable the frame-grabber. Contains the following fields: /// * xbmcAddress : The IP address of the Kodi-host /// * xbmcTcpPort : The TCP-port of the Kodi-server /// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback /// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show /// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback /// * grabMenu : Flag indicating that the frame-grabber is on(true) at the Kodi menu /// * grabScreensaver : Flag indicating that the frame-grabber is on(true) when Kodi is on screensaver /// * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing // "xbmcVideoChecker" : // { // "xbmcAddress" : "127.0.0.1", // "xbmcTcpPort" : 9090, // "grabVideo" : true, // "grabPictures" : true, // "grabAudio" : true, // "grabMenu" : false, // "grabScreensaver" : true, // "enable3DDetection" : true // }, /// The configuration of the Json server which enables the json remote interface /// * port : Port at which the json server is started "jsonServer" : { "port" : 19444 }, /// The configuration of the Proto server which enables the protobuffer remote interface /// * port : Port at which the protobuffer server is started "protoServer" : { "port" : 19445 }, /// The configuration of the boblight server which enables the boblight remote interface /// * port : Port at which the boblight server is started /// * priority: Priority of the boblight server (Default=900) HINT: lower value result in HIGHER priority! // "boblightServer" : // { // "port" : 19333, // "priority" : 900 // }, /// Configuration for the embedded V4L2 grabber /// * device : V4L2 Device to use [default="/dev/video0"] /// * input : V4L2 input to use [default=0] /// * standard : Video standard (no-change/PAL/NTSC) [default="no-change"] /// * width : V4L2 width to set [default=-1] /// * height : V4L2 height to set [default=-1] /// * frameDecimation : Frame decimation factor [default=2] /// * sizeDecimation : Size decimation factor [default=8] /// * priority : Hyperion priority channel [default=900] /// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"] /// * 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] /// * redSignalThreshold : Signal threshold for the red channel between 0.0 and 1.0 [default=0.0] /// * greenSignalThreshold : Signal threshold for the green channel between 0.0 and 1.0 [default=0.0] /// * blueSignalThreshold : Signal threshold for the blue channel between 0.0 and 1.0 [default=0.0] // "grabber-v4l2" : // { // "device" : "/dev/video0", // "input" : 0, // "standard" : "no-change", // "width" : -1, // "height" : -1, // "frameDecimation" : 2, // "sizeDecimation" : 8, // "priority" : 900, // "mode" : "2D", // "cropLeft" : 0, // "cropRight" : 0, // "cropTop" : 0, // "cropBottom" : 0, // "redSignalThreshold" : 0.0, // "greenSignalThreshold" : 0.0, // "blueSignalThreshold" : 0.0 // }, /// 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 /// contains the following fields: /// * index: The index of the led. This determines its location in the string of leds; zero /// being the first led. /// * hscan: The fractional part of the image along the horizontal used for the averaging /// (minimum and maximum inclusive) /// * vscan: The fractional part of the image along the vertical used for the averaging /// (minimum and maximum inclusive) "leds" : [ { "index" : 0, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.1111 } }, { "index" : 1, "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 2, "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 3, "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 4, "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 5, "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 6, "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 7, "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 8, "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 9, "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 10, "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 11, "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 12, "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 13, "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 14, "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 15, "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 16, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } }, { "index" : 17, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.0000, "maximum" : 0.1111 } }, { "index" : 18, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.1111, "maximum" : 0.2222 } }, { "index" : 19, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.2222, "maximum" : 0.3333 } }, { "index" : 20, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.3333, "maximum" : 0.4444 } }, { "index" : 21, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.4444, "maximum" : 0.5556 } }, { "index" : 22, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.5556, "maximum" : 0.6667 } }, { "index" : 23, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.6667, "maximum" : 0.7778 } }, { "index" : 24, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.7778, "maximum" : 0.8889 } }, { "index" : 25, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, "vscan" : { "minimum" : 0.8889, "maximum" : 1.0000 } }, { "index" : 26, "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 27, "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 28, "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 29, "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 30, "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 31, "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 32, "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 33, "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 34, "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 35, "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 36, "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 37, "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 38, "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 39, "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 40, "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 41, "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } }, { "index" : 42, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.8889, "maximum" : 1.0000 } }, { "index" : 43, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.7778, "maximum" : 0.8889 } }, { "index" : 44, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.6667, "maximum" : 0.7778 } }, { "index" : 45, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.5556, "maximum" : 0.6667 } }, { "index" : 46, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.4444, "maximum" : 0.5556 } }, { "index" : 47, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.3333, "maximum" : 0.4444 } }, { "index" : 48, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.2222, "maximum" : 0.3333 } }, { "index" : 49, "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, "vscan" : { "minimum" : 0.1111, "maximum" : 0.2222 } } ], "endOfJson" : "endOfJson", "grabber-v4l2" : { "device" : "/dev/video0", "input" : 0, "standard" : "no-change", "width" : -1, "height" : -1, "frameDecimation" : 2, "sizeDecimation" : 8, "priority" : 800, "mode" : "2D", "cropLeft" : 5, "cropRight" : 20, "cropTop" : 0, "cropBottom" : 0, "redSignalThreshold" : 0.0, "greenSignalThreshold" : 0.0, "blueSignalThreshold" : 1.0 } }
-
Hi!
I haven't found a solution yet - I just unplug the LEDs from the mains supply when I'm finished watching, which is a bit of a pain
-
Hi all
I've recently setup a strip of WS2801 LEDs around my telly using an RPi3 + OpenELEC + Hyperion and it looks amazing!
I used the guide on this website to help me get everything configured, including a video grabber so I could use an alternate HDMI input (specifically my Playstation 4) as the source for the LEDs:
http://www.alessandrocolla.com…-source-raspberry-part-3/It all works great, until I turn off the PS4 so that the video capture card has no input. Obviously at this point I would like all of the LEDs to switch off, however they currently go to a very bright blue. Capturing a screenshot from the video capture card when this happens shows a blue screen with "NO SIGNAL INPUT" (or something similar) in white text at the top left of the screen.
I've tried adjusting the blueSignalThreshold in the config for the grabber as described in the github issue here:
https://github.com/hyperion-project/hyperion/issues/45I have not been able to get the LEDs to switch off however (I wonder if the "NO SIGNAL INPUT" text is just enough white near the edge of the screen to just be under the threshold), and currently have to switch them off at the mains whenever I turn off my PS4 (or using the android app to turn the LED brightness to zero). Hoping someone will be able to guide me towards a solution... thanks in advance!
Keep up the great work on the project
Cheers
Jim