Difference between revisions of "Main Page"
(→Triggered actions) |
|||
Line 50: | Line 50: | ||
An xPL device sends [[install clock|clock ticks]] every minute. | An xPL device sends [[install clock|clock ticks]] every minute. | ||
A xPL [[install dawnDusk|dawnDusk device]] sends messages at dawn and at dusk. | A xPL [[install dawnDusk|dawnDusk device]] sends messages at dawn and at dusk. | ||
+ | |||
+ | An [https://www.raspberrypi.org/ Raspberry Pi] based device sends [[install meteo|meteorologic information]] every minute. | ||
A [[install central|central xPL device]] monitors all the messages and is configured to trigger specific actions on specific messages. | A [[install central|central xPL device]] monitors all the messages and is configured to trigger specific actions on specific messages. |
Revision as of 10:24, 21 July 2017
The xPL protocol allows different devices to exchange information in a simple manner. The devices broadcast their messages to the others and register to a hub in order to receive the messages sent by others.
The protocol is light enough to run on simple machines such as the BeagleBone or the Raspberry Pi. Some setup insructions show how to prepare a BeagleBone to use with xPL. A comparison of different single-board computers gives an idea of speed and power consumption issues.
The hub and the devices can be installed on different platforms. The system shown here run with Perl, which is part of the Linux and Mac OS operating systems and can easily be installed on Windows. It is based on John Bent's xPL ToolKit for Perl.
Contents
Install xPL
Hub
The first step to xPL automation is to install a hub.
This has to be done on each machine that participates to the xPL network.
Serial port
Many devices are controlled over an RS-232 serial port.
For this, the xPL serial port device can be instantiated as many times as needed. The xPL infrastructure supports this by the fact that these devices are differentiated by their name.
Audio output
In the same way as your PC, your home wants to alert you from time to time.
For this, the xPL alert device can emit alert sounds. This can fro example be triggered by other xPL messages.
Controlled equipment
The xPL scripts found here allow to control:
- EIB / KNX devices such as lights, shutters, …
- a Logitech Media Server controller
- a Denon audio-video controller
- a Panasonic plasma screen
- Philips Hue LED light bulbs control and a time display using 2 bulbs: one for the hour and one for the minute
- Ethernet controlled switches
Triggered actions
An xPL device sends clock ticks every minute. A xPL dawnDusk device sends messages at dawn and at dusk.
An Raspberry Pi based device sends meteorologic information every minute.
A central xPL device monitors all the messages and is configured to trigger specific actions on specific messages. This allows:
- to update the information about the state of the home (lights, music, …)
- to launch scripts at given times or on specific events
The location of the personal mobile phone can be used to trigger actions, such as opening the garage door. A distance calculator sends xPL messages on any receipt of a NMEA position message.
RESTful web service
A RESTful web service allows to query and modify the state of the home using HTTP methods.
It works in conjunction with the home state xPL device.
Browser control
An HTML web page can also be used to control the home.
It works in conjunction with a CGI script capable of sending xPL messages. This implies to install a web server on a machine in the same local domain as the xPL system.
Obviously, the home control pages have to be tailored to the user's wishes. These pages, in turn, can be generated by a CGI script, based on an XML description of the buttons and their associated commands.
Moving xPL services
Movng services require to stop them on a given device and starting them on another.
Stop a service on a given device:
su ll /etc/init/xpl-* initctl list | grep running | grep xpl- SERVICE='xpl-central' SERVICE_CONF="/etc/init/$SERVICE" echo -e "\n$SERVICE_CONF.conf\n" echo ; cat $SERVICE_CONF.conf ; echo service $SERVICE stop echo "manual" >> $SERVICE_CONF.override reboot su SERVICE='xpl-central' initctl list | grep $SERVICE
On the other machine, install and launch the service as explained in the corresponding page.
Contact
My name is Francois Corthay. I teach digital electronics in an engineering school in Switzerland. If you have problems installing xPL, you can contact me at my_first_name.my_last_name@dspc.ch.