Internet Control

Internet Control (9)

What It Does

Normally, your computer controls how your Christmas lights are animated.  You create animations with the xLights software, then it sends commands to your light controllers and strings of strings to animate the them.

While the convenience of having a single computer for creating animations and animating your lights is nice, leaving your computer powered on all day during the Christmas season is not that efficient.  If you accidentally turn off your computer, reboot it, the computer crashes, etc., your light show stops.  Powering a computer 24x7 is not efficient with electric, either.

Some people solve this problem by creating your animations using your home computer, then playing back the animations and controling your lights using a separate, low-power computer.  This way you can continue to use your home computer as usual throughout the day, while the low-power computer is running 24x7, dedicated to playing your light show.  The Raspberry Pi is perfect for this purpose.  In xLights, you save your animations as playback files, then upload them into a special program (Falcon Player) on the Raspberry Pi that simply plays the files.

The Falcon Player software is quite powerful.  With a little bit of tweaking, not only can it play animations created from xLights, but it can allow Internet control of your light show!  By saving the xLights animations as multiple playback files (one animation per file, for example), people visiting a webpage can click buttons that tells Falcon Player which animation file to play.  For instance, an animation can make your lights look like candy canes with red & white lights, while another animation file can make your house sparkle with twinkling lights.  When no one is actively "controlling" your lights, a "regular" animation file is played for cars passing by.

The nice thing about Internet control of your Christmas lights is that is uses your existing knowledge of xLights (for creating animations).  And if you are already using Falcon Player to playback the animations, you don't have to learn much new there, either!  Internet control is mostly about tweaking Falcon Player to accept commands from the Internet and it's not that hard to do!

How It Works

Here is a slideshow on how to build Internet Controllable Christmas lights, a full-color version and a printable version.  Below is an introductory video to get you started!


Setting up Internet control of your lights involves these steps:

  1. Create a variety of xLights animations as multiple playback files

  2. Install Falcon Player onto a Raspberry Pi computer

  3. Configure Falcon Player to be Internet control capable 
    1. Uploading show/sequence files from xLights to Falcon Player
    2. Secure Falcon Player from Internet hackers
    3. Configure Falcon Player to receive commands from the Internet

  4. Setup an outdoor webcam that allows website visitors to see your house lights as they control them

  5. Configure your home Internet router to allows the outside world to contact your Raspberry Pi

  6. Setup a "Dynamic DNS" service so that the Raspberry Pi and webcam can be easily accessed from the Internet

  7. Setup a webpage that allows visitors to send commands to the Raspberry Pi, playing chosen animations


Suppose someone visits your webpage and clicks the "Candy Cane" animation.  Here is what happens:

  1. When the Candy Cane button is clicked, a php file is activated from the webpage.  

  2. This php file activates another php file on your Raspberry Pi (runEventScript.php).  The webpage can "find" your Raspberry Pi through the domain name that you created via Dynamic DNS.  

  3. The runEventScript.php file is used by Falcon Player to execute operating system commands via a "bash script".  In this case, Falcon Player is told to stop whatever animation is was currently playing, then being playing the animation that was chosen by the webpage visitor.

  4. A video of your webcam is also shown on the webpage so that visitors can view the animation that they chose.  The video feed on the webpage also "finds" your webcam via the domain name setup through Dynamic DNS.


There are two major parts of this "magic".  The first is how Dynamic DNS allows your Raspberry Pi and webcam be "seen" by outside users.  For those technically minded, Falcon Player is "seen" through port 80 from the Dynamic DNS domain name, while port 81 also allows the camera to be "seen", both sharing the same domain name.

The second part is Falcon Player's built-in runEventScript feature that allows outside users to control how Falcon Player functions.  



Learn how to make computer controlled, affordable, and Internet capable Christmas lights.


See what animated lights (a.k.a. "props") I have made for my Christmas display.

Build It

Step-by-step instructions how to build your own Christmas light display.


Project photos, videos, and news coverage.


FAQs, instructional videos, and community support.

Go to top
JSN Boot template designed by