- VTI 11 eigener Skin auf Basis von MetrixFHD
- VU Plus – VTI 11 installieren
- Ambilight mit EnigmaLight und Philips HUE Bridge
In dem Beitrag Ambilight mit Boblight habe ich gezeigt, wie man ein Ambilight mit der Philips HUE Bridge erzeugen kann.
Heute habe ich mein System auf das neue EnigmaLight umgestellt und möchte euch zeigen, wie dies gelingt.
Wer Boblight bereits installiert hat, sollte dies deinstallieren. Das gute ist, dass die Conf-Datei erhalten bleibt.
Da es EnigmaLight seit Ende 2015 nicht mehr gibt, könnt ihr die Datei hier laden:
enigma2-plugin-extensions-enigmalight_0.1r5-b12_all.ipk
enigma2-plugin-extensions-enigmalight_0.2-rc1_all.ipk (bisher noch nicht getestet)
Die Zip-Datei entpacken und in das TMP-Verzeichnis auf die Box kopieren und installieren.
Wer Boblight vorher installiert hatte, kann sich etwas Arbeit ersparen und die boblight.conf in enigmalight.conf umbenennen. Bitte noch darauf achten, dass bei jedem light
das Attribut position
gesetzt wurde.
Alle anderen legen die Datei wie folgt an:
[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]
position left
name AL1
color red ambilight 1
color green ambilight 2
color blue ambilight 3
hscan 0 50
vscan 0 100
[light]
position right
name AL2
color red ambilight 4
color green ambilight 5
color blue ambilight 6
hscan 50 100
vscan 0 100
Hier noch einmal die dkhue.py für alle, die noch kein Boblight installiert haben. Diese Datei in den Ordner /usr/dk kopieren. Bitte noch Key und IP entsprechend setzen. Eine ausführlichere Anleitung findet ihr in dem alten Beitrag Ambilight mit Boblight.
import sys
import time
import json
import math
import httplib
def popen():
spidev = file('/usr/dk/aufruf.log', "wb")
key = "DEIN KEY"
ip = "IP-ADRESSE"
url = '/api/' + key + '/lights/'
lurl = url + '1/state'
rurl = url + '2/state'
while True:
eingabe = sys.stdin.readline()
if len(eingabe)>0:
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(lr / 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)
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
lparams = {'xy': [lx, ly], 'colormode': 'xy'}
rparams = {'xy': [rx, ry], 'colormode': 'xy'}
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()
#data = response.read()
connection.close()
#spidev.write("RGB left: " + str(lr*255) + ":" + str(lg*255) + ":" + str(lb*255) + "\n")
#spidev.write("RGB right: " + str(rr*255) + ":" + str(rg*255) + ":" + str(rb*255) + "\n")
#spidev.write("XY left: " + str(lx) + ":" + str(ly) + "\n")
#spidev.write("XY right: " + str(rx) + ":" + str(ry) + "\n")
#spidev.write("put: " + str(json.dumps(lparams)) + "\n")
#spidev.write("data: " + str(data) + "\n")
#spidev.write("-----------" + "\n")
#spidev.flush()
else:
break
import time
time.sleep(7)
popen()
Hi!
Super Anleitung! Leider läuft bei mir zwar Enigmalight wenn ich grün drücke, bleibt auch an, doch leider bleiben auch die Lampen dunkel. An was könnte das liegen? Die aufruf.log im Ordner /usr/dk wird auch generiert….
Könntest Du evtl. sagen, warum?
Viele Grüße
Matthias
Habe das selbe Problem, kann es sein das die URL nicht stimmt? Wenn ich die IP der Hue Brigde Händig IP/API/Key/lights/1 oder 2/state eingebe kommt ein error, Lasse ich state weg dann nicht. Habe ich allerdings auch schon versucht.. vlt haben die Neuen Hue Bridges eine neuere Firmware wo die URL anders ist??? kann das jemand bestätigen?
Hallo zusammen,
in der Doku der API stets davon nichts
http://www.developers.meethue.com/documentation/lights-api#16_set_light_state
/api/USERNAME/lights//state
Stimmen denn die Zugriffsrechte für das Python-Script? Korrekt angelernt?
VG
Dennis
Guten Tag, bei mir Läuft Enigmalight mittlerweile auch ohne Fehlermeldung… Habe das selbe aber der Log kommt nicht und die Leuchten reagieren nicht.
Hat noch wer diese probleme? Wäre schön wenn es mal Laufen würde 🙂
Gruß Dennis
Hallo, Ich habe ein Problem mit Enigmalight. Wenn ich die Config Einstellungen auf der Dreambox starte, kommt immer ein Fehler(greenscreen), das er einen gelben Button nicht finden kann.
Das Bild (Button) liegt aber im Verzeichnis.
Logdatei hätte ich.
Hat einer den gleichen Fehler
Dreambox 800 mit Newenigma2
Hallo Daniel,
diese Fehlermeldung hatte ich auch noch nicht. Da ich kein Experte mit NewEnigma2 bin und auch nur ne VU+ habe, kann ich Dir leider auch nicht weiterhelfen. Vielleicht findet sich hier noch jemand. Sonst könntest Du den Entwickler von Enigmalight mal anschreiben.
Viele Grüße
Dennis
Hallo!
Erstmal danke für deine Anleitung. Hab auch eine VU+ und die Basis-Einrichtung klappte reibungslos. Jetzt muss ich allerdings noch rausfinden, wie ich es vernünftig/brauchbar an mein Hue-Setting anpasse. Hab im Moment noch ewig Verzögerung und immer, wenn das Bild blau ist gehen die Dinger einfach aus 😀
Naja, mal sehen…
Beste Grüße
Habe auch das Problem, dass bei Blauen TV Inhalt die Lampe aus geht. Vermutlich wird das was falsch gerechnet. Hat jemand da eine Idee, was das sein könnte. Die Hue ist von der zweiten Generation…
Hallo, erstmal vielen Dank für die tolle Anleitung und das script. Es lief alles auf Anhieb. Das einzige Problem das ich habe ist das ich Enigmalight nicht stoppen kann. Ich habe beide Versionen die Du oben genannt hast ausprobiert. Ich habe newnigma2 auf einer DM800se. Hast Du das Problem auch ? Wenn ja kennst Du eine Lösung ?
Vielen Dank
Stefan
Hi Stefan,
kannst Du das genauer spezifizieren? Was heißt nicht stoppen. Bei mir geht EnigmaLight aus, sobald die Box in den Stand-By geht. Sonst müsstest Du über das Plugin den Befehl für den Stopp senden, da gibt es so was wie „stop“ oder „kill“.
Viele Grüße
Dennis
Hi Dennis,
über das Plugin Menü (Blaue Taste) habe ich Enigmalight Settings und Enigmalight on/off. Wenn ich über Enigmalight on/off starte, wird das Plugin aktiviert und die Lampen leuchten. Wenn ich es aber ausschalten will passiert nix.
Ich habe das Log geprüft und es sieht so aus als ob jedesmal das gleiche Kommando ausgeführt wird. (enigmalight -m 0 -f -c /etc/enigmalight.conf) siehe unten.
Logfile: /var/volatile/tmp/enigmalight_gui.log
### Starten ####
10:12:31 [D] Controller::Control > Control: c:start v:dynamic
10:12:31 [D] Controller::checkIfRunningFinisched
10:12:31 [D] Controller::checkIfRunningFinisched > control[command] = start
10:12:31 [D] Controller::checkIfRunningFinisched > control[value] = dynamic
10:12:31 [D] Controller::checkIfRunningFinisched > control[startcommand] = enigmalight -m 0 -f -c /etc/enigmalight.conf
10:12:31 [D] Controller::checkIfRunningFinisched > callback = None
10:12:31 [D] Controller::checkIfRunningFinisched > pid = None
10:12:31 [D] Controller::checkIfRunningFinisched > [/usr/bin/enigmalight] not running, Starting..
### Stoppen ###
10:13:05 [D] Controller::Control > Control: c:mode v:stop
10:13:05 [D] Controller::checkIfRunningFinisched
10:13:05 [D] Controller::checkIfRunningFinisched > control[command] = mode
10:13:05 [D] Controller::checkIfRunningFinisched > control[value] = stop
10:13:05 [D] Controller::checkIfRunningFinisched > control[startcommand] = enigmalight -m 0 -f -c /etc/enigmalight.conf
10:13:05 [D] Controller::checkIfRunningFinisched > callback = None
10:13:05 [D] Controller::checkIfRunningFinisched > pid = 1510
10:13:05 [D] Controller::checkIfRunningFinisched > [/usr/bin/enigmalight] already running with pid 1510
Danke für deine Anleitung.
Es hat alles funktioniert, außer dass die Lampen nicht angesprochen werden xD
Wenn ich z.B. den Link http://IP/api/KEY/lights/1/state eingebe, erhalte ich folgende Fehlermeldung:
[{„error“:{„type“:3,“address“:“/lights/1/state“,“description“:“resource, /lights/1/state, not available“}}]
Kannst du mir dazu was sagen?
Danke.
Gruß Tobi
Hi Tobi,
gibt mal nur http://IP/api/KEY/lights ein.
Dann bekommst Du eine Rückmeldung, welche Lampen angemeldet sind, ggf. sind es bei Dir andere Nummern.
Viele Grüße
Dennis
Hey Dennis,
wenn ich nur http://IP/api/KEY/lights/1/ eingebe, erhalte ich eine Rückmeldung; mit dem Anhängsel „/state“ jedoch nicht.
Gibt es evtl. eine Änderung seitens der API, welche die Ansteuerung betrifft?
Gruß Tobi
Die Meldung zur URL http://IP/api/KEY/lights/1/ wollte ich noch anhängen:
{„state“:{„on“:true,“bri“:253,“hue“:2932,“sat“:226,“effect“:“none“,“xy“:[0.6041,0.3558],“ct“:153,“alert“:“none“,“colormode“:“xy“,“reachable“:true},“type“:“Extended color light“,“name“:“Links“,“modelid“:“LST002″,“manufacturername“:“Philips“,“uniqueid“:“00:16:88:01:01:1c:29:16-0b“,“swversion“:“5.50.2.19072″}
Das ist mir nicht bekannt, die Doku sagt:
1.6. Set light state/lights//state
URL /api/
Method PUT
Version 1.0
Permission Whitelist
Eine Statusabfrage über GET ist so aber nicht möglich.
Lampe setzen mit PUT, Status abfragen mit GET aber ohne „/state“ in der URL.
Hi
Habe das selbe Problem wie Tobi.
http://IP/api/KEY/lights/1 funktioniert
http://IP/api/KEY/lights/1state funktioniert
http://IP/api/KEY/lights/1/state funktioniert nicht.
Gruß
Hallo,
vielen Dank für dein Script.
Ich habe ein Problem mit den Farben. Immer wenn der TV auf der linken Seite dunkle Inhalte anzeigt, ist die hue violett oder blau.
Viele Grüße
Mario
Hi Mario,
dummerweise kann ich Dir da auch nicht helfen. Ich habe schon versucht das Problem zu lösen indem ich die Lampe ausgeschaltet habe, wenn es „schwarz“ wird. Jedoch auch ohne Erfolg.
Viele Grüße
Dennis
Hallo Dennis,
vielen Dank für die Mühe und Anleitung. Auch wenn dein Artikel schon etwas älter ist, hoffe ich, dass du vllt eine Idee hast.
Bei mir läuft alles wie es soll. … fast
Leider überlagert die Installation von Enigmalight mit Hue Lightstrip+ nun die
Bedienung durch die Hue-App, HomeKit, Alexa usw.
Ich kann das Licht also nur noch über Enigmalight ansteuern.
Hast du eine Idee?
lg
Hi Oli,
leider habe ich dafür nicht wirklich eine Idee. Bei mir gehen die Lampen sowohl über die Harmony Fernbedienung als auch über den VU-Plus an. Was möglich sein kann ist, dass die Lampen nicht ausgehen, weil der Receiver noch an ist.
Viele Grüße
Dennis
gibts auch eine anleitung wie ich die Entertainment Schnittstelle einbinde und keine Lags mehr habe ?
hallo ich hab eine ultimo4k mit oa 6.4 installiert hab ich enigmalight 0.4, ehue v0.8, boblight v0.7.
el und bl bekomm ich gar nicht zum laufen. muss bei bl ein port angegeben werden? wenn ja welcher?
ne komplett gute anleitung erstellen wie man el oder bl zum laufen bekommt? mit einstellungen im plugin selbst, configs usw.
ich hab schon alle bekannten seiten versucht, auch deine, es tut sich nix. config boblight.conf (enigmalight.conf) in /etc erstellt, dkhue.py erstellt und in den von mir erstellten dk ordner in /usr gespeichert. laut api seite ist AL1 und AL2 die zwei hue lampen (iris) die die ich als ambilight nutzen möchte. auch diese hab ich eingefügt.
bei ehue stürzt die box bei blauen tastendruck (search bridge) ab. bridge ip hab ich eingegeben aber was muss ich bei username und eingeben? die api der hue bridge? wenn ja gibt es die möglichkeit dies über copy/paste zutun? über die FB ist der api-key etwas nervig einzugeben.
ne hilfe wäre gut