The ZigBee protocol adapter enables you to control all kinds of devices that support
Protocol Information
The ZigBee protocol adapter exports the connected ZigBee devices and their endpoints as home devices.
The ZigBee Module provides a protocol adapter which exports the connected ZigBee devices and their endpoints as home devices with device class objects for the Home Device Manager system. By using the interfaces of the system to the connected devices, you can easily control a home system with a heterogeneous device network, from a central place. In addition, devices of all supported types can participate in common automation logic. Refer to the documentation of the Device Access module for detailed information about the concept and capabilities of a Home Device Manager system.
Protocol Name
HDM allows for controlling home devices in the management system through a specified protocol adapter. As a result, to be able to manage ZigBee devices, the ZigBee protocol adapter exports its devices under the ZigBee name (com.prosyst.mbs.services.zigbee.hdm.adapter.ZigBeeConstants.PROTOCOL_NAME), and describes to the Home Device Manager and the management applications its support for:
Protocol Operations
The ZigBee protocol adapter supports two types of device administration operations:
The "remove parent only" support ensures that you cannot remove the home devices created for the endpoints of the joined physical devices.
Protocol Properties
The created ZigBee home devices have the following properties related to the nature of the ZigBee protocol. Some of them are available only for endpoint home devices.
Property Name |
Access |
Resolution |
Description |
|---|---|---|---|
controller.id |
R |
Mandatory
|
The ID of the coordinator in charge of the device. The ID is configured at setup of the coordinator connection. |
connection.comm.port |
R |
The COMM port to which the coordinator, handling the device, is attached as specified in its connection settings. |
|
connection.baud.rate |
R |
Specifies the Baud Rate of the Coordinator |
|
ieee.address |
R |
The IEEE address of the device in the ZigBee network. |
|
nwk.address |
R |
The network address of the device in the ZigBee network. |
|
connection.baud.rate |
R |
Optional
|
The baud rate for data exchange with the handling coordinator as configured in its connection settings. |
connection.keep.child.timeout |
R |
XStick coordinator only. The timeout in milliseconds for a coordinator/router to keep a non-responding sleep-capable device in its children table. It is equal to cyclicSleepPeriod * numberOfCycles * 30, where cyclicSleepPeriod and numberOfCycles correspond respectively to the SP and SN settings of the coordinator. The properties are included in the connection settings to the coordinator. |
|
connection.keep.request.timeout |
R |
XStick coordinator only. The timeout in milliseconds for a coordinator/router to keep an undelivered message addressed to a non-responding sleep-capable device. It is equal to the cyclicSleepPeriod (SP) setting of the coordinator. |
|
connection.friendly.name |
R |
The friendly name of the active coordinator connection as specified in its connection settings. |
|
serial.number |
R |
Specifies the serial number of the ZigBee device. |
|
firmware.version |
R |
The firmware version of the ZigBee device. |
|
firmware.vendor |
R |
The firmware vendor for the ZigBee device. |
|
model |
R |
The model of the ZigBee device. |
|
profile.id |
R |
The ID of the profile that the endpoint home device supports. |
|
profile.name |
R |
The name of the profile that the endpoint home device supports. |
|
device.id |
R |
The ID of the device describing its capabilities as defined for its profile. |
|
device.name |
R |
The friendly name of the device as defined for its profile. |
|
active.endpoint |
R |
The active endpoint ID of the ZigBee home device. |
|
input.clusters |
R |
A comma-separated list of the 16-bit IDs of the input clusters located on the endpoint. |
|
output.clusters |
R |
A comma-separated list of the 16-bit IDs of the output clusters located on the endpoint. |
|
cluster.id |
R |
Specifies the ZigBee cluster ID for a given device class property. |
|
attribute.id |
R |
Specifies the ZigBee attribute ID for a given device class property. |
|
command.id |
R |
Specifies the ZigBee command ID for a given device class operation. |
You can retrieve the values of these properties for each device by using the getProperties or getPropertyMetadata method of the corresponding HomeDevice object.
Polling
By default the ZigBee protocol adapter does not poll device class properties. You can change this behavior by changing the mbs.zigbee.hdmadapter.polling property, as described here.
Protocol Metadata
The ZigBee protocol adapter extends conventional HDM metadata attributes with cluster.id (ZigBeeConstants.CLUSTER_ID), attribute.id (ZigBeeConstants.ATTRIBUTE_ID) and command.id (ZigBeeConstants.COMMAND_ID). They indicate the cluster related to the device class object, the attribute to which a device class object property is mapped and the command which is represented by a device class object operation.
ZigBee to HDM Mapping
The ZigBee protocol provides mapping of the physical devices (endpoints) to the abstraction layer provided by the Home Device Manager (HDM) Module.
Overview
For each physical ZigBee device an HDM home device is created. For each endpoint there is a child home device attached. The "endpoint" device has device class objects (DCO) corresponding to the clusters on the ZigBee endpoint.
ZigBee Alliance Clusters to Device Class Mappings
The mapping between the ZigBee cluster types and the device classes of the parent and endpoint device class objects is as follows:
Cluster Type |
Device Class |
|---|---|
Adapter Device Class Objects |
|
Power Configuration Cluster |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.BatteryLevelEx |
IAS Zone |
com.prosyst.mbs.services.hdm.deviceclasses.BatteryLevel |
OTA Upgrade |
com.prosyst.mbs.services.hdm.deviceclasses.FirmwareUpdate |
Identify Cluster |
com.prosyst.mbs.services.hdm.deviceclasses.Identifier |
Poll Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.WakeUpExt |
|
com.prosyst.mbs.services.hdm.deviceclasses.Key |
|
com.prosyst.mbs.services.hdm.deviceclasses.QualityOfService |
General Device Class Objects |
|
Pump Configuration and Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.PumpControl |
On/Off |
com.prosyst.mbs.services.hdm.deviceclasses.BooleanControl |
Occupancy Sensing |
com.prosyst.mbs.services.hdm.deviceclasses.BooleanState |
IAS Zone |
com.prosyst.mbs.services.hdm.deviceclasses.BooleanState |
Level Control |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelControl |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelControl (cooling) |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelControl (heating) |
Illuminance Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Temperature Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Pressure Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Flow Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Relative Humidity Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Thermostat User Interface Configuration |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.ThermostatUIConfiguration |
Device Temperature Configuration |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.InternalTemperatureSensor |
Dehumidification Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.Dehumidification |
Shade Configuration |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.ShadeControl |
Door Lock |
com.prosyst.mbs.services.hdm.deviceclasses.DoorActuator |
Fan Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.FanActuator |
Color Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.ColorActuator |
Alarms |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.ZigBeeAlarmSensor |
Time |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.TimeControl |
Occupancy Sensing |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.PIROccupancySensing |
IAS Zone |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.IASZoneExtension |
IAS Zone |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.IASZoneConfiguration |
IAS Warning Device |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.AlarmActuatorExtension |
Scenes |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.SceneControl |
Thermostat |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.hvac.ThermostatHA12 |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.TemperatureActuator (cooling) |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.TemperatureActuator (heating) |
Home Аutomation Clusters/Device Classes
|
|
Window Covering |
com.prosyst.mbs.services.hdm.deviceclasses.Blinds |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelState |
Electrical Measurement |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.em.ACElectricalMeasurement |
Electrical Measurement |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.em.DCElectricalMeasurement |
Electrical Measurement |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.em.PhaseElectricalMeasurement |
Power Profile |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.smartgrid.EnergyAwareAppliance |
Power Profile |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.smartgrid.EnergyManagementAppliance |
EN50523 Appliance Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.whitegoods.ApplianceControl |
EN50523 Appliance Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.whitegoods.ApplianceControlExtension |
EN50523 Appliance Identification |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.whitegoods.ApplianceIdentification |
EN50523 Appliance Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.whitegoods.ApplianceOverloadControl |
Appliance Statistics |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.whitegoods.ApplianceStatistics |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.CoffeeSystem |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Dishwasher |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Freezer |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Fridge |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.GasConsumingActuator |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Hob |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Hood |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.Oven |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.TumbleDryer |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.WashingMachine |
EN50523 Appliance Control |
com.prosyst.mbs.services.hdm.deviceclasses.whitegoods.WineStorage |
Level Control |
com.prosyst.mbs.services.hdm.deviceclasses.HSBColorTransition |
Color Control |
com.prosyst.mbs.services.hdm.deviceclasses.HSBColorTransition |
Color Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ll.ColorMode |
Smart Energy Devices
You can additionally add support for smart energy (SE) devices in the Home Device Manager - you need the ZigBee SE Profile Handler bundle installed. Following are the device classes introduced for device types from the SE profile.
Cluster Type |
Device Class |
|---|---|
Demand Response Load Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.se.LoadControl |
Messaging |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.se.MessagingControl |
Electrical Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MeterV3 |
Prepayment |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.se.PrepaymentControl |
Price |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.se.PriceControl |
Light Link Devices
You can add support for Light Link (LL) devices in the Home Device Manager - you need the ZigBee LL Profile Handler bundle installed. Following are the device classes introduced for device types from the LL profile.
Cluster Type |
Device Class |
|---|---|
Level Control |
com.prosyst.mbs.services.hdm.deviceclasses.HSBColorTransition |
Color Control |
com.prosyst.mbs.services.hdm.deviceclasses.HSBColorTransition |
Color Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ll.ColorMode |
ZigBee Network Controller
The ZigBee protocol adapter represents the attached coordinators as Network Controller Ext (com.prosyst.mbs.services.hdm.deviceclasses.NetworkControllerExt) device class objects. By using these objects, you can command the coordinator to join new devices by putting it into "pairing" mode, as well as configure the duration of the normal and of the pairing modes.
More information about the features defined the Network Controller Ext device class is available in NetworkControllerExt.
ControllerInterface
The ControllerInterface allows direct operation calls on the coordinator device. Possible actions are channel switching or resetting the device. It is registered as Device Class Object for each connected coordinator.
Reporting Control
The Reporting Control device class (com.prosyst.mbs.services.zigbee.hdm.deviceclasses.ReportingControl) represents the functionality of the Configure Reporting general command from the ZCL Specification. The ZigBee adapter provides a Reporting Control device class object for each endpoint home device thus allowing you to configure the reports from the device about the state of a specific attribute.
To get the cluster ID and attribute ID needed for report configuration related to a cluster attribute, you can read the value of the cluster.id (ZigBeeConstants.CLUSTER_ID) and attribute.id (ZigBeeConstants.ATTRIBUTE_ID) metadata attributes returned for the corresponding property of the cluster device class object (see the table from "General ZCL Clusters"). For example, to configure the reporting of the OnOff attribute from the On/Off cluster, you can retrieve the metadata for the state property of the analog Binary Switch device class object and then check the value of cluster.id and attribute.id metadata attributes. In this case, cluster.id will be 0x0006 and attribute.id - 0x00. Finally, invoke the setReportingConfiguration operation on the Reporting Control device class object of the binary switch device passing the obtained cluster ID and attribute ID.