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.

Angebot
Philips Hue LivingColors LED Tischleuchte Bloom, Erweiterung für alle Hue Starter Sets, dimmbar, bis zu 16 Millionen Farben, steuerbar via App, kompatibel mit Amazon Alexa (Echo, Echo Dot)
  • Erweiterung für das Hue System - Die Philips Hue LivingColors LED Tischleuchte Bloom ist eine Erweiterungslampe. Zur Steuerung ist ein Hue Dimmschalter oder eine Hue Bridge notwendig (nicht im Lieferumfang enthalten)
  • Philips Hue Tischleuchte mit integriertem, energiesparenden LED-Modul. Ideal geeignet zur indirekten Beleuchtung großer Flächen. Wählen Sie eine aus 16 Millionen Farben in der Hue App und synchronisieren Sie Licht mit Musik und Filmen
  • Um eine reibungslose Funktion zu generieren, verwenden Sie bitte den separat erhältlichen Philips Hue Dimmschalter. Die Philips Hue Leuchten sind nicht mit vorinstallierten Dimmern kompatibel
  • Dekorative Akzentbeleuchtung: Die Hue Bloom ermöglicht es Ihnen, Besonderheiten in Ihrem Zuhause lichttechnisch hervorzuheben. Dank des Netzsteckers lässt sich die LED-Lampe nach Ihrem Belieben frei im Raum platzieren
  • Funktioniert mit Amazon Alexa für Sprachsteuerung (Echo/ Echo Dot und notwendige Hue Bridge separat erhältlich). Das Smart Home Erlebnis für Ihr Zuhause
Angebot
Philips Hue Bridge, zentrales, intelligentes Steuerelement des Hue Systems
  • Philips Hue Bridge - Stellen Sie Ihr eigenes, persönliches Philips Hue System zusammen. Die Philips Hue Bridge bildet den Anfang und ist das zentrale, intelligente Steuerelement Ihres Philips Hue Systems
  • Zur Inbetriebnahme verbinden Sie die Philips Hue Bridge über das im Lieferumfang enthaltene LAN-Kabel mit Ihrem WLAN-Router. Nun müssen Sie nur noch die Philips Hue App herunterladen und die Steuerung Ihrer Hue LED-Lampen liegt in Ihren Händen
  • Mit Hilfe der Philips Hue App können Sie jetzt bis zu 50 Hue Lampen und Leuchten sowie bis zu 12 Hue Zubehörteile zu Ihrem System hinzufügen und individuell steuern
  • Apple HomeKit kompatibel: Fordern Sie Siri auf, Ihr Licht zu dimmen, oder rufen Sie Voreinstellungen aus der Hue App ab, ohne auch nur einen einzigen Knopf zu berühren. Das Smart Home Erlebnis für Ihr Zuhause
  • Die Hue Bridge ermöglicht Lichtsteuerung per Sprache mit Amazon Alexa (Echo/ Echo Dot separat erhältlich)

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()

<< VTI 11 eigener Skin auf Basis von MetrixFHD