We just spoke about some technologies used in home automation. In this section, we will go through the details of some popular technologies used in home automation, software ecosystems, and open source projects.
Numerous technologies exist for home automation, but covering all of them is not possible in this book, so we will only talk about some of the popular ones. These are the ones you will see in many retail stores or on the Internet.
X10 is a machine-to-machine communication system which was developed in 1975 by Pico Electronics Ltd. in Glenrothes, Scotland, and was the first communication protocol used for home appliances. Since wireless technologies were not as advanced as they are today, it was designed to use power line wiring in order to send signals to devices at home.
X10 uses a power line wiring system to send radio frequency signals in order to send basic digital information to devices. Digital data is encoded onto a 120 kHz carrier, which is transmitted in bursts. The X10 wireless protocol has also been developed and is used nowadays. More information about X10 can be found on its official website, http://www.x10.com.
Insteon is a home automation technology used to define another protocol for machine-to-machine communication between home appliances. Insteon uses both wired and wireless power lines in order to carry messages to other devices in a home, just like X10 but with different encoding and frequencies. Insteon messages can carry up to 14 bytes of data at a time. More information can be found on its official website at http://www.insteon.com.
The EnOcean technology is mainly used in home automation but is also being used in other areas. It only transmits wireless messages to control devices.
EnOcean's wireless data packets are 14 bytes long, like Insteon, and are transmitted at 125 Kbps. The transmission frequencies used for the devices are 902 MHz, 928.35 MHz, 868.3 MHz, and 315 MHz. More information can be found on its official website at http://www.enocean.com.
Z-Wave is one of the technologies we will try in order to build the examples in the following sections using Intel Galileo. The Z-Wave protocol is an interoperable wireless RF-based communication technology designed specifically for controlling, monitoring, and reading the status of devices designed for home use.
Z-Wave is a low-powered RF wireless technology that operates in the sub-1 GHz band. The lower layers, MAC and physical are described by the ITU-T G.9959 specification. It is fully backwards compatible. The Z-Wave radio uses 868.40 MHz, 869.85 MHz (Europe, South Africa, UAE, Singapore, China), 869.00 MHz (Russia), 868.10 MHz (Malaysia), 908.42 MHz (the United States), 910 MHz (Israel), 919.82 MHz (Hong Kong), 921.42 MHz (Australian/New Zealand) and 865.2 MHz (India).
There are over 1,000 interoperable products available, that is, 12 million Z-Wave products worldwide, which is one of the reasons why we have picked Z-Wave to create examples. For more information, you can visit http://www.z-wavealliance.org and http://www.z-wave.com.
ZigBee is also our focus. More products are being launched with ZigBee technology, such as the popular Philips Hue bulbs and many other devices by large manufacturers.
ZigBee is a wireless communication protocol used to create personal area networks built from small, low-power digital radios. ZigBee uses 2.4 GHz radio frequencies and is based on an IEEE 802.15 standard. It consumes little power, has a relatively nice line of sight, and transmits data over 10–100 meters depending on the power output and environmental characteristics. ZigBee has a defined rate of 250 Kbps. More information can be found at http://www.zigbee.org.
There are numerous home automation devices, utilizing different technologies, in the market. In order to connect to a home automation device, you need a compatible controller that uses the same protocol. Some of the manufacturers only provide private APIs to connect to the hub in order to access devices.
Open source communities support some of the technologies. They develop software libraries to use USBs and serial controllers to connect and manage existing devices. You can automate your home using your personal computer with the help of open source projects. Some of the software projects that we will use in our projects are listed in the next section. You can navigate to the project's home page to get more information.
Linux Media Center Edition (LinuxMCE) is a free and open source media centered Linux distribution. LinuxMCE's main focus is to design a distribution that enables a personal video recorder, home theater PC, home automation, lighting, climate control system, surveillance and security system, and VoIP phone system with support for video conferencing systems on Linux.
LinuxMCE supports many of the home automation technologies mentioned in the previous section; you can manage the lighting and remote sockets of your home with the help of LinuxMCE.
Check out the LinuxMCE project's home page at http://www.linuxmce.com.
OpenRemote is a cross-platform software framework that allows you to work with many home automation protocols, as well as other commercial building automation technologies. OpenRemote supports Z-Wave, Insteon, X10, and many other protocols to help developers to automate with scripts. It is a cross-platform software that has support for Linux, Windows, Mac, and some other systems.
You can find out more from the OpenRemote project's home page at http://www.openremote.org.
OpenZWave is an open source software library that can be used with selected Z-Wave PC controllers to develop home automation with Z-Wave devices. It provides a useful abstraction layer for developers; you don't need to have a in-depth knowledge of the Z-Wave protocol or buy the Z-Wave development kit.
Check out the OpenZWave project's home page at http://www.openzwave.com.
The following are some other software projects:
Before designing our home automation project, let's take a closer look at some existing devices that we use for the projects in the following chapters.
There are many devices enabled with the technologies already mentioned. In order to use these devices, they have to be remotely controllable, and some data needs to be sent to the central controller with some kind of protocol. If a wall plug is not enabled with any of the home automation technologies, you can't reach the device to switch it on or off. If a wall plug has an energy meter to measure how much energy is consumed, the controller should be able to poll data.
If we are building our own hobby project to build a device for home automation, this new device should be controllable and should be able to send and receive data with a particular protocol.
Some sample devices with their descriptions and use for home automation are listed in the following table. Some are used for energy management, while some are used for security.