Hyperion Error

  • Im using an Pi 3 + Arduino uno + The WS2812B led strip on OpenElec 8.0.2.


    Everything is installed but when I tried to test the my setup it didn't light up so I cheked the hyperion config file ...


    When I tried to see what was wrong with the hyperion configuration this is what I got :


    Hyperion Ambilight Deamon (623)
    Version : V1.03.2 (brindosch-99d9396/d3713a8-1469452981
    Build Time: Jul 25 2016 06:54:40
    INFO: Selected configuration file: /storage/.config/hyperion.config.json
    terminate called after throwing an instance of 'std::runtime_error'
    what(): Failed to parse configuration: * Line 2, Column 1
    Syntax error: value, object or array expected.


    Aborted (core dumped)




    This is my log file :




    // Automatically generated configuration file for Hyperion ambilight daemon
    // Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
    // Generated by: HyperCon (The Hyperion deamon configuration file builder)
    // Created with HyperCon V1.03.1 (11.06.2016)


    {
    // DEVICE CONFIGURATION
    "device" :
    {
    "name" : "MyHyperionConfig",
    "type" : "adalight",
    "output" : "/dev/ttyACM0",
    "rate" : 468800,
    "delayAfterConnect" : 0,
    "colorOrder" : "rgb"
    },


    // COLOR CALIBRATION CONFIG
    "color" :
    {
    "channelAdjustment" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "pureRed" :
    {
    "redChannel" : 255,
    "greenChannel" : 0,
    "blueChannel" : 0
    },
    "pureGreen" :
    {
    "redChannel" : 0,
    "greenChannel" : 255,
    "blueChannel" : 0
    },
    "pureBlue" :
    {
    "redChannel" : 0,
    "greenChannel" : 0,
    "blueChannel" : 255
    }
    }
    ],
    "temperature" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "correctionValues" :
    {
    "red" : 255,
    "green" : 255,
    "blue" : 255
    }
    }
    ],
    "transform" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "hsl" :
    {
    "saturationGain": 1.0000,
    "luminanceGain" : 1.0000,
    "luminanceMinimum" : 0.0000
    },
    "red" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    },
    "green" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    },
    "blue" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    }
    }
    ],
    // SMOOTHING CONFIG
    "smoothing" :
    {
    "type" : "linear",
    "time_ms" : 200,
    "updateFrequency" : 20.0000,
    "updateDelay" : 0
    }
    },


    // NO V4L2 GRABBER CONFIG
    // FRAME GRABBER CONFIG
    "framegrabber" :
    {
    "width" : 64,
    "height" : 64,
    "frequency_Hz" : 10.0,
    "priority" : 890
    },


    // BLACKBORDER CONFIG
    "blackborderdetector" :
    {
    "enable" : true,
    "threshold" : 0.0,
    "unknownFrameCnt" : 600,
    "borderFrameCnt" : 50,
    "maxInconsistentCnt" : 10,
    "blurRemoveCnt" : 1,
    "mode" : "default"
    },


    // KODI CHECK CONFIG
    "xbmcVideoChecker" :
    {
    "xbmcAddress" : "127.0.0.1",
    "xbmcTcpPort" : 9090,
    "grabVideo" : true,
    "grabPictures" : true,
    "grabAudio" : true,
    "grabMenu" : true,
    "grabPause" : true,
    "grabScreensaver" : true,
    "enable3DDetection" : true
    },


    // BOOTEFFECT CONFIG
    "bootsequence" :
    {
    "color" : [0,0,0],
    "effect" : "Rainbow swirl fast",
    "duration_ms" : 3000,
    "priority" : 700
    },


    // JSON SERVER CONFIG
    "jsonServer" :
    {
    "port" : 19444
    },


    // PROTO SERVER CONFIG
    "protoServer" :
    {
    "port" : 19445
    },


    // EFFECT PATH
    "effects" :
    {
    "paths" :
    [
    "/storage/hyperion/effects",
    "/usr/share/hyperion/effects"
    ]
    },


    // NO BOBLIGHT SERVER CONFIG
    // NO JSON/PROTO FORWARD CONFIG


    // LED CONFIGURATION
    "leds" :
    [
    {
    "index" : 0,



    Can anyone tell me what i'm doing wrong or help me with this issue thnx !

  • All my Hyperion files are stored in /storage/hyperion I edited the example file in /storage/hyperion/config to my configuration but I get this :




    OpenELEC (official) Version: 8.0.2
    root:~ # ps -a | grep hyper
    586 root 0:00 grep hyper
    root:~ # /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.jso
    n
    Hyperion Ambilight Deamon (588)
    Version : V1.03.2 (brindosch-99d9396/d3713a8-1469452981
    Build Time: Jul 25 2016 06:54:40
    ERROR: No valid config found



    He didn't found an valid configuration file


    So that means the config file must be send in the /etc folder but when I do that I get ''cannot make file etc/hyperion.config.json''


    - error code 4
    - error message from server


    I was using WinSCP to transfer the file

  • Okay now the file is in the right map the only thing is I get this error now :



    Hyperion Ambilight Deamon (683)
    Version : V1.03.2 (brindosch-99d9396/d3713a8-1469452981
    Build Time: Jul 25 2016 06:54:40
    INFO: Selected configuration file: /storage/.config/hyperion.config.json
    HYPERION INFO: ColorTransform 'default' => [0; 233]
    HYPERION INFO: ColorCorrection 'default' => [0; 233]
    HYPERION INFO: ColorAdjustment 'default' => [0; 233]
    LEDDEVICE INFO: configuration:
    {
    "colorOrder" : "rgb",
    "delayAfterConnect" : 0,
    "name" : "MyHyperionConfig",
    "output" : "/dev/ttyS0",
    "rate" : 100000,
    "type" : "adalight"
    }


    Opening UART: /dev/ttyS0
    Unable to open RS232 device (IO Exception (2): No such file or directory, file /home/sascha/hyperion/dependencies/build/serial/src/impl/unix.cc, line 100.)
    INFO: Creating linear smoothing
    HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    EFFECTENGINE INFO: Initializing Python interpreter
    INFO: Hyperion started and initialised
    INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    started
    INFO: Kodi checker created and started
    INFO: Json server created and started on port 19444
    INFO: Proto server created and started on port 19445
    DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    INFO: Frame grabber created and started
    KODICHECK ERROR: Kodi Connection error (0)
    Opening UART: /dev/ttyS0
    Unable to open RS232 device (IO Exception (2): No such file or directory, file /home/sascha/hyperion/dependencies/build/serial/src/impl/unix.cc, line 100.)
    Device blocked for 3000 ms
    BORDER SWITCH REQUIRED!!
    CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    Device unblocked
    EFFECTENGINE INFO: effect finished
    Opening UART: /dev/ttyS0
    Unable to open RS232 device (IO Exception (2): No such file or directory, file /home/sascha/hyperion/dependencies/build/serial/src/impl/unix.cc, line 100.)
    Device blocked for 3000 ms
    Device unblocked

  • But know I get :




    Hyperion Ambilight Deamon (668)
    Version : V1.03.2 (brindosch-99d9396/d3713a8-1469452981
    Build Time: Jul 25 2016 06:54:40
    INFO: Selected configuration file: /storage/.config/hyperion.config.json
    HYPERION INFO: ColorTransform 'default' => [0; 233]
    HYPERION INFO: ColorCorrection 'default' => [0; 233]
    HYPERION INFO: ColorAdjustment 'default' => [0; 233]
    LEDDEVICE INFO: configuration:
    {
    "colorOrder" : "rgb",
    "delayAfterConnect" : 0,
    "name" : "MyHyperionConfig",
    "output" : "/dev/ttyACM0",
    "rate" : 460800,
    "type" : "adalight"
    }


    Opening UART: /dev/ttyACM0
    INFO: Creating linear smoothing
    HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    EFFECTENGINE INFO: Initializing Python interpreter
    INFO: Hyperion started and initialised
    INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    started
    INFO: Kodi checker created and started
    INFO: Json server created and started on port 19444
    INFO: Proto server created and started on port 19445
    DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    INFO: Frame grabber created and started
    KODICHECK ERROR: Kodi Connection error (0)
    BORDER SWITCH REQUIRED!!
    CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    EFFECTENGINE INFO: effect finished
    KODICHECK ERROR: Kodi Connection error (0)
    KODICHECK ERROR: Kodi Connection error (0)






    Configuration File :



    // Automatically generated configuration file for Hyperion ambilight daemon
    // Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
    // Generated by: HyperCon (The Hyperion deamon configuration file builder)
    // Created with HyperCon V1.03.1 (11.06.2016)


    {
    // DEVICE CONFIGURATION
    "device" :
    {
    "name" : "MyHyperionConfig",
    "type" : "adalight",
    "output" : "/dev/ttyACM0",
    "rate" : 460800,
    "delayAfterConnect" : 0,
    "colorOrder" : "rgb"
    },


    // COLOR CALIBRATION CONFIG
    "color" :
    {
    "channelAdjustment" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "pureRed" :
    {
    "redChannel" : 255,
    "greenChannel" : 0,
    "blueChannel" : 0
    },
    "pureGreen" :
    {
    "redChannel" : 0,
    "greenChannel" : 255,
    "blueChannel" : 0
    },
    "pureBlue" :
    {
    "redChannel" : 0,
    "greenChannel" : 0,
    "blueChannel" : 255
    }
    }
    ],
    "temperature" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "correctionValues" :
    {
    "red" : 255,
    "green" : 255,
    "blue" : 255
    }
    }
    ],
    "transform" :
    [
    {
    "id" : "default",
    "leds" : "*",
    "hsl" :
    {
    "saturationGain" : 1.0000,
    "luminanceGain" : 1.0000,
    "luminanceMinimum" : 0.0000
    },
    "red" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    },
    "green" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    },
    "blue" :
    {
    "threshold" : 0.0000,
    "gamma" : 2.5000
    }
    }
    ],
    // SMOOTHING CONFIG
    "smoothing" :
    {
    "type" : "linear",
    "time_ms" : 200,
    "updateFrequency" : 20.0000,
    "updateDelay" : 0
    }
    },


    // NO V4L2 GRABBER CONFIG
    // FRAME GRABBER CONFIG
    "framegrabber" :
    {
    "width" : 64,
    "height" : 64,
    "frequency_Hz" : 10.0,
    "priority" : 890
    },


    // BLACKBORDER CONFIG
    "blackborderdetector" :
    {
    "enable" : true,
    "threshold" : 0.0,
    "unknownFrameCnt" : 600,
    "borderFrameCnt" : 50,
    "maxInconsistentCnt" : 10,
    "blurRemoveCnt" : 1,
    "mode" : "default"
    },


    // KODI CHECK CONFIG
    "xbmcVideoChecker" :
    {
    "xbmcAddress" : "127.0.0.1",
    "xbmcTcpPort" : 9090,
    "grabVideo" : true,
    "grabPictures" : true,
    "grabAudio" : true,
    "grabMenu" : true,
    "grabPause" : true,
    "grabScreensaver" : true,
    "enable3DDetection" : true
    },


    // BOOTEFFECT CONFIG
    "bootsequence" :
    {
    "color" : [0,0,0],
    "effect" : "Rainbow swirl fast",
    "duration_ms" : 3000,
    "priority" : 700
    },


    // JSON SERVER CONFIG
    "jsonServer" :
    {
    "port" : 19444
    },


    // PROTO SERVER CONFIG
    "protoServer" :
    {
    "port" : 19445
    },


    // EFFECT PATH
    "effects" :
    {
    "paths" :
    [
    "/storage/hyperion/effects",
    "/usr/share/hyperion/effects"
    ]
    },


    // NO BOBLIGHT SERVER CONFIG
    // NO JSON/PROTO FORWARD CONFIG

  • No the boot effect is not working here is my sketch :



    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include "Adafruit_NeoPixel.h"


    // DEFINITIONS


    #define STARTCOLOR 0xff8000 // LED color at startup 0xff8000 is orange in hex code. pick your own here: http://www.w3schools.com/colors/colors_picker.asp
    #define BLACK 0x000000 // LED color BLACK


    #define DATAPIN 5 // Datapin
    #define LEDCOUNT 234 // Number of LEDs used in your system
    #define SHOWDELAY 20 // Delay in micro seconds before showing
    #define BAUDRATE 460800 // Serial port speed


    #define BRIGHTNESS 90 // Max. brightness in %


    const char prefix[] = {0x41, 0x64, 0x61, 0x00, 0xE9, 0xB4}; // Prefix at the start of the transmission
    char buffer[sizeof(prefix)]; // Temporary buffer for receiving the prefix data


    // to calculate your prefix, the first 4 bytes will never change: const char prefix[] = {0x41, 0x64, 0x61, 0x00, this never changes.
    // the next byte is equal to the number of LED - 1 --> (232-1)=231. 231 transformed in HEX. 231 in hex is E7 (use google)
    // the last byte is equal to the XOR value of the calculated value just above and 0x55 (byte just calculated (E7) XORED with 0x55) = B2 use this link http://xor.pw/? and in input 1 put 55 and in input 2 put your HEX value.


    // some precalculated values to save some time: 178 leds gives B1 and E4, 180 B3E6, 181 B4E1, 182 B5E0 232 E7B2 230 E5B0


    Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDCOUNT, DATAPIN, NEO_GRB + NEO_KHZ800);
    LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display


    int state; // Define current state
    #define STATE_WAITING 1 // - Waiting for prefix
    #define STATE_DO_PREFIX 2 // - Processing prefix
    #define STATE_DO_DATA 3 // - Handling incoming LED colors


    int readSerial; // Read Serial data (1)
    int currentLED; // Needed for assigning the color to the right LED
    const int led_button = 11; // ON/OFF button input
    const int status_led = 8; // LED of button
    const int ch_2 = A0; // Inputs from HDMI switcher
    const int ch_3 = A1;
    const int ch_4 = A2;
    const int ch_5 = A3;


    int curr_source = 0; // Used to store which source is currently displayed
    boolean strip_status = true; // Used to chose if the LED strip is ON or OFF (depending on button choice)
    unsigned long timeout = 0; // Timeout used to turn LED strip off if no new data has come thorugh after some time


    void setup()
    {
    pinMode(led_button, INPUT);
    pinMode(ch_2, INPUT);
    pinMode(ch_3, INPUT);
    pinMode(ch_4, INPUT);
    pinMode(ch_5, INPUT);
    pinMode(status_led, OUTPUT);
    digitalWrite(led_button, HIGH);
    digitalWrite(status_led, HIGH);
    delay (15000); // 15 seconds delay at startup to avoid strange behaviours as the PI boots up etc
    strip.begin(); // Init LED strand, set all black, then all to startcolor


    strip.setBrightness( (255 / 100) * 25 );


    setAllLEDs(BLACK, 0);
    setAllLEDs(STARTCOLOR, 5); // Will turn ON all LEDS with a 5ms delay between each turn ON creating a snake increasing pattern


    Serial.begin(BAUDRATE); // Init serial speed


    state = STATE_WAITING; // Initial state: Waiting for prefix


    lcd.init(); // Initialize the lcd
    lcd.backlight(); // Turn ON LCD backlight
    lcd.print(" waiting for PI"); // Wait for PI to boot up for 5 sec (avoids the Arduino rebooting randomly)
    delay(5000);
    lcd.clear();
    lcd.print("**** SOURCE ****");
    strip.setBrightness( (255 / 100) * BRIGHTNESS ); // Set the brightness we chose above
    }



    void loop()
    {
    do_strip(); // Main part of the code where we look at the data incoming from the PI
    if (state == STATE_WAITING) // Only if we are in WAITING state we check the source inputs and our ON/OFF button.
    {
    check_source();
    check_button();
    }
    }


    void do_strip(void)
    {
    if (strip_status == true)
    {
    switch(state)
    {
    case STATE_WAITING: // *** Waiting for prefix ***
    if( Serial.available()>0 )
    {
    readSerial = Serial.read(); // Read one character

    if ( readSerial == prefix[0] ) // if this character is 1st prefix char
    { state = STATE_DO_PREFIX; } // then set state to handle prefix
    }
    break;


    case STATE_DO_PREFIX: // *** Processing Prefix ***
    timeout = millis();
    if( Serial.available() > sizeof(prefix) - 2 )
    {
    Serial.readBytes(buffer, sizeof(prefix) - 1);

    for( int Counter = 0; Counter < sizeof(prefix) - 1; Counter++)
    {
    if( buffer[Counter] == prefix[Counter+1] )
    {
    state = STATE_DO_DATA; // Received character is in prefix, continue
    currentLED = 0; // Set current LED to the first one
    }
    else
    {
    state = STATE_WAITING; // Crap, one of the received chars is NOT in the prefix
    break; // Exit, to go back to waiting for the prefix
    } // end if buffer
    } // end for Counter
    } // end if Serial
    break;


    case STATE_DO_DATA: // *** Process incoming color data ***
    if( Serial.available() > 2 ) // if we receive more than 2 chars
    {
    Serial.readBytes( buffer, 3 ); // Abuse buffer to temp store 3 charaters
    strip.setPixelColor( currentLED++, buffer[0], buffer[1], buffer[2]); // and assing to LEDs
    }


    if( currentLED > LEDCOUNT ) // Reached the last LED? Display it!
    {
    strip.show(); // Make colors visible
    delayMicroseconds(SHOWDELAY); // Wait a few micro seconds

    state = STATE_WAITING; // Reset to waiting ...
    currentLED = 0; // and go to LED one

    break; // and exit ... and do it all over again
    }
    break;
    } // switch(state)
    } // if statement
    else
    {setAllLEDs(BLACK, 0);}
    if(millis() > timeout + 5000) // If no new incoming data after 5seconds, turn the strip OFF.
    {setAllLEDs(BLACK, 0);}
    } // do_strip




    // Sets the color of all LEDs in the strip
    // If 'wait'>0 then it will show a swipe from start to end
    void setAllLEDs(uint32_t color, int wait)
    {
    for ( int Counter=0; Counter < LEDCOUNT; Counter++ ) // For each LED
    {
    strip.setPixelColor( Counter, color ); // .. set the color


    if( wait > 0 ) // if a wait time was set then
    {
    strip.show(); // Show the LED color
    delay(wait); // and wait before we do the next LED
    } // if wait

    } // for Counter


    strip.show(); // Show all LEDs
    } // setAllLEDs

    • Offizieller Beitrag

    #define BAUDRATE 500000 // Serial port speed


    The Baudrate in Arduino sketch and Hyperion config must be the same.
    Please correct this to 500000:

    "name" : "MyHyperionConfig",
    "type" : "adalight",
    "output" : "/dev/ttyACM0",
    "rate" : 460800,
    "delayAfterConnect" : 0,
    "colorOrder" : "rgb"

    • Offizieller Beitrag

    const char prefix[] = {0x41, 0x64, 0x61, 0x00, 0xE9, 0xB4}; // Prefix at the start of the transmission
    char buffer[sizeof(prefix)]; // Temporary buffer for receiving the prefix data


    // to calculate your prefix, the first 4 bytes will never change: const char prefix[] = {0x41, 0x64, 0x61, 0x00, this never changes.
    // the next byte is equal to the number of LED - 1 --> (232-1)=231. 231 transformed in HEX. 231 in hex is E7 (use google)
    // the last byte is equal to the XOR value of the calculated value just above and 0x55 (byte just calculated (E7) XORED with 0x55) = B2 use this link http://xor.pw/? and in input 1 put 55 and in input 2 put your HEX value.



    the prefix for 234 LEDs is 0x41, 0x64x, 0x61, 0xE9, 0xBC

  • This is what I get now :



    Hyperion Ambilight Deamon (557)
    Version : V1.03.2 (brindosch-99d9396/d3713a8-1469452981
    Build Time: Jul 25 2016 06:54:40
    INFO: Selected configuration file: /storage/.config/hyperion.config.json
    HYPERION INFO: ColorTransform 'default' => [0; 233]
    HYPERION INFO: ColorCorrection 'default' => [0; 233]
    HYPERION INFO: ColorAdjustment 'default' => [0; 233]
    LEDDEVICE INFO: configuration:
    {
    "colorOrder" : "rgb",
    "delayAfterConnect" : 0,
    "name" : "MyHyperionConfig",
    "output" : "/dev/ttyACM0",
    "rate" : 460800,
    "type" : "adalight"
    }


    Opening UART: /dev/ttyACM0
    INFO: Creating linear smoothing
    HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    EFFECTENGINE INFO: Initializing Python interpreter
    INFO: Hyperion started and initialised
    INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    BLACKBORDER INFO: threshold set to 0 (0)
    BLACKBORDER INFO: mode:default
    started
    INFO: Kodi checker created and started
    terminate called after throwing an instance of 'std::runtime_error'
    what(): JSONSERVER ERROR: could not bind to port
    Aborted (core dumped)

  • Replugged the arduino in the Pi and got the JSON error again :



    what(): JSONSERVER ERROR: could not bind to port
    Aborted (core dumped)


    Tried this :


    killall hyperiond /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json </dev/null >/dev/null 2>&1 &


    But then again the Kodi Error :


    KODICHECK ERROR: Kodi Connection error (0)


    How can I resolve the Json error ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!