Compiling Hyperion for Phillips Hue support on Mac OSX

I’ve been looking at the Lightberry for a little while now and have been thinking about how I’ll be implementing it once I actyually buy it and add it to my setup.

The Lightberry is pretty cool, it works with a Raspberri Pi and a bunch of video grabbing / repeating so you can get lights behind your television that look like those really expensive TV’s for about 1/10th of the cost.

The end goal is that it will look something like this.

Of course, I wanted to go a step furthur than the default setup and have it so I could also control my Phillips hue lights to go along with the display on the screen. Originally, I was thinking this would be neat in video games or movies, but in practice it was a little annoying.

However, I still think it would be really neat to get these going for music visualization, so I’ll have a really high tech color organ basically.

Let’s get started, shall we?

PREREQUISITES

** I am running OSX El Capitain so your instructions may change slightly
** make sure you have java latest jdk, sdk installed
** make sure you have the latest xcode for your os (10.10, 10.11, etc)

INSTRUCTIONS

  1. Install MacPorts if not already installed
  2. Download HyperCon and Hyperion and put in a safe place
  3. Create a development account for your HUE lights in order to access them from Hyperion
    1. follow these instructions to get your hue bridge ready for api access:
    2. For my settings I entered in
      {"devicetype":"huelight#macmini matt"}

      and got (after button press and refresh)

      [
       {
       "success": {
       "username": "253b32e51a5939e7288e66b11ddff113"
       }
       }
      ]
  4. Now install some stuff on your mac if you already have some of these they’ll be skipped
    # sudo port install screen findutils git cmake qt4-mac libusb doxygen
  5. Get Hyperion
    # cd ~/Documents
    # nano ~/.bash_profile

    add the qt path, by adding the following lines to the end of the file

    export PATH="/opt/local/libexec/qt4/bin:/opt/hyperion/bin:$PATH"
    # export HYPERION_DIR="hyperion"
    # git clone --recursive https://github.com/tvdzwan/hyperion.git "$HYPERION_DIR"
    # mkdir "$HYPERION_DIR/build"
    # cd "$HYPERION_DIR/build"
    # cmake -DENABLE_DISPMANX=OFF \
     -DENABLE_SPIDEV=OFF \
     -DENABLE_V4L2=OFF \
     -DENABLE_OSX=ON ..
    # cd ..
    # make
    # mkdir /opt/hyperion
    # mkdir /opt/hyperion/bin
    # mkdir /opt/hyperion/init.d
    # mkdir /opt/hyperion/effects
    # mkdir /opt/hyperion/config
    # cp ./bin/hyperiond /opt/hyperion/bin
    # cp ./bin/hyperion-remote /opt/hyperion/bin
    # cd effects && cp * /opt/hyperion/effects && cd ..
    # cp ./bin/hyperion.init.sh /opt/hyperion/init.d
    # cp ./config/hyperion.config.json /opt/hyperion/config
    # chmod +x /opt/hyperion/bin/*

    Note, that you may have compile problems with it saying it can’t find COPY_ONLY, this was apparently due to a typo in some documentation, so it made it into this. Here’s how you fix that;

    # cd ~/Documents/hyperion 
    # nano cmake/qt4/Qt4Macros.cmake

    Now just find the instance of COPY_ONLY and replace it with COPYONLY. Close and save the file. Then re-try compiling the program

  6. Create a configuration file, mine is attached below (which is the same as their example, except I changed bootup to Knight rider effect instead). Download my hue.json configuration file here. Copy it to your /opt/hyperion/config directory and change the username, as well as the IP.
  7. Start Hyperion like this
    # sudo /opt/hyperion/bin/hyperiond /opt/hyperion/config/hue.json.txt
  8. Now you should see the lights come on, and do the initial boot sequence. Yay!

Now, because I don’t yet have the Lightberry, I can only test with Kodi / XBMC or the Hyperion Free app for Android for it to get it’s color data from. I primarily (only) use PLEX so, this was a problem but I assume it will be solved once I have the frame grabber, and use the tools provided by Lightberry.

So, for now if I want visualizations to the music played, I open up Kodi / XBMC and play music from there and the lights pulsate to it as expected.

Once I get the lightberry, I’ll remove Kodi from the equation, as everything going through my receiver has one output to the telvision, which I’ll capture and use instead. Much easier!

I will post any updates when I continue the setup and integration.

REFERENCES

4 Comments

  1. Hey Matt,

    I’m just going through the same process – although starting from the Lightberry setup and THEN progressing onto the Hue integration BUT I can’t get the Lightberry to capture external video at all. So whilst everything illuminates in Kodi lovely, there’s not even a whiff of external (mainly Plex) action.

    I wondered, did you ever get yours working? Was there any issues at all? I’m starting to think that I may have a faulty box.

  2. Hey Steve,

    I never actually got a lightberry, just the software running on my mac mini. I haven’t really played around with it since I wrote this article either so I’m probably not very much help :/ Have you tried reaching out to lightberry? They were very helpful and responsive last time I talked with them.

  3. I’m trying to follow this tutorial, but I have a MacMini 24/7 on alongside my TV.
    https://www.youtube.com/watch?v=ZCVfZb4UoO4&t=1300s

    Would I be able to replace the Raspberry Pie with your code on a MacMini?
    I am planning on playing Xbox games, so I guess I still need HDMI splitter, HDMI to RGB converter, and the USB RGB grabber,
    but I wasn’t sure if the USB RGB grabber can feed the color data to Arduino.

  4. Hmm. I’m not sure of that. I’ve never used an arduino before, and, I’m not sure about controlling everything. I never ended up fully doing this project, it was more to test out the software on the mac mini instead of pi, which, did all work. I’m not sure if there’s specific hardware on the pi to control this vs in a mini? but if there isn’t, I don’t see why this wouldn’t work?


Add a Comment

Your email address will not be published. Required fields are marked *

Comment *

Name *
Email *
Website