Chapter 5
Physical and virtual devices
The smart devices are smart household appliances that will work and cooperate in a home automation scenario. This chapter illustrates the types of smart de- vices used in application abstraction middleware and Home Manager testings.
5.1 Telecom Italia smart plugs
A smart plug is an electric outlet with metering and communicating capabili- ties. It is able to perform the following tasks.
1. Measuring the instantaneous electric power consumption and the cumu- lative electric energy consumption over a time interval.
2. Communicate these measures to the coordinator, with ZigBee attribute reporting technique.
3. Receive turn off/turn on commands from the coordinator.
For this thesis work, smart plugs provided by Telecom Italia Spa have been used. These smart plugs implements the On/off cluster and the Analog input (basic) cluster in a non-standard way, under a custom ZigBee profile.
5.2 Virtual devices
In order to simulate the large disponibility of ZigBee home appliances that can be employed in a house, and to offer more exhaustive testing possibilities, a set
22
5.2. Virtual devices 23
Figure 5.1: Virtual Refrigerator screenshot
of virtual devices has been developed. A virtual device is an application that emulates the functionalities of a ZigBee home appliance. It can be run on a general purpose computer that can be or be not the same in which the Home Manager is running. It can access the ZigBee network through a device GAL.
Four smart devices has been developed.
• Virtual Refrigerator, emulating a refrigerator.
• Virtual Heating Device, emulating a appliance with heating capabilities, like a centralized heating system or a single electric radiator.
• Virtual Smart Plug, emulating a Telecom Italia smart plug.
• Virtual Lamp, emulating a lighting device.
The figures 5.1, 5.2, 5.3, 5.4 show screenshots respectively of Virtual Refrige- rator, Virtual Heating Device, Virtual Smart Plug and Virtual Lamp.
Virtual devices emulate physical devices in the following features.
5.2. Virtual devices 24
Figure 5.2: Virtual Heating Device screenshot
Figure 5.3: Virtual Smart Plug screenshot
5.2. Virtual devices 25
Figure 5.4: Virtual Lamp screenshot
• Physical quantities and conditions. Like the internal temperature of a refrigerator. For testing reasons, these quantities are directly under user’s control.
• Mechanisms offered by the physical device, like a cooling system of a refrigerators.
• Real controls, like the cooling intensity of a refrigerator.
• Some particular conditions and events, like hardware failures.
Figure 5.5 shows a classic testing configuration, where a virtual device and the Home Manager are executed on the same machine.
5.2.1 Virtual device utility middleware
Some functionalities are common between all the virtual devices. For example, the graphical look-and-feel, some standard GUI controls, or the implementation of some common ZigBee clusters. In order to provide a unique implementation
5.2. Virtual devices 26
Figure 5.5: Testing configuration
of these common functionalities, a virtual device utility middleware has been developed, called VirtualDeviceUtils.dll. The virtual device utility middleware is used by Virtual Refrigerator, Virtual Heating Device, Virtual Smart Plug and Virtual Lamp, and can be used for future fast developing of new virtual devices. It offers the following features.
• A basic main window class. Individual virtual devices can derive it and ob- tain a specialized main window class, that inherits some standard controls and a standard graphical layout. The standard controls are those aimed to operate on the connection with the device GAL.
• The implementation of attributes-related commands. Specifically the at- tribute reading, the attribute writing, the attribute reporting and the reporting configuration commands.
• The implementation of some standard ZigBee clusters. Specifically the Basic cluster and the Identify cluster.
• Some basic functionalities that can be used by virtual device’s developer in order to implement other clusters, like methods for parsing or formatting ZigBee messages.