Enigmalight

  • Tja, irgendwas is ja immer :D


    Aber wenn was Ambilightartiges gewünscht ist könnte man ja auch relativ leicht einen Abstand zur Wand herstellen. Im Zweifel mit einer passenden Halterung. Bei mir wär das jedenfalls so wenn ich den TV an die Wand packen würde ;)

  • Sehr gute Idee mit dem extra Rahmen und der VESA Aufnahme. So muss man nicht den TV hinten bekleben. Beim TV-Wechsel ist es dann auch um einiges einfacher. Was mich da noch ein wenig abschreckt sind die ganzen Kabel.

    |DM900UHD|DM920UHD|Merlin OE2.5|Nuke Evolution|MST|

  • Ja, das mit dem „nicht mehr hinten bekleben“ war auch der Hauptgrund. An meinem alten 40 Zöller hatte ich die nämlich kleben und das war die Hölle. Ständig ging der Mist ab wenn es mal warm wurde. Und dann musste man wieder nachkleben. Irgendwann auch mit Panzertape damit es irgendwie mal hielt. Und der ganze Fernseher war mehr und mehr versaut mit dem geklebe hinten, das bekommt man auch nicht mehr vernünftig weg.
    Also bin ich beim TV Tausch ab in den Baumarkt...


    Die Kabel stören mich nicht, ist ja a) eh alles hinterm TV und b) wie du schon sagst hat man alles fest am Rahmen wenn man die 4 Schrauben aus der VESA Halterung schrauben sollte. Aber es gibt heute ja auch Lösungen ohne zahlreiche einzelne LED–Stripes. Und damit ohne so viele Kabel wenn einem das wichtig ist. Siehe auch den Link von @dre

  • Ja, das mit dem „nicht mehr hinten bekleben“ war auch der Hauptgrund. An meinem alten 40 Zöller hatte ich die nämlich kleben und das war die Hölle. Ständig ging der Mist ab wenn es mal warm wurde. Und dann musste man wieder nachkleben. Irgendwann auch mit Panzertape damit es irgendwie mal hielt.

    Bei mir hilft Heißkleber. Ok "versaut" ist er schon, aber hängt auch an der Wand und somit sieht es keiner :)
    Mit dem kleinen Raspi braucht man auch nicht so viele Kabel als mit Karatelight. Einfach nur 2 GPIOs und Spannung.

  • Hallo zusammen,


    ich bin leider kein Programmierer sondern eher ein Fuscher ;-)
    Aber dennoch möchte ich euch mein Ergebnis in Verbindung mit meinen Philips Hue Go Lampen nicht vorenthalten.


    Ich hatte ebenfalls das Problem mit der großen Verzögerung und war damit sehr unzufrieden.
    Dann hat Philips das Entertainment Programm ins Leben gerufen. Damit soll ja genau der Anwendungsfall Ambilight abgebildet werden: Häufige Farbwechsel und minimale Verzögerung.


    Ich hab mich dann bei Philips angemeldet und hab das Entertainment Tutorial auf die Dream übertragen.
    Mit einem sehr guten Ergebnis: Keine merkliche Verzögerung zwischen Bild und Farbwechsel der HUE. 10 Farbwechsel pro Sekunde...


    Ganz grob was ich getan habe:


    Anpassung der von Philips im Beispiel verwendeten Bibliothek mbedtls2.7 auf meine Lampen Ids und auf die Schnittstelle von Enigmalight
    Kompilieren in C++ auf einem BarryAllen Debian Image direkt auf der Box.
    Installation von Enigmalight und Konfiguration der mbedtls in der enigmalight.conf
    Und mit einigen Versuchen hat es dann hin gehauen...


    Vielleicht kann das ja einer von Euch in eine ausrollfähige Lösung verwandeln...

  • Sorry für die späte Antwort.
    Ich habe meine Schritte mit dokumentiert. Würde das Ganze jetzt nicht Tutorial nennen. Aber vielleicht hilft es um das ganze nachzubauen.
    Wichtig ist nochmal: Ich habe das hingefuscht und zusammenkopiert. Du kannst also keine perfekte Lösung erwarten.


    Folgende Informationen habe ich als Basis benutzt. Vielleicht helfen die in der Vertiefung.
    Die konkreten Schritte habe ich weiter unten beschrieben.


    Ich habe mich kostenlos bei HUE Developers angemeldet:
    https://developers.meethue.com…lopment-hue-entertainment


    Es gibt ein Tutorial für die Entertainment API:
    https://developers.meethue.com…ion/hue-entertainment-api
    Hier ist besonders das Kapitel "Getting started with Streaming API" interessant.



    Schritt 1:
    Ermitteln der IP-Adresse der Hue Bridge.
    Hab ich über meine FritzBox gemacht - wird bei mir als Philips-hue gelistet.
    Am besten der Bridge eine feste IP geben, da ich die IP an verschiedenen Stellen hart verwendet habe.


    Schritt 2:
    Weboberfläche für Entwickler (API Debugging) auf der Bridge öffnen:
    http://<IP der Bridge>/debug/clip.html


    Hier einen neuen Benutzer anlegen.
    Dazu in URL /api eingeben
    Im Message Body

    Code
    1. {
    2. "devicetype":"myapplication#enigmalight",
    3. "generateclientkey":true
    4. }








    Dabei kann der Wert von DeviceType frei gewählt werden.
    Dann auf der Bridge die Taste drücken und den Befehl mittels PUT abschicken.
    Die Antwort enthält den Benutzernamen und den Client Key. Beide Informationen brauchen wir später:




    Code
    1. [
    2. {
    3. "success": {
    4. "username": "FmIW4HnZcjoYbj2N182288aJFQXhNQXjxcKg9tk3",
    5. "clientkey": "D52A6132900ECD521243012A125B21D45"
    6. }
    7. }
    8. ]


    Wie das in der Oberfläche aussieht, kann man auch im Screenshot "Benutzer anlegen" sehen.



    Schritt 3:
    Anlegen eines Entertainment-Bereichs in der Hue App.
    Ich hab das auf dem IPhone gemacht, daher hier die Beschreibung für das Iphone.
    Wichtig. Die Positionen der Lampen sind dabei egal, da wir diese später über die Nummer ansprechen. Es müssen jedoch alle Lampen die geschaltet werden sollen dem Entertainment Bereich zugeordnet sein.


    Einstellungen -> Entertainment Bereiche -> Entertainment Bereich erstellen
    Dann den jeweiligen Schritten der App folgen...


    Am Ende ist ein Entertainment Bereich angelegt...



    Schritt 4:
    Identifizieren der URL des Entertainment Bereichs:
    Dazu habe ich wieder die Weboberfläche für das API debugging benutzt:


    URL:
    /api/<Benutzernamen aus Schritt 1>/groups/
    Befehl mit Get absetzen.


    Am Ende der Liste sollte sich der Eintrag für den Entertainment-Bereich finden.
    Den kann man entweder über den vergebenen Namen oder über die Kennzeichnung
    type": "Entertainment" identifzieren.
    Der Bereich ist durch eine Nummer gekennzeichnet. Diese Nummer benötigen wir.



    Schritt 5:
    Anzeigen aller Lampen im Entertainment Bereich:


    Nachdem wir den Entertainment Bereich identifiziert haben müssen wir prüfen ob dieser auch die notwendigen Lampen enthält.
    Das geht wieder über die Weboberfläche für das API debugging benutzt:


    URL:
    /api/<Benutzernamen aus Schritt 1>/groups/<Nummer des Entertainment Bereichs>
    Befehl mit Get absetzen.


    Damit kommen nun die zugeordneten Lampen zurück. In meinem Beispiel die Lampen (lights) 3 und 4


    Schritt 6: (optional)
    Wenn man will kann man schon mal testweise die Lampen in den Entertainment Mode versetzen:


    Wieder mit der API Debugger Weboberfläche.
    URL ist dieselbe wie im Schritt 5
    In den Body muss diesmal rein:

    Code
    1. {"stream":{"active":true}}

    Und dann das Ganze per PUT raussschreiben.


    Die Antwort sollte in etwa so aussehen (bei mir ist die Entertainment Group die Gruppe 4):



    Code
    1. [
    2. {
    3. "success": {
    4. "/groups/4/stream/active": true
    5. }
    6. }
    7. ]


    In der App sollte jetzt eine Info auftauchen, dass die Lampen in Entertainment-Funktion sind.
    Achtung: Dieser Modus hält nur kurz an, da keine weiteren Befehle folgen.
    Wir können auch leider keine Befehle senden, da ab jetzt alle Kommunikation verschlüsselt erfolgen muss. Es können keine Befehle für die Farbänderung oder Helligkeit per WebAPI gesendet werden.




    Nun geht es darum die Ansteuerung aus der DreamBox zu übernehmen.
    (Ich hab das Konzept bei mi übrigens nicht nur auf der Dreambox sondern auch auf meinem Linux HTPC laufen. Geht genauso)


    Philips verwendet in seinem Tutorial eine Verschlüsselungs-Bibliothek namens mbedtls-2.7
    Da ich keine andere gefunden habe die den Verschlüsselungs-Standard PSK mit TLS_PSK_WITH_AES_128_GCM_SHA256 unterstützt habe ich diese Suite benutzt.
    Da es keine vorkompilierte Version für die DM900 gibt und ich ohnehin den Source Code der Bibliothek verändert habe musst ich die Bibliothek von Hand kompilieren


    Schritt 7:
    Wir brauchen eine Linux Umgebung mit einem C++ Compiler auf der DreamBox.
    Daher habe ich BarryAllen und damit ein vollwertiges Debian installiert.
    Für die Installation gibt es ausreichend tutorials und ich möchte die Installation daher hier nich näher ausführen.


    Schritt 8:
    Um C++ kompilieren zu können habe ich per APT-GET die nötigen kompiler-Tools installiert.
    Bitte fragt mich nicht mehr was alles. Zumindest gcc war erforderlich. Ich glaube auch build-essentials.


    Diesen Auzug habe ich noch mit der Reverse-Search gefunden:


    Code
    1. apt-get install coreutils ncurses grep wget libz-dev make binutils libssl1.0.0 openssl openssl-dev libcrypto1.0.0 libusb-1.0-0 libusb-1.0-dev




    Schritt 9:
    Übertragen der mbedtls-2.7 Bibliothek
    Ich habe den source code (bzw. das gesamte zip) per ftp auf die Box übertragen.
    Da ich barry allen benutzt habe, liegt der ganze Kram bei mir unter
    /media/ba/ba/debian/home/root/mbedtls-2.7.0/


    Schritt 10:
    Jetzt muss der DTLS client so modifiziert werden, dass er mit der Hue Bridge spricht und dort sowohl die entertainment API aktiviert als auch die entsprechenden Licht Informationen überträgt:


    Die folgende Datei muss editiert werden (Pfad ist relativ)
    programs/ssl/dtls_client.c


    Folgende Anpassungen müssen gemacht werden:
    Zeile 67: IP Adesse der Hue Bridge
    Zeile 71: Der Username den wir in Schritt 2 erstellt haben
    Zeile 97: Der Client Key, den wir in Schritt 2 erstellt haben
    Die Eingabe erfolg in Hex, es müssen also jeweils Blöcke mit 2 Zeichen mit vorangstelltem 0x eingegeben werden.
    Zeile 146:
    Hier wird das Entertainment aktiviert. Die URL die hier steht muss mit der URL aus Schritt 5 (bzw. Schritt 6) ersetzt werden.
    Zeile 395 / Zeile 397:
    Meine Konfiguration verwendet 2 Lampen. Wie in Schritt 5 ermittelt handelt es sich um die Lampen 3 & 4. Diese müssen jetzt hier eingetragen werden. Dabei steht die Lampe 3 bei mir links vom TV und die Lampe 4 rechts vom TV). Diese Werte müssen auf eure Lampen angepasst werden. Achtung auch hier ist wieder HEX kodierung zu verwenden.


    Schritt 11:
    Kompilieren des geänderten Codes:
    Muss in der Debain Umgebung passieren. Bei mir geht das über
    cd /media
    ba.sh chroot debian
    cd /home/root/mbedtls-2.7.0/program
    make clean
    make


    Möglicherweise gibt es Warnungen, aber das build script sollte durchlaufen.
    Im anschluss findet sich im verzeichnis ssl die Datei dtls_client.


    Soweit so gut.
    Das debian image kann man mit dem Befehl exit wieder verlassen...



    Schritt 12:
    Installation des Enigmalight.
    Der Client kann jetzt ganz normal installiert und konfiguriert werden. Entweder über den Paketmanager für die Erweiterungen oder über die Konsole.
    Ich habs über die Konsole gemacht.


    Schritt 13:
    Nachdem das Plugin installiert ist, muss lediglich die normale Konfiguration des Enigmalight Plugins vorgenommen werden wie in jedem anderen Tutorial beschrieben.
    Wichtig ist das in der
    /etc/enigmalight.conf der richtige output eingestellt wird.
    Hier meine Beispieldatei mit den beiden Lampen.
    Ich lasse für die linke Lampe den linken Bereich des Bildschirms abtasten und für die rechte Lampe entsprechend den rechten Bereich.







    Schritt 14:
    Starten von Enigmalight
    Damit sollte sich Enigmalight in Verbindung mit Hue Entertainment jetzt starten lassen.
    /usr/bin/enigmalight


    sollte in etwa zu folgendem output auf der Console führen:




    Und dann sollte es auch schon laufen.
    Ich hatte schonmal Fehler in dieser Ausgabe. Aber beim zweiten Start-Versuch hat es dann immer geklappt.



    Schritt 15:
    Ich hab jeweils ein Script zum Ein- und Ausschalten gemacht.
    Die habe ich im root abgelegt und kann die jetzt über den Datei-Browser der Dreambox benutzen um mein Ambilight ein und aus zu schalten...
    Die jeweiligen Scripte hab ich ebenfalls mit angehängt.



    Ich hoffe das "Tutorial" hilft dem einen oder anderen weiter.
    Oder noch viel besser einer von Euch schafft es meine Ergebnisse in eine ordentliche Lösung zu überführen...



    Gruß,
    Strategy

  • Hallo zusammen,


    kann mir jemand helfen - komme einfach nicht weiter.
    Habe ne DM920, Newnigma2, Karatelight 16fach. Hat das jemand von Euch zum laufen gebracht?
    Vielen Dank im Voraus für Eure Mühe

  • Guten Morgen.


    Hey das wäre top.
    Irgendwie scheitere ich schon bei der Installation des Plugins. Die beiden Dateien habe ich nach /tmp kopiert. Dann per Telnet mit dpkg -i versucht zu installieren. Beim Plugin bringt er ne Fehlermeldung (Box nicht gefunden)
    In der Plugin Liste unter Newnigma Service (blaue Taste) wirds auch nicht angezeigt.
    Welches Image hast du?


    Gruß Hase :)

  • dpkg -i /tmp/*.deb


    apt-get update && apt-get -f install


    Beigefügte Datei als "enigmalight.conf" speichern (Endung ändern) und die enigmalight.config dann nach


    /etc/enigmalight.conf


    und mit Rechten 755 speichern.


    Viel Erfolg !!

  • Guten Abend,


    habs zumindest mal installiert bekommen :-) Danke dafür. Licht ein ging nicht.
    Beim starten vom Plugin hatte ich nen GreenScreen.
    Das steht in der enigmalight_gui_crash:


    Traceback (most recent call last):
    File "/usr/lib/enigma2/python/Plugins/Extensions/EnigmaLight/plugin.py", line 79, in EnigmaLight_MainMenu
    ImportError: No module named EL_MainMenu


    Das kommt raus mit den Dateien aus Beitrag 1


    Mit deinen aus Beitrag 5 sehe ich im BP und im Plugin Menü kein Enigmalight


    ne Idee?


    Werde nochmal das Newnigma neu flashen und dann frisch mit deinen Dateien versuchen zu installieren.


    Achja. Hast du die Treiber vom Karatelight von der Carsten Presser Seite installiert oder war das nicht nötig?

  • Ich nutze Merlin. Aber ne Idee habe ich auch nicht, sorry. Treiber? Nein. Vermutlich habe ich vor Jahren mal ein Firmwareupdate am Karatelight selbst gemacht, aber mehr auch nicht.


    Edit:
    Auf der vorletzen Seite im Thread im ihad steht etwas zur Anpassung einer Datei mit einem Editor, die für die 920 vielleicht notwendig ist. Eher ein Schuss ins Blaue, aber vielleicht hilft das ja noch weiter...


    Gruß

  • Sorry für die späte Antwort.
    Ich habe meine Schritte mit dokumentiert. Würde das Ganze jetzt nicht Tutorial nennen. Aber vielleicht hilft es um das ganze nachzubauen.

    Ich melde mal Vollzug und danke Dir vielmals für Deine ausführliche Beschreibung. Ich hab's auf dem RPi 3 kompiliert, da ich mir die Box sauberhalten wollte. Das Binary ist dann problemlos auf die 920UHD verpflanzt worden. Hue Entertainment ist subjektiv latenzfrei, so macht das Spass :D

  • Hat jemand hier Enigmalight in Kombination mit einem SeduBoard V2 am laufen. Ich krieg das einfach nicht zum laufen. Hab ne DM920 in Enigmalight 0.4RC1

  • Problem gelöst - lag am falsch gestecken Jumper am Sedu-Board welches die Baudrate nicht auf die erforderlichen 500k eingestellt hatte. Jetzt läuft es, wenn auch noch nicht perfekt


    1. Die Farben sind zwar grundsätzlich korrekt, aber zum beispiel wird gerade Gelb/Orange sehr schlecht dargestellt, meist bleiben die LEDs zu dunkel dafür
    2. Bin nicht sicher was so die besten einstellungen sind was Framerate oder Scantiefe angeht. Und wofür steht "Auto Speed" im Tuning Menü?
    3. Das eigentlich nervigeste: In unregelmäßigen Abständen kommt es manchmal vor das ein paar LEDs (immer andere) einfach kurz aufblitzen, erhöhe ich im Menü Tuning die LED Geschwindigkeit wird das Problem stärker


    Kann jemand hier helfen?

  • Dear All,


    How can I install barryallen in debian ?


    I can try telnet ba.sh extract_debian debian but not working command.