Hyperion mit Libreelec

  • Hallo,
    ich weiß das ist irgendwo die falsche Stelle um nachzufragen - aber ich möchte es dennoch versuchen - eventuell kann mir hier ja jemand helfen:
    Ich hab versucht meinen Raspberry mit nem selbstgebauten Ambientlight zu verbinden und zu konfigurieren - laufen sollte das ganze per hyperion in libreelec.
    Ich hab 136 LED mit einem 5V 10A Netzteil verbunden und an meinen Raspi. Irgendwie bekomm ich das ganze aber nicht zum laufen.
    Gekauft hab ich folgende LED: https://www.aliexpress.com/snapshot/0.htm…tId=32832420003
    Sind WS2818B

    Meine hyperion.config.json

    Spoiler anzeigen

    Meine LOG

    Spoiler anzeigen
    Code
    ssh in:     Hyperion Ambilight Deamon (806)ssh in:         Version   : V1.03.4 (brindosch-c750c41/dc6a602-1522918225ssh in:         Build Time: Apr  5 2018 01:57:25ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.jsonssh in:     HYPERION INFO: ColorTransform 'default' => [0; 135]ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 135]ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 135]ssh in:     LEDDEVICE INFO: configuration:ssh in:     {ssh in:         "colorOrder" : "grb",ssh in:         "leds" : 136,ssh in:         "name" : "MyHyperionConfig",ssh in:         "type" : "ws281x"ssh in:     }ssh in:     whiteAlgorithm ::ssh in:     INFO: Creating linear smoothingssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effectsssh in:     EFFECTENGINE INFO: Initializing Python interpreterssh in:     INFO: Hyperion started and initialisedssh in:     INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0ssh in:     BLACKBORDER INFO: threshold set to 0.03 (8)ssh in:     BLACKBORDER INFO: mode:defaultssh in:     startedssh in:     INFO: Json server created and started on port 19444ssh in:     INFO: Proto server created and started on port 19445ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1360x768ssh in:     BLACKBORDER INFO: threshold set to 0.03 (8)ssh in:     BLACKBORDER INFO: mode:defaultssh in:     INFO: Frame grabber created and startedssh in:     Segmentation fault


    Ich hab mein Setup mal fotografiert und als Anhang hier hochgeladen.
    Ich habe auch schon versucht den analogen Audioausgang zu deaktivieren:
    Ich habe /etc/modprobe.d/snd-blacklist.conf erstellt mit blacklist snd_bcm2835 darin
    ich Habe auch in der config.txt noch folgendes eingefügt:
    hdmi_force_hotplug=1hdmi_force_edid_audio=1Nichts davon hat bisher geholfen.Wäre echt super wenn sich hier jemand erbarmen würde und mir armen Tropf helfen könnte :)Danke

  • Ich kann dir wahrscheinlich nicht viel helfen, würde aber gern eine kleine Unklarheit klären wollen:

    "Hyperion mit Openelec"

    ....

    laufen sollte das ganze per hyperion in libreelec

    Was läuft denn jetzt bei dir? OpenELEC oder LibreELEC? ;)

    Und die Version wäre vielleicht auch noch gut zu wissen.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Du benutzt den installer von der Hyperion Homepage richtig? Wenn ja deinstallieren und das Hyperion addon aus der LE repo installieren. Es ist bekannt das der installer Probleme macht.

    Guck mal in das LibreELEC Wiki, da ist erklärt wie das mit Hyperion geht. Sollte eigentlich funktionieren.

  • Ich bin folgendermaßen vorgegangen:

    1. config.txt auf der SD-Karte öffnen und folgende Zeile hinzufügen
      # Ambilight Modul aktivieren
      dtparam=spi=on
    2. Hyperion Addon aus LE repo installieren
    3. Hyperion Konfigurationsprogramm herunterladen: https://libreelec.wiki/hypercon#tab__windows
    4. Hardware-Einstellungen vornehmen
      (z.B. mit dieser Anleitung: http://powerpi.de/jetzt-wirds-bunt-ambilight-software-hyperion-in-openelec-installieren-teil-2/)
    5. Konfigurationsdatei erstellen: Create Hyperion Configuration
    6. hyperion.config.json in das Verzeichnis /storage/.kodi/addons/service.hyperion/config/ kopieren

    optional zum An- und Ausschalten per Addon: Hyperion Switch herunterladen und installieren
    (https://github.com/bite-your-idols/script.hyperion.switch)

  • Vielen Dank schonmal bisher bin ich so semi weiter gekommen.

    Ich hab alles installiert wie von euch beschrieben.

    wenn ich hyperion jetzt via ssh starte kommt folgendes:

  • Vielen Dank für die vielen Antworten.
    Ich hab in der Zwischenzeit nen Adruiuno dazwischengeschaltet. Jetzt gehen die LEDs beim booten kurz an (werden 2x kurz hell/weiß)
    Leider geht alles andere noch nicht.
    Wenn ich den status abfrage kommt folgendes:

    Code
    hyperiond /storage/.kodi/userdata/service.hyperion/hyperion.config.jsonHyperion Ambilight Deamon (714)Version   : 22f7be8df010fe8f0a51e3677fe0c8e709042622Build Time: Jan 28 2019 10:12:58ERROR: No valid config found


    Meine hyperion.config.json

    der adruino wurde mit folgendem geladen

    Code
    #include "FastLED.h"#define ANALOG_MODE_AVERAGE  0#define ANALOG_MODE_LAST_LED 1/**************************************S E T U Pset following values to your needs**************************************/#define INITIAL_LED_TEST_ENABLED true#define INITIAL_LED_TEST_BRIGHTNESS 155//0..255#define INITIAL_LED_TEST_TIME_MS 500  // 10..// Number of leds in your strip. set to "1" and ANALOG_OUTPUT_ENABLED to "true" to activate analog only// As of 26/1/2017:// 582 leaves ZERO bytes free and this// 410 is ok// tested with 500 leds and is fine (despite the warning)#define MAX_LEDS 136 // Hier wird die LED Anzahl definiert, bitte am Anfang zählen und dementsprechend ändern!// type of your led controller, possible values, see below#define LED_TYPE WS2812B //Nichts ändern, da wird WS2812B LEDs nutzen// 3 wire (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852//               S2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT// 4 wire (spi): LPD8806 WS2801 WS2803 SM16716 P9813 APA102 SK9822 DOTSTAR// For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN.// For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed// DATA_PIN, or DATA_PIN, CLOCK_PIN#define LED_PINS 6        // 3 wire leds Dort wird der PIN angegeben, wo das Daten Signal der LEDs angeschlossen wird!//#define LED_PINS 6, 13  // 4 wire leds (Nicht benötigt, da wir WS2812B LEDs nutzen!#define COLOR_ORDER GRB  // colororder of the stripe, set RGB in hyperion // Nichts Ändern!#define OFF_TIMEOUT 15000    // ms to switch off after no data was received, set 0 to deactivate. Nichts Ändern!// analog rgb uni color led stripe - using of hyperion smoothing is recommended// ATTENTION  this pin config is default for atmega328 based arduinos, others might work to//            if you have flickering analog leds this might be caused by unsynced pwm signals//            try other pins is more or less the only thing that helps#define ANALOG_OUTPUT_ENABLED false#define ANALOG_MODE           ANALOG_MODE_LAST_LED  // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED#define ANALOG_GROUND_PIN     8                     // additional ground pin to make wiring a bit easier#define ANALOG_RED_PIN        9#define ANALOG_GREEN_PIN      10#define ANALOG_BLUE_PIN       11// overall color adjustments#define ANALOG_BRIGHTNESS_RED   255              // maximum brightness for analog 0-255#define ANALOG_BRIGHTNESS_GREEN 255              // maximum brightness for analog 0-255#define ANALOG_BRIGHTNESS_BLUE  255              // maximum brightness for analog 0-255#define BRIGHTNESS 255                      // maximum brightness 0-255#define DITHER_MODE BINARY_DITHER           // BINARY_DITHER or DISABLE_DITHER#define COLOR_TEMPERATURE CRGB(255,255,255) // RGB value describing the color temperature#define COLOR_CORRECTION  TypicalLEDStrip   // predefined fastled color correction//#define COLOR_CORRECTION  CRGB(255,255,255) // or RGB value describing the color correction// Baudrate, higher rate allows faster refresh rate and more LEDs//#define serialRate 460800      // use 115200 for ftdi based boards//#define serialRate 115200      // use 115200 for ftdi based boards#define serialRate 500000         // use 115200 for ftdi based boards/**************************************A D A L I G H T   C O D Eno user changes needed**************************************/// Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel datauint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;unsigned long endTime;// Define the array of ledsCRGB leds[MAX_LEDS];// set rgb to analog led stripevoid showAnalogRGB(const CRGB& led) {if (ANALOG_OUTPUT_ENABLED) {byte r = map(led.r, 0,255,0,ANALOG_BRIGHTNESS_RED);byte g = map(led.g, 0,255,0,ANALOG_BRIGHTNESS_GREEN);byte b = map(led.b, 0,255,0,ANALOG_BRIGHTNESS_BLUE);analogWrite(ANALOG_RED_PIN  , r);analogWrite(ANALOG_GREEN_PIN, g);analogWrite(ANALOG_BLUE_PIN , b);}}// set color to all ledsvoid showColor(const CRGB& led) {#if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == falseLEDS.showColor(led);#endifshowAnalogRGB(led);}// switch of digital and analog ledsvoid switchOff() {#if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == falsememset(leds, 0, MAX_LEDS * sizeof(struct CRGB));FastLED.show();#endifshowAnalogRGB(leds[0]);}// function to check if serial data is available// if timeout occured leds switch of, if configuredbool checkIncommingData() {boolean dataAvailable = true;while (!Serial.available()) {if ( OFF_TIMEOUT > 0 && endTime < millis()) {switchOff();dataAvailable = false;endTime = millis() + OFF_TIMEOUT;}}return dataAvailable;}// main function that setups and runs the codevoid setup() {Serial.begin(serialRate);// analog outputif (ANALOG_OUTPUT_ENABLED) {// additional ground pin to make wiring a bit easierpinMode(ANALOG_GROUND_PIN, OUTPUT);digitalWrite(ANALOG_GROUND_PIN, LOW);pinMode(ANALOG_BLUE_PIN , OUTPUT);pinMode(ANALOG_RED_PIN  , OUTPUT);pinMode(ANALOG_GREEN_PIN, OUTPUT);}int ledCount = MAX_LEDS;if (ANALOG_MODE == ANALOG_MODE_LAST_LED) {ledCount--;}#if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == falseFastLED.addLeds<LED_TYPE, LED_PINS, COLOR_ORDER>(leds, ledCount);#endif// color adjustmentsFastLED.setBrightness ( BRIGHTNESS );FastLED.setTemperature( COLOR_TEMPERATURE );FastLED.setCorrection ( COLOR_CORRECTION );FastLED.setDither     ( DITHER_MODE );// initial RGB flash#if INITIAL_LED_TEST_ENABLED == truefor (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++){showColor(CRGB(v,v,v));delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);}for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++){showColor(CRGB(v,v,v));delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);}#endifshowColor(CRGB(0, 0, 0));Serial.print("Ada\n"); // Send "Magic Word" string to hostboolean transmissionSuccess;unsigned long sum_r, sum_g, sum_b;// loop() is avoided as even that small bit of function overhead// has a measurable impact on this code's overall throughput.for(;;) {// wait for first byte of Magic Wordfor (i = 0; i < sizeof prefix; ++i) {// If next byte is not in Magic Word, the start overif (!checkIncommingData() || prefix[i] != Serial.read()) {i = 0;}}// Hi, Lo, Checksumif (!checkIncommingData()) continue;hi = Serial.read();if (!checkIncommingData()) continue;lo = Serial.read();if (!checkIncommingData()) continue;chk = Serial.read();// if checksum does not match go back to waitif (chk != (hi ^ lo ^ 0x55)) continue;memset(leds, 0, MAX_LEDS * sizeof(struct CRGB));transmissionSuccess = true;sum_r = 0;sum_g = 0;sum_b = 0;int num_leds = min ( MAX_LEDS, (hi<<8) + lo + 1 );// read the transmission data and set LED valuesfor (int idx = 0; idx < num_leds; idx++) {byte r, g, b;if (!checkIncommingData()) {transmissionSuccess = false;break;}r = Serial.read();if (!checkIncommingData()) {transmissionSuccess = false;break;}g = Serial.read();if (!checkIncommingData()) {transmissionSuccess = false;break;}b = Serial.read();leds[idx].r = r;leds[idx].g = g;leds[idx].b = b;#if ANALOG_OUTPUT_ENABLED == true && ANALOG_MODE == ANALOG_MODE_AVERAGEsum_r += r;sum_g += g;sum_b += b;#endif}// shows new valuesif (transmissionSuccess) {endTime = millis() + OFF_TIMEOUT;#if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == falseFastLED.show();#endif#if ANALOG_OUTPUT_ENABLED == true#if ANALOG_MODE == ANALOG_MODE_LAST_LEDshowAnalogRGB(leds[MAX_LEDS-1]);#elseshowAnalogRGB(CRGB(sum_r/MAX_LEDS, sum_g/MAX_LEDS, sum_b/MAX_LEDS));#endif#endif}}} // end of setupvoid loop() {// Not used. See note in setup() function.}

    Ich weiß nicht wo der Fehler liegt.
    Der Adruino wird gefunden und mir als /dev/ttyAMA0 angezeigt.

    @CvH

    Die alte Version (also die, die man via Hypercon installiert, habe ich deinstalliert. Aber die Log Datei ändert sich nicht

  • genau! sie muss nämlich da liegen wo er sie erwartet, zitat:

    Code
    hyperiond /storage/.kodi/userdata/service.hyperion/hyperion.config.jsonHyperion Ambilight Deamon (714)Version : 22f7be8df010fe8f0a51e3677fe0c8e709042622Build Time: Jan 28 2019 10:12:58ERROR: No valid config found


    ==> /storage/.kodi/userdata/service.hyperion/hyperion.config.json

    Odroid N2 (S922X) mit 8GB eMMC und CoreELEC/Ambilight(Hyperion) mit Arduino Uno und WS2812-LED´s / Samsung 46"FullHD / Logitech Z-5500

  • @CvH
    sowohl in
    /storage/.kodi/userdata/addon_data/service.hyperion/
    als auch in
    /storage/.kodi/addons/service.hyperion/config/


    wenn ich folgendes mache:
    hyperiond status /storage/.kodi/userdata/addon_data/service.hyperion/hyperion.config.json
    kommt:

    Code
    Hyperion Ambilight Deamon (773)Version   : 22f7be8df010fe8f0a51e3677fe0c8e709042622Build Time: Jan 28 2019 10:12:58INFO: Selected configuration file: /storage/.kodi/userdata/addon_data/service.hyperion/hyperion.config.jsonHYPERION INFO: ColorTransform 'default' => [0; 135]HYPERION INFO: ColorCorrection 'default' => [0; 135]HYPERION INFO: ColorAdjustment 'default' => [0; 135]LEDDEVICE INFO: configuration:{"colorOrder" : "grb","delayAfterConnect" : 0,"name" : "MyHyperionConfig","output" : "/dev/ttyAMA0","rate" : 500000,"type" : "adalight"}Opening UART: /dev/ttyAMA0

    und es geht nicht weiter... :(

    @andy5macht
    Diesen Ordner gibt es bei mir nicht 8|

  • Ich habe zunhächst Libreelec komplett neu aufgesetzt (Also SD gelöscht und neu geladen und beschrieben - die sd in nen anderen Raspberry (auch 3b+) gesetzt und ausschließlich hyperion als addon installiert)
    Den besagten Ordner gabs dann trotzdem nicht.

    Hab dann den Ordner einfach erstellt und dort die config in den ordner kopiert.

    Wenn ich in ssh nun hyperiond status eingebe kommt trotzdem no valid config found.

  • Vielen Dank für eure Antworten als ich es dann über hypercon installiert hab und die config draufgeladen hab hat's funktioniert.....
    ABER!
    jetzt hab ich meinen Raspberry durch nen Odroid C2 ausgetauscht, und leider geht es aktuell nicht mehr.
    Via hypercon kann ich hyperion nicht installieren. Via Addon versuche ich es gerade.

Jetzt mitmachen!

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