UPDATE 2015-12-20
Neues Plugin Ambilight mit EnigmaLight
UPDATE 2015-04-06: Das Script wurde überarbeitet und berücksichtig nun die Helligkeit.
Nach reiflicher Überlegung habe ich mich dazu entschlossen ein Philips Hue Set zu kaufen, um das indirekte Licht im Wohnzimmer zu steuern und so für stimmungsvolle Beleuchtung zu sorgen. Das Set ist mit 179,- EUR schon sehr teuer und die Qualität der Komponenten wirkt auf den ersten Blick sehr billig und spiegelt in keiner Weise die hohen Investitionskosten wieder. Dennoch funktioniert die Anbindung mit der App sehr gut. Auch die API bei Philips ist sehr gut dokumentiert, so dass man schnell eigene Anbindungen schaffen kann.
In diesem Beitrag möchte ich zwei Dinge zeigen: die schnelle Einbindung in FHEM und die Programmierung eines Ambilights für Enigma2-Receiver. Hierbei handelt es sich um erste Versuche, die sicherlich noch nicht komplett ausgereift sind, aber super stabil laufen. Zudem ist die Programmierung ausschließlich auf meine Bedürfnisse ausgelegt (kann aber sicherlich schnell erweitert werden). Über Anmerkungen in den Kommentaren freue ich mich daher besonders.
Einbindung in FHEM
Als erstes habe ich – neben der Kopplung an die eigentliche App – die Hue-Bridge in FHEM konfiguriert. Die Einstellungen wurden nach dem Betätigen der „Save“-Funktion von FHEM in die Konfiguration geschrieben. So ist es nun möglich die Lampen entsprechend meiner definierten Aktionen an- bzw. auszuschalten. So weit so gut… und ein erster Schritt zum Ambilight.
Einbindung in Enigma2 (VU+ Solo2)
Da ich einen Sat-Receiver (VU+ Solo2) besitze, der auf Enigma2 basiert, wollte ich herausfinden, ob und wie sich die Hue-Lampen damit steuern lassen. Es gibt verschiedene Ansätze wie z. B. BobLight oder KarateLight, die in Verbindung mit einem zusätzlichen Microcontroller (teilweise auch einem Arduino oder RaspberryPi) ein Ambilight, dass hinter dem Fernseher angebracht wird, ermöglichen.
Wer XBMC nutzt, der kann das PlugIn script.xbmc.hue.ambilight verwenden. Erste Tests haben zwar eine generelle Funktionalität demonstriert, aber sowohl die VU+ Solo2 als auch mein AppleTV und Amazon FireTV waren nicht in der Lage ein ruckelfreies HD-Bild abzuspielen solange das PlugIn aktiv war. Zudem möchte ich auch ein Ambilight beim TV-Live-Bild erzeugen und nicht nur beim Abspielen von Filmen.
Mein Setup besteht leider nur aus zwei Lampen, die den Raum beleuchten sollen. Eine Lampe steht links hinter unserer großen Couch, die andere rechts. So lassen sich auf beiden Seiten unterschiedliche Farbszenen realisieren.
Die Grundüberlegung ist einfach:
Sat-Receiver –> PlugIn –> Hue-Bridge –> Hue-Lampe
Leider gibt es aber kein PlugIn, dass die Hue-Bridge direkt ansteuern kann, so dass dieses Setup leicht verändert werden muss. In einem Dreambox-Forum bin ich auf einen Beitrag gestoßen, der eine Anbindung an das Philips Hue-Derivat „Mi-Light“ beschreibt. Dieser setzt das PlugIn Boblight für Enigma2-Receiver ein und sendet die Ausgabe des Plugins an ein Python-Script.
Das neue Setup sieht somit wie folgt aus:
Sat-Receiver –> Boblight –> Python-Script –> Hue-Bridge –> Hue-Lampe
Installation von Boblight
Die Installation von Boblight ist sehr leicht.
enigma2-plugin-extensions-boblight-enigma2_0.8r5_mips32el.ipk
Anmerkung: Der Original-Server ist leider down. Es empfiehlt sich die Version 0.8r5 zu nehmen, da diese stabiler laufen soll.
Konfigurationsdatei erstellen
Damit Boblight funktioniert, muss eine Konfigurationsdatei erstellt werden (/etc/boblight.conf ).
[global]
[device]
name ambilight
output python /usr/dk/dkhue.py
channels 6
type popen
interval 200000
debug off
[color]
name red
rgb FF0000
[color]
name green
rgb 00FF00
[color]
name blue
rgb 0000FF
[light]
name AL1
color red ambilight 1
color green ambilight 2
color blue ambilight 3
hscan 0 50
vscan 0 100
[light]
name AL2
color red ambilight 4
color green ambilight 5
color blue ambilight 6
hscan 50 100
vscan 0 100
Entscheidend sind hier drei Stellen:
output python /usr/dk/dkhue.py
Diese definiert die Ausgabe von Boblight an python und das Python-Script dkhue.py, dass in dem Ordner /usr/dk liegt.
channels 6
Hier legen wir die Anzahl der Kanäle fest, 2 x 3 Kanäle (RGB).
[light]
Hiermit definieren wir die zwei Lampen und über den Parameter
hscan
wird angegeben, in welchem Bildbereich der Farbwert ermittelt werden soll. In meinem Fall habe ich das Bild halbiert, also die erste Lampe 0-50, die zweite Lampe 50-100.
Wer mehr Lampen hat, der muss die Anzahl der Kanäle jeweils um 3 erhöhen und eine weitere Lampe definieren. Dabei sollte dann auch der Bildbereich über hscan und vscan festgelegt werden.
Vorbereitung der Hue-Bridge
Als nächstes sollte die Hue-Bridge zur Verwendung der API-Schnittestelle vorbereitet werden. Diese wird generell wie folgt angesteuert:
http://meine.ip/api
gefolgt von einem Userkey, den es zu erstellen gilt.
Wer die Konfiguration in FHEM bereits vorgenommen hat, der kann auf diesen Key zurückgreifen. Alternativ könnt ihr einen neuen Key erzeugen. Eine ausführliche Beschreibung findet ihr auf der Herstellerseite von Philips. Das wichtigste in diesem Registrierungsprozess ist das Drücken des Connect-Buttons an der Bridge nachdem man den Post-Request gesendet hat.
Mittels POST die folgende URL ansprechen
http://192.168.xx.xx/api
und den folgenden Inhalt übertragen:
{"devicetype": "Vu", "username": "1234567890"}
Wir müssen nun den Link-Button auf der Hue-Bridge drücken, um in den Pairing-Modus zu wechseln.
Wenn wir nun nochmals den Api-Aufruf starten, dann sollte ein "Success" zurückkommen.
Mit dem Key "1234567890", welchen wir oben angegeben haben (frei wählbar) können wir nun die API aufrufen
Die Steuerungsdatei dkhue.py
Um die Hue-Lampen steuern zu können benötigt man entweder HLS-Werte oder aber XY-Farbkoordinaten (CIE 1931 Farbspektrum für Hue). In diesem Stackoverflow-Beitrag und auf dieser PhilipsHueSDK-Seite wird die Funktionsweise näher erklärt.
Download dkhue.py
Meine Steuerungsdatei sieht wie folgt aus (Debugging-Zeilen wurden entfernt):
import sys
import colorsys
import time
import json
import math
import httplib
def popen():
spidev = file('/usr/dk/aufruf.log', "wb")
key = "HIER API-KEY EINGEBEN"
ip = "HIER EURE IP EINGEBEN"
url = '/api/' + key + '/lights/'
lurl = url + '1/state'
rurl = url + '2/state'
while True:
eingabe = sys.stdin.readline()
if len(eingabe)>0:
# Get Input
lr,lg,lb,rr,rg,rb,x = eingabe.split(' ')
lr = float(lr)
lg = float(lg)
lb = float(lb)
rr = float(rr)
rg = float(rg)
rb = float(rb)
# Make RED more vivid
if (lr > 0.04045):
lr = float( math.pow((lr + 0.055) / (1.0 + 0.055), 2.4) )
else:
lr = float(lr / 12.92)
if (rr > 0.04045):
rr = float( math.pow((rr + 0.055) / (1.0 + 0.055), 2.4))
else:
rr = float(rr / 12.92)
# Make GREEN more vivid
if (lg > 0.04045):
lg = float( math.pow((lg + 0.055) / (1.0 + 0.055), 2.4) )
else:
lg = float(lg / 12.92)
if (rg > 0.04045):
rg = float( math.pow((rg + 0.055) / (1.0 + 0.055), 2.4))
else:
rg = float(rg / 12.92)
# Make BLUE more vivid
if (lb > 0.04045):
lb = float( math.pow((lb + 0.055) / (1.0 + 0.055), 2.4) )
else:
lb = float(lb / 12.92)
if (rb > 0.04045):
rb = float( math.pow((rb + 0.055) / (1.0 + 0.055), 2.4))
else:
rb = float(rb / 12.92)
# Calculate Luminance
h,l,s = colorsys.rgb_to_hls(lr,lg,lb)
l = round(255 * l)
l = 100 + l
l = max(2,int(round(l)))
if (l >=255):
l = 254
if (l<1):
l = 1
lxx = lr * 0.649926 + lg * 0.103455 + lb * 0.197109
lyy = lr * 0.234327 + lg * 0.743075 + lb * 0.022598
lzz = lr * 0.0000000 + lg * 0.053077 + lb * 1.035763
lsum = lxx + lyy + lzz
if (lsum > 0):
lx = lxx / lsum
ly = lyy / lsum
else:
lx = 0
ly = 0
rxx = rr * 0.649926 + rg * 0.103455 + rb * 0.197109
ryy = rr * 0.234327 + rg * 0.743075 + rb * 0.022598
rzz = rr * 0.0000000 + rg * 0.053077 + rb * 1.035763
rsum = rxx+ryy+rzz
if (rsum > 0):
rx = rxx / rsum
ry = ryy / rsum
else:
rx = 0
ry = 0
lon = True
ron = True
if (rx < 0.21 and ry < 0.21):
l = 1
ron = False
if (lx < 0.21 and ly < 0.21):
l = 1
lon = False
lparams = {'xy': [lx, ly], 'colormode': 'xy', 'bri': l, 'on': lon}
rparams = {'xy': [rx, ry], 'colormode': 'xy', 'bri': l, 'on': ron}
connection = httplib.HTTPConnection(ip, timeout=10)
connection.request('PUT', lurl, json.dumps(lparams))
response = connection.getresponse()
connection.request('PUT', rurl, json.dumps(rparams))
response = connection.getresponse()
connection.close()
else:
break
import time
time.sleep(7)
popen()
Anmerkung: Bitte auf die korrekte Anordnung der Tabs achten, sonst läuft das Script unter Python nicht.
Die Datei gibt es auch als Download dkhue.py.
Was passiert:
Boblight unterteilt das Bild in zwei Segmente (links und rechts) und analysiert die RGB-Farbwerte. Diese werden an das Script weitergeleitet und entsprechend in XY-Koordinaten umgerechnet. Anschließend werden die Werte an die Hue-Bridge via HTTP-Put übermittelt.
Das System läuft bei mir stabil. Ich bin mit den Farben aber noch nicht komplett einverstanden. Ich werde auch noch versuchen die Helligkeit zu berücksichtigen.
Schreibt wie ihr euer Ambilight realisiert habt oder welche Farbanpassungen euch am besten gefallen.
Hallo Krannich
danke für die Anleitung.
leider läuft es nicht auf meiner vu duo2.
in die steuerungsdatei hab ich key=“1234567890″ & Ip der hue Bridge eingetragen
Hallo Toni,
ich denke, dass Dein Problem beim Key liegt.
Ich habe meinen Key über einen Trick aus der FHEM-Config rauskopiert, die ich auch laufen habe.
Es muss immer zuvor eine Verknüpfung zwischen dem Gerät und dem HUB hergestellt werden. Damit das mit dem Script funktioniert gaukel ich dem HUB quasi vor, dass der Aufruf von meiner FHEM-Installation kommt, die der HUB bereits kennt. Wenn Du also einen gültigen Key irgendeine bekommen kannst, dann wird das Script auch laufen.
Hier gibt’s für FHEM eine kurze Anleitung, einfach nach „Philips-Hue anlernen“ suchen:
http://blog.moneybag.de/hausautomation-mit-fhem-auf-raspberry-pi-mit-philips-hue-temperaturmodule-fh-20-funksteckdosen/
Viele Grüße,
Dennis
Hi kronni,
Könntest du noch ein Dkhue.py Skript für die Nutzung „einer“ Hue Lampe bereitstellen? Ich würde das ganze sehr gerne austesten. Vielleicht hast du deine Steuerungsdatei ja auch noch verbessern können.
Außerdem gibt’s noch das kodidirect Plugin für enigma2, womit sich xbmc addons nutzen lassen. Das hab ich aber noch nicht getestet.
Danke!
Hi Ntx,
zunächst Danke für den Tipp mit dem Kodidirect Plugin. Ich werde das auch mal testen…
Nun zu Deiner Anfrage: Es ist im Grunde recht einfach, somit solltest Du das auch alleine schaffen.
In der Boblight.conf muss in Zeile 28 der hscan für die erste Lampe von “0 50″ auf “0 100″ gesetzt werden. Das sollte reichen, auch wenn es überflüssigen Code gibt.
Wenn Du noch mehr machen willst, muss die zweite Lampe gelöscht werden (Zeile 31-37).
In der dkhue.py müssten dann alle Zeilen mit Variabeln, die mit “r” starten, gelöscht werden.
Viele Grüße,
Dennis
Danke für die schnelle Und verständliche Antwort.
allerdings verstehe ich noch nicht genau wie ich mir den Key generiere. Verstanden habe ich, dass ich mittels Post die Anfrage an die Bridge stelle, wenn ich im Link Modus bin. Aber was passiert nach der „success“ Rückmeldung, bzw. wo sehe ich meinen generierten Key?
Kein Problem. Ich denke diese kleine Anpassung ist schnell erledigt und bedarf kein extra Script.
Unter der folgenden URL findest Du eine noch bessere Anleitung als in dem Forum, das ich angegeben habe.
http://www.developers.meethue.com/documentation/getting-started
Gut finde ich auch, dass die HUE Bridge einen integrierten REST-Client hat.
Wichtig ist, dass der Connect-Button an der Bridge nach dem Absenden des Post-Requests gedrückt wird.
Der API-Key ist dabei frei wählbar.
In meinem Fall habe ich einfach den von FHEM „geborgt“ und keinen eigenen erstellt.
Hoffe ich konnte damit helfen.
Viele Grüße,
Dennis
Danke für die Antwort.
Eine letzte Frage habe ich aber noch.
Und zwar wie ich hier erreichen kann, dass nur die eine bestimmte Lampe berücksichtigt wird wenn ich viele verschiedene habe?
Sagen wir ich habe 3 Lampen und ein Lightstrip. Nun will ich dass nur das lightstrip das ambilight hat.
Hast du da auch eine Lösung? Im Code kann ich nicht wirklich erkennen, dass gezielt eine spezielle Lampe angesteuert wird.
Gerne. In der dkHue steht die entsprechende Anweisung.
In Zeile 10 und 11 wird definiert, welche Lampe geschaltet bzw. gesprochen werden soll.
Bei mir ist meine linke Lampe als Lampe 1 registriert, die rechte Lampe (Zeile 12) ist als Lampe 2 registriert.
Somit müsstest Du herausfinden, welche Nummer Deine Lampe hat.
Viele Grüße,
Dennis
Habe derweil die Konfiguration mit einer Lampe ausprobiert und kann sagen, dass das Ergebnis im Ganzen ziemlich gut ist.
Wie du sagst, sind nicht alle Farben perfekt. Manchmal ist die Farbe rosa, obwohl das Bild sehr dunkel oder schwarz ist.
Vielleicht hast du ja noch die Ambition den Code noch etwas zu verfeinern? Ich bin hier nicht so gut aufgestellt.
Interessant wäre für mich noch, wie ich sowas mit einer Playstation hinbekommen könnte. Evtl. nur über einen Raspberry Pi den man zwischen die HDMI Verbindung schaltet?
Hi, an den Farben werde ich noch basteln, ich bin auch noch nicht ganz damit zufrieden. Ich werde dann das Script hier aktualisieren. Möchte auch den Helligkeitswert abfragen und entsprechend setzen.
Deine Idee mit der Playstation ist so leider nicht umsetzbar. Hierfür bräuchte man eine Box, die das HDMI-Signal aufgreift, dann verarbeitet und an den TV weiter gibt.
Das Problem, was ich definitiv schonmal eingrenzen konnte ist, dass bei jedem Schwarzwert oder dunklen Farben die Lampe im grellen Pink bis rot leuchtet.
Alle anderen Farben scheinen gut zu sein.
Hast du eine Idee, wie sich dieses Problem beheben lässt?
Danke für die Eingrenzung. Schwarz hat mich auch immer gestört… ich werde demnächst mal schauen, wenn wieder etwas Zeit ist.
Hallo, ich habe Boblight mal unter Newnigma2 installiert aber irgendwie will es nicht rennen 🙁
das ganze müsste doch auch mit enigmalight gehen oder? Wieso hast du auf das vorige Projekt zurückgegriffen?
Generell sollte das gehen, ich habe mich auf diese Version konzentriert, da ich zum einen dazu ein Tutorial und zum anderen eine lauffähige Version gefunden habe. Sag aber ruhig Bescheid, vielleicht kann man das ganze noch optimieren.
Dazu kann ich leider auch nichts sagen, vielleicht hat jemand der anderen Leser/innen eine Idee. Ich habe ein VTI-Image drauf.
Hast du in deiner Anleitung einen kleinen Fehler drin
url = ‚/api/‘ + key + ‚/lights/‘
sollte url = ‚/api/‘ + ‚/key/‘ + ‚/lights/‘ so heißen oder? 😉
Hi Thomas,
nein die URL ist so korrekt zusammengesetzt.
Der String muss so aussehen: „/api/MEINKEY/lights/“
Wobei MEINKEY der Wert der Variable „key“ ist, die quasi dynamisch eingesetzt wird.
Dein Beispiel würde zu doppelten Slashes führen, was nicht mehr URL-konform wäre.
Also alles korrekt.
Viele Grüße,
Dennis
Ich kann bestätigen, dass es auch mit dem enigmalight Projekt läuft. Habe es testweise ausprobiert, um zu schauen ob das schwarzwert Problem besser wird. Einen Mehrwert sehe ich dort aber überhaupt nicht. Läuft genauso wie mit boblight. Das Menü ist nur etwas langsamer.
Ansonsten wäre es echt top, wenn du noch solche Faktoren wie Helligkeit berücksichtigst! wenn noch das Schwarzwert Problem beseitigt ist, dann würde ich das Ganze definitiv täglich nutzen.
Hallo Dennis,
danke für diesen SUPER Artikel, ich habe es mit meiner Duo2 und zwei hue Lightstrips nachgebaut. Die Farbkorrektur habe ich dabei entfernt, da es bei den Lightstrips sonst zu Fehlfarben kommt. Eine Frage habe ich aber noch, hast Du eine Lösung gefunden bei der die hue Lampen danach nicht im „Schwarzbalken-Blau“ des Plugins bleiben? Ich kann im Moment nämlich keine anderen Farben mehr setzten solange das Plugin auf der Box läuft (auch im Standby).
Hallo Bernhard,
Danke für das Lob… mit der Farbkorrektur werde ich auch noch etwas rumspielen. Mich stört zum Beispiel auch noch, dass die Lampen bei schwarzem Bild blau leuchten.
Leider konnte ich dafür auch noch keine Lösung finden.
Wenn die Box bei mir im Standby-Mode ist, dann funktioniert ein manueller Farbwechsel.
Gibt es vielleicht Unterschiede im Standby-Modus?
Viele Grüße, Dennis
Hallo,
in der boblight.conf unter light: name al1 und al2, sind das die Namen der Hue Lampen oder nur Platzhalter?
Hallo,
al1 und al2 sind nur interne Bezeichner für die Lampen (AmbiLight1) in dieser Config und werden nicht weiter benötigt.
Die Ansteuerung der Lampen erfolgt über den HTTP-Request. Die Lampen wurden ja vorher über die HUE-App entsprechend registriert und werden dann über lurl und rurl angesprochen (in meinem Fall für linke (l) und rechte (r) Lampe).
Viele Grüße,
Dennis
Hallo,
super Anleitung.
Allerdings ist der Downloadlink nicht mehr aktuell. Ich konnte aber sowohl enigmalight als auch boblicht auftreiben und installieren. Nach ein Paar Problemen mit dem Python script wird dies nun auch ausgeführt. Allerdings kommt immer nur „0.000000 0.000000 0.000000 0.000000 0.000000 0.000000“ als Eingabe im script an und anscheinend klappt auch der Verbindungsaufbau über die „connection = httplib.HTTPConnection(ip, timeout=10) “ noch nicht.
Ist es zwangsläufig erforderlich innerhalb des Scripts über popen zu arbeiten?
Auch mit popen ist die Eingabe immer die oben genannte.
Hat jemand das gleiche Problem gehabt und lösen können?
Vielen Dank
Chris
Danke für den Hinweis. Ich habe den Link aktualisiert und die Datei direkt auf meinen Server gelegt.
Warum Du nur Nullen bekommst, kann ich mir auch nicht erklären. Vielleicht läuft Boblight noch nicht. Du könntest mal versuchen über die farbigen Tasten Deiner Fernbedienung im Plugin die Lampen ein- bzw. auszuschalten oder einen Neustart des Plugins durchzuführen.
Viele Grüße,
Dennis
Hallo und vielen Dank.
Für eine Lampe mache ich folgende Änderungen wie von dir beschrieben:
In der Boblight.conf muss in Zeile 28 der hscan für die erste Lampe von “0 50″ auf “0 100″ gesetzt werden.
Wenn Du noch mehr machen willst, muss die zweite Lampe gelöscht werden (Zeile 31-37).
In der dkhue.py müssten dann alle Zeilen mit Variabeln, die mit “r” starten, gelöscht werden.
Zusätzlich ändere ich auch:
channels 3 (in der config)
und in dem phyton script mach ich aus:
lr,lg,lb,rr,rg,rb,x = eingabe.split(‚ ‚)
lr,lg,lb,x = eingabe.split(‚ ‚)
Richtig?
Auf den ersten Blick sieht das ganz gut aus.
Hi!
Ich finde die Anleitung Spitze! Nur leider läuft diese bei mir nicht. Habe 2 Hue LED Stripe mit Bridge und das enigmalight Plugin. Wenn ich das Plugin starte erscheint die Fehlermeldung: ‚: [Errno 2] No such file or directorypy
Wo könnte das Problem liegen?
Vielen Dank für die Hilfe!
Viele Grüße
Matthias
Ich bin mir nicht ganz sicher, aber es scheint, als wenn die Datei dk.py nicht gefunden werden kann, weil sie im falschen Verzeichnis liegt oder nicht die richtigen Rechte besitzt.
Also die Dateien sind im korrekten Ordner und die Rechte stehen momentan auf 0777. Das sollte nicht das Problem sein.
Moin, habe das gleiche Problem auf meiner Vu+ Solo², VTI 8.0. Ich habe es nun mit Boblight und Enigmalight probiert, aber nichts klappt; irgendwie hat Python wohl keinen Zugriff auf das Script…
Die Permissions habe ich auch schon mehrmals gecheckt, alles ist erlaubt (777).
Ist einer von euch schon auf irgendeine Idee gekommen?
Die Verbindung zur Hue klappt jedenfalls schon einmal, das habe ich über ein kleines Script getestet, das Verbindung mit der Hue aufnimmt und dann die Lampen ausschaltet.
Nur um sicher zu gehen: Den Ordner dk im Verzeichnis /usr/ muss ich erst kreieren, oder?
Ja der Ordner muss erst erstellt werden und dort sollte dann das Script liegen. Du kannst auch einen anderen Namen wählen, dann sollte aber die Konfigurationsdatei entsprechend angepasst werden. Bei mir hatte ich leider keine derartigen Fehler.
Danke, ich habe es mittlerweile herausgefunden!
Die Lösung ist im Prinzip wirklich total banal, ergibt aber Sinn:
Wie so oft lag es am Format des Zeilenendes:
Die boblight.conf muss mit UNIX-Zeilenende (LF) ausgestattet sein. Hierzu wird ein Texteditor wie z.B. Notepad++ benötigt, der normale Windows-Editor kann das nicht (afaik).
In Notepad++ nun die fehlerhafte boblight.conf öffnen und und dann auf Bearbeiten –> Format Zeilenende –> Konvertiere zu UNIX (LF)
Dann die Datei neu speichern und hochladen. Das war’s, jetzt dürfte alles klappen.
DANKE also für das nun endlich funktionierende Skript!
btw: irgendwelche Fortschritte auf dem Gebiet der Farbanpassung?
Manchmal ist die Lösung echt nah. Wäre ich aber auch nicht drauf gekommen.
Bei der Farbanpassung komme ich nur langsam voran. Irgendwie funktioniert das mit der Helligkeit noch nicht so, wie ich das will und die neuen Farbwerte kommen auch noch falsch an.
Hi,
also erstmal tolle Sache dass du das bereit stellst.
Leider läuft das bei mir nicht. Hab eine Vu+ Duo2 mit VTI8.0 + allen Updates und HUE auf neuester Firmware.
Ich bin wiefolgt vorgegangen:
-einen USER Key für mein HUE erstellt und über den Browser mit ein und ausschalten getestet –> Hat funktioniert.
-boblight.conf erstellt (mit Notepad++) und nacht /etc/ kopiert
-dkhue.py erstellt, angepasst (user bei mir auch „1234567890“ und ip der Bridge in dem Stiel „192.168.1.10“ in die Anführungszeichen geschrieben – mit Notepad++) und nach /usr/dk/ kopiert
-booblight 0.8r5.ipk (mipsel32el) nach /tmp/ kopiert und installiert (über VTI Panel)
-VU neugestartet
-Nichts passiert –> Hues sind an (hab 4 Lampen – aber confiig mit den beiden verwendet/ 1:1 wie es oben ist)
-In den Boblight Menü mit den farbigen Tasten versucht irgendwas zu starten nix
-Berechtigungen der Datein auf 777 gestellt
-Immer wieder neugestartet
-Weiß nicht wo ich anfangen soll nach Fehlern zu suchen oder was ich noch machen kann ;(
Ich hoffe du kannst mir helfen kronni. Das wäre echt super da ich das sooooo gerne hätte
Danke schon einmal
War bei mir auch der Editor. Hatte zwar notepad++ genommen aber nicht die Leerzeile drin. Jetzt geht es bei mir auch. Danke Danos für den Tip
Hallo und vielen Dank,
mein aktuelles Setup ist dm500hd, enigma2 (Merlin 3) und enigma2-plugin-extensions-enigmalight – 0.1r5-b12. Funktionalität ist gegeben jedoch schalten die Lampen zu langsam um.
Ich habe es zur Zeit mit 2 Hue Lampen laufen. Das python script läuft bei rund 95% CPU-Last. Gibt es eine Möglichkeit das ganze zu optimieren.
Cheers,
Sebastian
Hallo Sebastian,
ich gebe zu, dass ab und zu auch mein System hängt. Eine so hohe Auslastung habe ich aber nicht.
Leider bin ich auch kein Profi in Python oder Enigmalight, so dass ich bisher noch keine Lösung gefunden habe. Es soll auch möglich sein eine andere (aktuellere) Version zu benutzen, aber da habe ich mich aus Zeitmangel noch nicht rangetraut.
Vielleicht hat ja einer der Leser/innen meine Blogs eine Idee.
Viele Grüße
Dennis
Hallo zusammen,
habt Ihr schon eine Lösung für schwarzwerte und Helligkeit gefunden?
Gruß,
Jens
Würde mich auch sehr interessieren.
Yep da hänge ich mich gleich dran. Habe es heute entdeckt und recht fix zum Laufen gebracht. Super lieben Dank für die Arbeit. Aber insb das „schwarz“ ist etwas lästig. Gibts da Progress? Kann man helfen?
LG,
JP
Ist da nicht ggf. ein Typo in Zeile 43? Sollte
lg = float(lr / 12.92)
nicht eher
lg = float(lg / 12.92)
sein? 🙂
Danke!
Hallo zusammen, ich habe den Beitrag aktualisiert!
1. Ein kleiner Typ hat sich eingeschlichen. Danke JPK.
2. Die Helligkeit wird nun ausgewertet und entsprechend berücksichtigt.
3. Der Schwellwert kann in 103 und 107 geändert werden.
Leider sind leicht Unterschiede in der Helligkeit nicht gut sichtbar.
Vielleicht hat ja jemand eine Idee.
Ich weiß nicht, obs an dem neuen Python Script liegt, aber bei mir läuft nichts mehr.
Wenn ich bei enigmalight auf „lights on“ drücke sehe ich kurz dass es aktiv ist, wonach direkt wieder „lights on“ steht. Also es läuft nichts. Gibts irgendwelche Log files, wo ich sehen kann wo das Problem ist?
Logge dich per Telnet auf deiner Vu ein: hierzu in Windows erst ein mal unter „Windows-Features aktivieren/deaktivieren“ den Telnet-Clienten aktivieren (Server wird nicht benötigt), Dann Windows-Taste + R, cmd eingeben. In der Eingabeaufforderung „telnet 192.168.1.xxx“ eingeben und dabei die IP der Vu verwenden. In Telnet loggst du dich mit dem root-Accout an, der dürfte standardmäßig kein Passwort benötigen. Wenn du eingeloggt bist, gibst du „boblightd“ ein und drückst auf Enter. Vielleicht hilft dir das Log, das dann kommt. Ansonsten darauf achten, dass die EOL-Einstellung für deine boblight.conf auf LF steht. Siehe dazu mein Post weiter oben 🙂
Das Problem liegt in der „neuen“ Python Datei.
Damit es lief musste ich in Zeile 22 alles korrekt einrücken und das else: und break in Zeile 123 und 124 entfernen, da sonst Fehler kommen.
Das andere Problem ist jedoch, dass die Lampen durchgängig zu dunkel sind. Eine dynamische Helligkeitseinstellung konnte ich überhaupt nicht wahrnehmen.
Der Helligkeitswert kann entsprechend angepasst werden. Bei mit läuft es gut, ich schaue aber auch immer im abgedunkeltem Raum. Blöd auch, dass die Helligkeit nicht ganz auf Null gesetzt werden kann.
Was bei mir nicht funktioniert ist, das Stoppen von boblight. Wenn ich „aus“ wähle, dann läuft alles weiter.
Um das Script zu starten musste ich aus „break“ in Zeile 124 „sys.exit()“ machen. Irgendwas stimmt da nicht.
Der Helligkeitswert kann in Zeile 067 geändert werden. Bei mir war es zu hell.
Mein Script ist nun als Download abrufbar.
Das sind die Fehler, wenn ich boblicht ausführe:
Liegt an der neuen dkhue.py
Ich weiß nicht wo das Problem ist..
Boblight Daemon – for enigma2 0.8r4 (c) 2012-2013 Speedy1985 and Oktay Oeztueter)
(InitLog) start of log /home/root/.boblight/boblightd.log
(PrintFlags) starting boblightd
(CConfig::LoadConfigFromFile) opening /etc/boblight.conf
(CConfig::CheckConfig) checking config lines
(CConfig::CheckConfig) config lines valid
(CConfig::BuildConfig) building config
(CConfig::BuildConfig) built config successfully
(main) Starting devices
(CClientsHandler::Process) opening listening TcpSocket on *:19333
(CDevice::Process) ambilight: starting with output „python /usr/dk/dkhue.py“
(CDevice::Process) ambilight: setting up
(CDevice::Process) ambilight: setup succeeded
Traceback (most recent call last):
File „/usr/dk/dkhue.py“, line 159, in
popen()
File „/usr/dk/dkhue.py“, line 22, in popen
lr,lg,lb,rr,rg,rb,x = eingabe.split(‚ ‚)
ValueError: need more than 4 values to unpack
Was schickt Boblight denn raus? Scheint so als wenn nur 4 Parameter ankommen.
So, habe es hinbekommen.
Läuft jetzt mit einer Lampe. Dafür musste ich alle „r“ Parameter aus der dkhue Datei löschen. Anders ging es nicht.
Mit zwei Lampen hat es irgendwie nicht einwandfrei funktioniert. Aber mit einer geht es. Teste es mal.
Habe den Helligkeitswert in Zeile 067 mal von 100 auf 107 geändert. Kommt mir immer noch nicht hell genug vor. Kann ich da noch dran drehen?
Grüße und Danke
Hi!
Super Script. Ich habe es schonmal versucht, da war nichts zu machen. Dann hat jemand den Tip gegeben mit der UNIX Zeile am Ende, und jetzt kann man zumindest das System starten. Also Enigmalight läuft. Ich habe auch ein Sedulight Set mit dran, und das funktioniert auch.
Leider die Hue nicht. An was kann es liegen? Wie kann ich kontrollieren, ob das Hue System Werte bekommt? Oder muss das hue alleine laufen?
Für Enigmalight muß man ja positions Zeilen einfügen. Oder nicht?
Hoffe ihr könnt mir helfen!
Viele Grüße
Matthias
Ich hoffe das Projekt ist noch nicht tot 🙂
Mich würde nämlich noch interessieren, wie man die Ping Zeiten optimieren könnte.
Die Farben funktionieren gut. Nur wäre es noch besser, wenn die Farben schneller als mit 1 Sekunde Verzug kommen würden. Sprich, näher am originalen ambylight.
Wäre sowas machbar?
Hi, hast du für das Problem schon ne Lösung gefunden?
Nein leider nicht. Ich will mir jetzt enigmalight anschauen und versuchen, ob das besser läuft.
Funktioniert dieser Aufbau auch auf einem p mit installiertem Openelec/kodi? Und ohne zusätzliche Hardware. Wie coc oder cul?
Vielen Dank im voraus 🙂
Da habe ich keine Erfahrung mit, aber für Kodi gibt es einige Plugins:
https://github.com/michaelrcarroll/script.kodi.hue.ambilight
Hier ein sehr gutes Tutorial zwar für Kodi für FireTV, aber das Plugin läuft auch ohne FireTV:
http://www.mobilegeeks.de/artikel/philips-hue-und-amazon-fire-tv-ambilight-how-to/
Ich bezweifle nur, dass der RPi auch leistungsstark ist.
Würde mich aber über Deine Erfahrungen freuen.
Viele Grüße,
Dennis
Sehr gern, habe das Philips Hue Ambilight AddOn auf mein RPI vor längerem schon mal probiert. Ist aber Zeitverzögert und man kann die HUE s nicht beispielsweise den Ecken zuordnen. Was mein Ziel ist. Den Rest schau ich mir nochmal an. Lg
Leider läuft das Boblight plugin nicht mit der Solo 4K, hätte es gern getestet.
Hallo,
das ist – auch wenn nicht für Dich – eine hilfreiche Info. Gibt es vielleicht einen Nachfolger?
Viele Grüße
Dennis
hey, mit deiner config und etwas abgewandelt habe ich es hinbekommen zwei hue lampen anszusprechen. jetzt wollte ich jedoch noch die piliphs living cover anschließen. quasi für über den tv. lampen sind rechts und links. muss ich die dkhue.py auch noch anpassen? um die lampe erweitert? so etwas habe ich nämlich versucht. weiss jmd rat? besten dank. und cooler blog 🙂
Hi Ronnie,
Du müsstest die Lampen entsprechend über eine neue Variable ansteuern.
In dem Script steht oben die URL, dort einfach eine neue hinzufügen, z. B. so:
linksobenurl = url + '3/state'
Die „3“ müsste es bei Dir dann auch sein. Das findest Du aber über die HUE-API/Config raus.
Weiter unten musst Du dann den entsprechenden Request aufrufen:
connection.request('PUT', linksobenurl, json.dumps(lparams))
response = connection.getresponse()
Das sollte dann funktionieren.
Hi zusammen,
ich habe das Plugin heute auch Mal ausprobiert. Bekomme aber folgende Fehlermeldung im boblightd.log etwa einmal pro Sekunde.
22:14:28.539625 (CDevice::Process) ambilight: closed
22:14:28.539816 (CDevice::Process) ambilight: setting up
22:14:28.541450 (CDevice::Process) ambilight: setup succeeded
22:14:29.498999 (CDevicePopen::WriteOutput) ERROR: ambilight: fprintf() python /usr/dk/dkhue.py Broken pipe
Hallo super Anleitung. Ich verwende einen Philips Hue LED Strip Plus als ambilight.
Kannst du mal deine Einstellungen Posten?
mir ist das Ganze noch zu dynamisch. hätte es gerne weniger Dynamisch. Jedoch habe ich es noch nicht geschafft es richtig einzustellen.
Hallo Emilio,
Dein Kommentar ist leider im Spam gelandet, daher erst jetzt die Freigabe.
Was meinst Du mit Einstellungen? Die aus Boblight bzw. EnigmaLight?
Sonst findet Du die Einstellungen in den Scripts.
Hier findet Du noch die Aktualisierung für EnigmaLight:
http://blog.krannich.de/2015/12/ambilight-mit-enigmalight-und-philips-hue-bridge/
Viele Grüße
Dennis