Philips Hue mit VU+ und Boblight oder Ambilight

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Oh, vielleicht liegt da das Missverständnis. Die Lampe muss ich auch "händisch" einschalten. Das "Turns Light On" aktiviert nur den Ambilight-Mechanismus. Wenn die Lampe aber aus ist, dann tut sich nichts.

      Wenn die Verbindung zur Lampe prinzipiell funktioniert, dann wechselt der Menüpunkt auf "Turn Lights Off".

      Ich glaub es gibt in den Optionen ein paar Möglichkeiten das immer beim Hochfahren mitzustarten. Das hab ich aber noch nicht probiert, da ich das Ambilight auch nicht immer haben möchte (z.B. untertags)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SamThing ()

    • Ich bekomme keine Verbindung zu meinen HUE Lampen, Unter Host IPadress habe ich die Adresse der Wlan Bridge eingetragen und den port 19333. Hab ich etwas falsch gemacht?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mizemo ()

    • Bezüglich #94: Nein, ich würde das so belassen wie es ist und ich habe letztendlich an diesem Bereich auch gar nichts verändert (also AL1 und AL2). AL1 bezieht sich auf die linke Hälfte des Schirms (hscan 0 50) und AL2 auf die rechte (hscan 50 100).

      Ich verstehe auch nicht ganz, warum er in seinen light-Abschnitten die position-Einträge gelöscht hat. Bei mir sieht das so aus:

      [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

      In der dkhue.py definiere ich dann meine tatsächlichen Lampen. Kastenlampe (Nr3) hab ich auf links gelegt und eine Lampe hinter dem Fernseher (Nr1) auf rechts.
      lurl = url + '3/state'
      rurl = url + '1/state'

      @mizemo: Ich hab leider keine Ahnung was du mit Port 19333 meinst. Ich habe das jedenfalls nicht gesetzt und erinnere mich auch nicht, das irgendwo gelesen zu haben.
    • Danke dann kann es nur an den Lampen der 3. Generation liegen,
      weil ansonsten alles gleich.
      Und wie Ich fest gestellt habe kann der Befehl url + '3/state' bei der 3. Generation nicht ausgeführt werden.

      http://IP/api/KEY/lights/1 funktioniert
      http://IP/api/KEY/lights/1state funktioniert
      http://IP/api/KEY/lights/1/state funktioniert nicht.

      Habe schon versucht den Befehl mit einem Phy Editor umzuschreiben,
      url + '3' oder url + '3state' aber ohne erfolg.
      Hab leider keine Erfahrung mit Phyton
    • Der dritte Befehl funktioniert bei mir auch nicht, wenn ich ihn im Browser eingebe. Er liefert dann:
      [{"error":{"type":3,"address":"/lights/1/state","description":"resource, /lights/1/state, not available"}}]

      Er ist aber vermutlich auch nicht für die Browser-Eingabe gedacht sondern als interne Url mit der vom Plugin ein PUT-Befehl zum Farbwechsel an die Lampe gesendet wird.

      Ich hab leider auch keine Ahnung von Phython. Es kann natürlich sein, dass es wirklich an der 3. Generation liegt, aber eigentlich schaut bei dir mit der Kommunikation schon vieles richtig aus. Was kommt denn wenn du im Plugin mit der grünen Taste das Ambilight startest? Tut sich gar nichts oder wechselt der Text?
    • Wenn Ich die grüne Taste am Plugin drücke ändert sich unten am Text gar nichts, auf der rechten unteren Seite erscheint eine Meldung
      mit WriteAdjust.
      Wenn Ich das ältere Plugin installiere und die grüne Taste drücke sieht man unten in der Zeile was arbeiten und die FPS Anzeige ändert sich,
      würde eigentlich danach ausschauen als wie wenns läuft aber an meinen Lampen kommt nichts an.
    • @all HAbe meinen Fehler gefunden, in einem Kommentar auf der Seite bin Ich darauf gestossen.

      Jetz läuft es endlich ;)

      Die enigmalight.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 enigmalight.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 nochmals für die Unterstützung
    • Freut mich, dass es nun doch noch funktioniert hat. Hab mir schon Sorgen gemacht, dass die neue durchaus interessante Lampengeneration bezüglich verschiedener Apps vielleicht problematisch sein könnte.

      Editieren von Textdateien auf den Enigma2-Receivern sollte man übrigens am besten immer mittels Unix/Linux-Editoren (Notepad++ usw.) machen.

      Falls dich das violette Licht bei sehr dunklen Szenen auch etwas irritiert, dann könntest du in der dkhue.py bei den beiden Stellen wo lsum und rsum auf grösser 0 abgefragt wird beim else-Teil anstatt 0 andere Werte einsetzen. Ich hab bei mir die Werte auf 0.3 gesetzt und das gleiche auch bei rsum. So stört mich der Effekt nicht so sehr.

      if lsum > 0:
      lx = lxx / lsum
      ly = lyy / lsum
      else:
      lx = 0
      ly = 0
      ------------>
      if lsum > 0:
      lx = lxx / lsum
      ly = lyy / lsum
      else:
      lx = 0.3
      ly = 0.3
    • Hallo zusammen,

      ich habe alles soweit installiert und konfiguriert. Wenn ich nun im Plugin auf grün drücke, ändert sich der Status für ein paar Sekunden auf "LightsOn", geht aber danach sofort wieder auf "Not Running". Ich habe mal hier die Configs (mit vi erstellt) und Logs angehangen, vielleicht hat ja jemand ne Idee, was ich noch probieren könnte:

      dkhue.py
      Spoiler anzeigen

      root@vusolo2:/usr/dk# cat dkhue.py
      import sys
      import colorsys
      import time
      import json
      import math
      import httplib

      def popen():
      spidev = file('/usr/dk/aufruf.log', "wb")
      key = "lkcntGfy7wgGWHfw9RhauhgNXieBbP9qHA2eiHJH"
      ip = "192.168.1.127"
      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)
      #if (l >= 0.25):
      # l = 0.25
      l = round(255 * l)
      l = 100 + l
      #l = l * 4
      #l = l * 25
      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()

      #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("Luminance left: " + str(lluminance) + "\n")
      #spidev.write("Luminance right: " + str(rluminance) + "\n")

      #spidev.write("Birghtness left: " + str(ll) + "\n")
      #spidev.write("Birghtness right: " + str(rl) + "\n")

      #spidev.write("put: " + str(json.dumps(lparams)) + "\n")
      #spidev.write("put: " + str(json.dumps(rparams)) + "\n")
      #spidev.write("data: " + str(data) + "\n")

      #spidev.write("-----------" + "\n")
      #spidev.flush()

      else:
      break

      import time
      time.sleep(7)
      popen()
      root@vusolo2:/usr/dk#


      enigmalight.conf
      Spoiler anzeigen

      root@vusolo2:/etc# cat enigmalight.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]
      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


      dkhue - log
      Spoiler anzeigen

      root@vusolo2:/home/elight-addons/.enigmalight# cat enigmalight.log
      14:00:33.935774 [InitLog] start of log /home/elight-addons/.enigmalight/enigmalight.log
      14:00:33.937625 [CConfig::LoadConfigFromFile] Opening /etc/enigmalight.conf
      14:00:33.940184 [CConfig::CheckConfig] checking config lines
      14:00:33.943064 [CConfig::CheckConfig] config lines valid
      14:00:33.945786 [CConfig::LoadConfigFromFile] Opening /etc/enigmalight.conf
      14:00:33.948347 [CConfig::BuildConfig] building config
      14:00:33.952137 [CConfig::BuildConfig] built config successfully
      14:00:33.953998 [main] Start device 1 from 1
      14:00:33.955778 [CDevice::Process] ambilight: starting with output "python /usr/dk/dkhue.py"
      14:00:33.957432 [CDevice::Process] ambilight: setting up
      14:00:33.959017 [CGuiServer::Process] Start GuiServer
      14:00:33.961257 [CGuiServer::Process] Opening listening socket for Enigma2 GUI on 127.0.0.1:6767
      14:00:33.963376 [CDevice::Process] ambilight: setup succeeded
      14:00:33.964824 [CEnigmaLight::SetColorSequence] Set colorsequence to RGB
      14:00:33.966318 [CMainLoop::Process] Start EnigmaLight Server
      14:00:33.967787 [CMainLoop::Process] Opening listening socket on *:19333
      14:00:34.205968 [CGuiServer::Process] GuiClient 127.0.0.1:34866 connected successful.
      14:00:34.971038 [CMainLoop::Cleanup] Removing clients
      14:00:34.972228 [CMainLoop::Cleanup] Closing listening socket
      14:00:34.975170 [CFlagManager::SetVideoGamma] Gamma not set, using 2.2 since this is default for video
      14:00:34.976405 [CMainLoop::Process] Starting grabber..
      14:00:34.977771 [CGrabber::Setup] Lights: 2, Cluster leds: 1 as one led
      14:00:34.979038 [CGrabber::Setup] Channels: 6
      14:00:34.980289 [CGrabber::Setup] Interval: 0.10
      14:00:34.981557 [CGrabber::Run] Mode -> Dynamic
      14:00:34.982949 [CStb::DetectSTB] Detect STB-Type...
      14:00:34.984547 [CStb::DetectSTB] Detected STB-Type: BCM7356
      14:00:34.985792 [CFrameGrabber::Setup] Open memory /dev/mem
      14:00:34.991078 [CFrameGrabber::CheckRes] Set Scanrange to 120x67 (Source 1920x1080)
      14:00:41.559612 [CDevicePopen::WriteOutput] ERROR: ambilight: fprintf() python /usr/dk/dkhue.py Broken pipe
      14:00:41.561100 [CDevice::Process] ambilight: io operation failed...
      14:00:41.562299 [CDevice::Process] Exiting EnigmaLight...
    • Hallo
      bei #lurl = url + '1/state' die # entfernen.

      oder hier die # einfügen.


      #connection.request('PUT', lurl, json.dumps(lparams))
      #response = connection.getresponse()

      wieviel Lampen verwendest du ?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von emilio20 ()

    • Hi,

      also ich habs nun so am laufen wie ichs gerne hätte.
      Hat mich nun etwas an Zeit gekostet um ein paar Probleme fest zu stellen.

      Die Farben hatten extremen Delay. Das Script kann gar kein blau. (startet einfach mal das Python Script und geb 0 0 1 0 0 1 0 ein (RGB Lampe 1, RGB Lampe 2) und beide gehen aus.
      Hab nun alles soweit umgebaut das es für mich passt. Besteht da Interesse dran?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Hanfrey ()

    • Kann bei mir mal jemand drüberschauen warum es bei mir nicht läuft. Status:Not Running

      Bei mir ist nur 1 Lightstripe angedacht

      enigmalight.conf
      Spoiler anzeigen

      [global]
      [device]
      name ambilight
      output python /usr/dk/dkhue.py
      channels 3
      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 100
      vscan 0 100


      dkhue.py
      Spoiler anzeigen

      [global]
      [device]
      name ambilight
      output python /usr/dk/dkhue.py
      channels 3
      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 100
      vscan 0 100


      Log

      Spoiler anzeigen
      01:55:44 [D] EL_Screen_MainMenu::keyGreen
      01:55:44 [D] Controller::Control > Control: c:start v:dynamic
      01:55:44 [D] Controller::checkIfRunningFinisched
      01:55:44 [D] Controller::checkIfRunningFinisched > control[command] = start
      01:55:44 [D] Controller::checkIfRunningFinisched > control[value] = dynamic
      01:55:44 [D] Controller::checkIfRunningFinisched > control[startcommand] = enigmalight -m 0 -f -c /etc/enigmalight.conf
      01:55:44 [D] Controller::checkIfRunningFinisched > callback = None
      01:55:44 [D] Controller::checkIfRunningFinisched > pid = None
      01:55:44 [D] Controller::checkIfRunningFinisched > [/usr/bin/enigmalight] not running, Starting..
      01:55:44 [D] Controller::DoControl
      01:55:45 [D] Controller::setStatusBarInfo
      01:55:45 [D] Controller::controlMode
      01:55:45 [D] Controller::writeSettings
      01:55:45 [D] Controller::setStatusBarInfo
      01:55:45 [D] Controller::writeAdjust
      01:55:45 [D] Controller::setStatusBarInfo
      01:55:48 [D] EL_Screen_MainMenu::cancel
      01:55:48 [D] EL_Screen_MainMenu::exit > Main Exit..
      01:55:49 [D] > plugin::sessionstart()
      01:55:49 [D] > plugin::EnigmaLight_MainMenu() > MainMenu..
      01:55:49 [D] > plugin::EnigmaLight_MainMenu() > Set Instances..
      01:55:49 [D] EL_Screen_MainMenu::__init__ > Menu Opened succesfull..
      01:55:49 [D] > __common__::checkSymbolic()
      01:55:49 [D] ELightTimer::setController
      01:55:49 [D] EL_Screen_MainMenu::finishLayout > Finisch layout....
      01:55:49 [D] EL_Screen_MainMenu::hideOnOff
      01:55:49 [D] EL_Screen_MainMenu::refreshMenu
      01:55:49 [D] Controller::sendAll
      01:55:49 [D] Controller::writeSettings
      01:55:49 [D] Controller::setStatusBarInfo
      01:55:49 [D] Controller::writeAdjust
      01:55:49 [D] Controller::setStatusBarInfo
      01:55:49 [D] EL_Screen_MainMenu::finishLayout > Layout Finisched!




      Danke

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von adrian_schmitt ()

    • Gehen denn die lightstrips überhaupt?
      Skin: [ linearFHD ] - [ iFlatFHD ] - Anpassungen: [ linearFHD ] - [ iFlatFHD ]

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nathanael2316 ()

    • @Hanfrey ja habe die falschen Daten kopiert. Hier die richtigen

      Spoiler anzeigen
      import sys
      import colorsys
      import time
      import json
      import math
      import httplib

      def popen():
      spidev = file('/usr/dk/aufruf.log', "wb")
      key = "OyFhbfupRcGrX6l48h2l23jiAflbWEj6KfHYBvVO"
      ip = "192.168.1.24"
      url = '/api/' + key + '/lights/'
      lurl = url + '6/state'
      rurl = url + '6/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)
      #if (l >= 0.25):
      # l = 0.25
      l = round(255 * l)
      l = 100 + l
      #l = l * 4
      #l = l * 25
      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()

      #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("Luminance left: " + str(lluminance) + "\n")
      #spidev.write("Luminance right: " + str(rluminance) + "\n")

      #spidev.write("Birghtness left: " + str(ll) + "\n")
      #spidev.write("Birghtness right: " + str(rl) + "\n")

      #spidev.write("put: " + str(json.dumps(lparams)) + "\n")
      #spidev.write("put: " + str(json.dumps(rparams)) + "\n")
      #spidev.write("data: " + str(data) + "\n")

      #spidev.write("-----------" + "\n")
      #spidev.flush()
      else:
      break

      import time
      time.sleep(7)
      popen()




      Ja die Lightstripes gehen