Hi,
ich hab mir mal ein paar Milight Teile bestellt: 3x 9W RGBW, 1x RF Remote, 1x WLAN Bridge, 1x LD382 (Eigenständige Bridge für Stripes). Stripes habe ich noch keine im Einsatz, ich habe erstmal mit den Bulbs experimentiert.
Hier mal ein paar Fakten zu dem Milight Kram: http://www.msxfaq.de/lync/impresence/iwylight.htm
Nicht abschrecken lassen der Kram hat tausend Namen: Milight, Iwylight, Magic Ufo, LimitlessLED, EasyBulb unterm Strich alles das gleiche, die Dinger werden in der Regel alle per UDP auf Port XY mit AT Kommandos ähnlich wie bei Modems gesteuert
Hier mal die ersten versuche
Jetzt keine schnelle Vorurteile, die Bulb richtet sich nach der Hauptfarbe des Gesamtbildschirminhalts.
Die Farben sind ncoh nicht perfekt, das Timing ist evtl noch verbesserungsfähig etc.
Im Moment ist es auch leider nicht möglich die Milights zu benutzen wenn man Video schaut da Boblight ein Device das als Script funktioniert permanent befeuert mit UDP Paketen in den weiß Modus zu wechseln. Das muss ich noch anpassen, am besten wäre die Integration in XBMC Boblight Addon, das habe ich bereits angefragt:
http://forum.kodi.tv/showthread.php…8162#pid1968162
Hier ist meine boblight.conf (http://www.i-have-a-dreambox.com/wbb2/thread.ph…8#post2006208):
############################### Milight ###############################
[device]
name WifiLed
output python /storage/.kodi/userdata/addon_data/service.multimedia.boblightd/milight.py
channels 3
type popen
interval 100000
debug off
[color]
name WIFIred
rgb FF0000
#gamma 0.94
#adjust 0.45
blacklevel 0.00
[color]
name WIFIgreen
rgb 00FF00
#gamma 0.98
#adjust 1.0
blacklevel 0.00
[color]
name WIFIblue
rgb 0000FF
#gamma 1.01
#adjust 0.63
blacklevel 0.00
[light]
name WI1
color WIFIred WifiLed 1
color WIFIgreen WifiLed 2
color WIFIblue WifiLed 3
hscan 0 100
vscan 0 100
Alles anzeigen
Hier ist meine milight.py (http://www.i-have-a-dreambox.com/wbb2/thread.ph…9#post2038229):
import colorsys
import sys
import socket
logger=None
class Logger:
logfile=None
def __init__(self,activateLogging,path):
if(activateLogging):
self.logfile = file(path, "wb")
def writeLine(self,msg):
if(self.logfile!=None):
self.logfile.write(str(msg))
self.logfile.flush()
class boblightMilightConnector:
def __init__(self):
self.readInputStream()
def readInputStream(self):
#IP und Port des Controller (Bridge) oder ggf. auch ein LD382 (Magic UFO)
milight=milightController("192.168.178.44",8899)
while True:
input = sys.stdin.readline()
logger.writeLine("Input: "+input)
inputData=input.split(' ')
if(len(inputData)>3):
r = float(inputData[0])
g = float(inputData[1])
b = float(inputData[2])
milight.setRGB(r,g,b)
class milightController:
ip=None
port=None
sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def __init__(self,IP,Port):
self.ip=IP
self.port=Port
def setRGB(self,r,g,b):
h, s, v = colorsys.rgb_to_hsv(float(r), float(g), float(b))
logger.writeLine("H: "+str(h)+" S: "+str(s)+" v: "+str(v))
if(s<0.02):
#Alle Lampen in den Weiß Modus versetzen (C2 Alle, C5 Group1, C7 Group2, C9 Group3, CB Group4)
MESSAGE1 = "\xC5\x00"
if(h>0.3333):
htmp=h-0.3333
logger.writeLine("Vk1: "+str(htmp))
vtmp=htmp/0.6666
logger.writeLine("Vk2: "+str(vtmp))
vtmp=(2*vtmp)
logger.writeLine("Vk3: "+str(vtmp))
v=v/vtmp
logger.writeLine("Vk4: "+str(v))
else:
#Korrektur Gelb
if (h < 0.33333):
h= h *0.5
#Korrektur Cyan
if (h > 0.33333 and h < 0.5):
h= h*0.9
if(h>0.3333):
htmp=h-0.3333
logger.writeLine("Vk1: "+str(htmp))
vtmp=htmp/0.6666
logger.writeLine("Vk2: "+str(vtmp))
vtmp=(2*vtmp)
logger.writeLine("Vk3: "+str(vtmp))
v=v/vtmp
logger.writeLine("Vk4: "+str(v))
h = int((h) * 256)
#Korrektur Farbverschiebung
h=h+85
if(h>256):
h=256-(h%256)
else:
h=abs(h-256)
h=int(h)
#Wechseln der Farbe x40 zu Wert (h)
MESSAGE1 = "\x40" + chr(h)
if (v>=0.75):
v=0.75
v=v*25
v=int(round(v))
v=v+2
v=min(27,v)
v = max(2,v)
#Helligkeit des Weiß Modus im Standby
MESSAGE2 = "\x4E" + chr(v)
logger.writeLine("H2: "+str(h)+" S2: "+str(s)+" v2: "+str(v))
self.sock.sendto(MESSAGE1, (self.ip, self.port))
self.sock.sendto(MESSAGE2, (self.ip, self.port))
logger=Logger(False,"/storage/milight.[definition='1','0']log[/definition]")
boblightMilightConnector()
Alles anzeigen
Hier ist die gesamte technische Dokumentation zu dem Milight Zeug:
http://www.limitlessled.com/dev/
Ich hab auch ein Video gemacht kommt später noch...
Lustige Erweiterungen wären ja besonder Signale z.B. es Klingelt an der Tür, das Telefon schellt, die Feuermelder schlagen Alarm, die Krtze hat geschissen oder sowas
Gruß X23