What is xPL?
xPL is a communications protocol for household devices, allowing events received by one device to trigger activity in another. The system has been designed to be as lightweight as possible, so that it can be used both by desktop PCs and by simple embedded devices.
Any device or system that has a PC interface can potentially work with xPL (While in theory it is possible to use xPL without PCs or IP networks, in practice most interfaces for Home Automation are for PCs, and so for the sake of simplicity this primer assumes a PC-based xPL network). All that is required is an xPL gateway program (also known as a connector) that translates the native language of the device into xPL messages that are broadcast over a computer network. The gateway may also respond to incoming xPL messages to control the device.
The xPL gateway programs form a network, with messages sent by any one application received by all the others. This network may be contained within a single PC, or it may be formed of xPL applications running on several PCs connected together. In practice it is usual for most xPL gateways and the associated PC interfaces to be installed on a single PC that can be left running 24/7. Since xPL does not place much of a demand on the host PC, that machine does not need to be dedicated to xPL - many people also host an intranet, run a mail sever and stream movies and music from this PC.
Communications between xPL applications within a single PC and between PCs on a Local Area Network (LAN) use UDP. The important points to note about UDP are that messages are not guaranteed to arrive at their destination, and they may arrive in a different order to that in which they were sent. In practice problems with missing messages are rare but the user should be aware that the potential exists.
One other problem with UDP is that only one application on a PC can receive messages from the designated port (xPL has been assigned port 3865). To work around this restriction, each PC that is hosting an xPL program must also be running an xPL hub.
Next: Hubs.





