Install alert
The hue system consists of LED light bulbs connected via ZigBee to a bridge which is in turn connected to Ethernet. The bridge API implements a RESTful web service using HTTP methods.
Before all, make sure you have installed an xPL hub.
Contents
Install xPL alert controller
Install HTTP::Tiny
:
su perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' 2> /dev/null | grep -i http perl -MCPAN -e "install 'HTTP::Tiny'" exit
Download the xPL alert controller script.
Move the script to xPL scripts directory:
SCRIPTS_BASE_DIR=/home/control/Documents/Controls mv xpl-alert.pl $SCRIPTS_BASE_DIR chown control:users $SCRIPTS_BASE_DIR/*.pl chmod 775 $SCRIPTS_BASE_DIR/*.pl
Test xPL alert controller
Test it on a BeagleBone:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-alert.pl -h $SCRIPTS_BASE_DIR/xpl-alert.pl -vn alert
Open a 2nd terminal window (on any machine with xPL installed) and monitor the xPL protocol:
SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-monitor.pl -vf
Open a 3rd terminal window (on any machine with xPL installed) and control the lights:
SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -v -c lighting.request device=3 $SCRIPTS_BASE_DIR/xpl-send.pl -v -c lighting.basic device=3 command=activate $SCRIPTS_BASE_DIR/xpl-send.pl -v -c lighting.basic device=3 command=deactivate
The first xpl-send
command asks for the status of the bulb.
The answer is seen in the xPL traffic monitor.
Launch the xPL alert controller at startup
The xPL alert clock controller is to be launched after the xPL hub.
Ubuntu
On Ubuntu, the xPL alert controller starts-up once xpl-hub_started
has been emitted.
Edit /etc/init/xpl-alert.conf
:
################################################################################ # xPL alert, controls Philips alert light bulbs # description "xPL alert" version "1.0" author "Francois Corthay" #------------------------------------------------------------------------------- # Configuration variables # env SCRIPTS_DIR='/home/control/Documents/Controls' env SCRIPT_NAME='xpl-alert.pl' env PARAMETERS='-n alert' #------------------------------------------------------------------------------- # Start and stop conditions # start on xpl-hub_started stop on shutdown respawn setuid control setgid users #------------------------------------------------------------------------------- # Start daemon # exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS
Start the device and test it:
su root service xpl-alert start service xpl-alert status initctl list | grep xpl ps aux | grep -i xpl | grep -v grep | sed 's/.*\/Controls\///'
Mac OS
On Mac OS, the xPL alert controller starts-up later than the hub.
Edit /Library/LaunchDaemons/xpl-alert.plist
:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>xPL Philips alert controller</string> <key>OnDemand</key> <false/> <key>UserName</key> <string>control</string> <key>ProgramArguments</key> <array> <string>/Users/control/Documents/Controls/xpl-alert.pl</string> <string>-n</string> <string> alert </string> <string>-w</string> <string>25</string> </array> </dict> </plist>
Load the xPL client:
launchctl load /Library/LaunchDaemons/xpl-alert.plist launchctl list | grep -i xpl ps ax | grep -i xpl | grep -v grep