Setting up Internet control of your lights involves these steps:
- Create a variety of xLights animations as multiple playback files
- Install Falcon Player onto a Raspberry Pi computer
- Configure Falcon Player to be Internet control capable
- Uploading show/sequence files from xLights to Falcon Player
- Secure Falcon Player from Internet hackers
- Configure Falcon Player to receive commands from the Internet
- Setup an outdoor webcam that allows website visitors to see your house lights as they control them
- Configure your home Internet router to allows the outside world to contact your Raspberry Pi
- Setup a "Dynamic DNS" service so that the Raspberry Pi and webcam can be easily accessed from the Internet
- 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:
- When the Candy Cane button is clicked, a php file is activated from the webpage.
- 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.
- 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.
- 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.