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:
Key Device Class Objects
You can add support for Key devices in the Home Device Manager - you need the ZigBee Key Device Class Profile Provider bundle installed. Following are the device classes introduced for device types from the Key profile.
Cluster Type |
Device Class |
|---|---|
|
com.prosyst.mbs.services.hdm.deviceclasses.Key |
General Device Class Objects
You can add support for General devices in the Home Device Manager - you need the ZigBee General Device Class Profile Provider bundle installed. Following are the device classes introduced for device types from the General profile.
Cluster Type |
Device Class |
|---|---|
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.zigbee.hdm.deviceclasses.FirmwareUpdateEx |
|
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.EZModeCommissioning |
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.QualityOfService |
Pump Configuration and Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.PumpControl |
On/Off |
com.prosyst.mbs.services.hdm.deviceclasses.BinarySwitch |
Occupancy Sensing |
com.prosyst.mbs.services.hdm.deviceclasses.BinarySensor |
IAS Zone |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.general.IASBinarySensor |
IAS Zone |
com.prosyst.mbs.services.hdm.deviceclasses.MotionSensor |
Level Control |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSwitch |
Illuminance Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
Temperature Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
Pressure Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
Flow Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
Relative Humidity Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
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 |
Home Аutomation Clusters/Device Classes
You can add support for Home Automation devices in the Home Device Manager - you need the ZigBee Home Automation Profile Provider bundle installed. Following are the device classes introduced for device types from the HA profile.
Cluster Type |
Device Class |
|---|---|
Window Covering |
com.prosyst.mbs.services.hdm.deviceclasses.Blinds |
Thermostat |
com.prosyst.mbs.services.hdm.deviceclasses.MultiLevelSensor |
Electrical Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.Meter |
Electrical Measurement |
com.prosyst.mbs.services.hdm.deviceclasses.MeterV2 |
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 |
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) |
Door Lock |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ha.DoorLockHA12 |
Smart Energy Devices
You can additionally add support for smart energy (SE) devices in the Home Device Manager - you need the ZigBee SE Profile Provider bundle installed. Following are the device classes introduced for device types from the SE profile.
Cluster Type |
Device Class |
|---|---|
Simple Metering |
com.prosyst.mbs.services.hdm.deviceclasses.Meter |
Simple Metering |
com.prosyst.mbs.services.hdm.deviceclasses.MeterV2 |
Light Link Devices
You can add support for Light Link (LL) devices in the Home Device Manager - you need the ZigBee LL Profile Provider 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 |
Color Control |
com.prosyst.mbs.services.zigbee.hdm.deviceclasses.provider.ll.ColorTemperature |
ZigBee Network Controller
The ZigBee protocol adapter represents the attached coordinators as Advanced Network Controller (com.prosyst.mbs.services.zigbee.hdm.deviceclasses) 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 Advanced Network Controller 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" above). 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.