Install alert
The alert sender plays a given sound on the reception of the corresponding xPL message.
Before all, make sure you have installed an xPL hub.
Contents
[hide]Install xPL alert sender
The alert sender bases in a command-line control allowing to play a sound file. On Linux, this generally is the Advanced Linux Sound Architecture (ALSA). Basic debug info:
lspci -nn head -n 1 /proc/asound/card0/codec* lsmod | grep '^snd' aplay -l
Add the control
user to the audio
group:
su cat /etc/group | grep control usermod -G dialout,audio control
Plug loudspeakers on your PC's line out. The PC System Design Guide defines the analog line level audio output phone connector to be lime green.
Play a sound:
SOUND_FILES_LOCATION='/home/control/Documents/Controls/Sounds' aplay $SOUND_FILES_LOCATION/doorBell.wav
Download the xPL alert sender 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 sender
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 alert.basic command=play $SCRIPTS_BASE_DIR/xpl-send.pl -v -c alert.basic command=play soundFile=pop.wav
The doorbell sound should play.
Launch the xPL alert sender at startup
The xPL alert clock controller is to be launched after the xPL hub.
Ubuntu
On Ubuntu, the xPL alert sender starts-up once xpl-hub_started
has been emitted.
Edit /etc/init/xpl-alert.conf
:
################################################################################ # xPL alert, plays sound # 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 door -s doorBell.wav' #------------------------------------------------------------------------------- # Start and stop conditions # start on xpl-hub_started stop on shutdown respawn setuid control setgid audio #------------------------------------------------------------------------------- # 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\///' su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -v -c alert.basic command=play
Mac OS
On Mac OS, the xPL alert sender 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 sender </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