The Z-Wave protocol adapter enables you to control all kinds of devices that support
Protocol Information
Protocol Name
To be able to manage Z-Wave networks via the Home Device Manager you need to select the protocol adapter registered under the name Z-Wave.
Protocol Operations
The Z-Wave protocol adapter supports the following device administration operations:
Protocol Properties
The device properties related to the underlying Z-Wave protocol adapter are described in the table below:
Property |
Access |
Description |
Resolution |
|---|---|---|---|
node_id |
Readable |
The ID of the source node in the network. |
Mandatory |
instance_id |
Readable |
The ID of the instance node. |
Mandatory |
zwave.application.version |
Readable |
Application firmware version on the end device |
Mandatory |
zwave.library.type |
Readable |
Z-Wave library type on the end device |
Mandatory |
zwave.manufacturer_specific.manufacturer_id |
Readable |
Manufacturer identifier |
Mandatory |
zwave.manufacturer_specific.product_id |
Readable |
Product identifier |
Mandatory |
zwave.manufacturer_specific.product_type_id |
Readable |
Product type identifier |
Mandatory |
zwave.protocol.version |
Readable |
Z-Wave protocol version on the end device |
Mandatory |
zwave.secure |
Readable |
Boolean string (true,false) depending on whether the device supports Z-Wave Security or not |
Mandatory |
You can retrieve a list of the properties required by the Z-Wave protocol adapter by using the getProperties or getPropertyMetadata method of the corresponding ProtocolAdapterInfo object. If a property is mandatory, its ProtocolAdapter.META_INFO_PROPERTY_RESOLUTION metadata property will be ProtocolAdapter.META_INFO_PROPERTY_RESOLUTION_MANDATORY.
Polling
Z-Wave protocol adapter implements a specific polling mechanism instead of the default HDM polling mechanism. Note that this mechanism is used only for legacy Z-Wave devices, since the Z-Wave Plus devices are required by specification to send events to the devices associated in group 1.
The specifics of this polling mechanism are as follow:
This approach allows for a better balance between the need for polling and potentially making the network unusable because of the overhead.
Please note that, however aggressive a polling method is, it can never overcome the delay in refreshing the device state. To avoid this problem we recommend to choose mains-powered devices which implement Z-Wave HAIL Command Class, since in this case the device state is refreshed almost instantly should an action on the end device occur. Alternatively the use of Z-Wave Plus devices circumvents the issue altogether, because they send events to the device that have been added to association group 1 and our driver will always associate the controller for all Z-Wave Plus devices.
Network Controller
The ZWaveNetworkController interface extends the com.prosyst.mbs.services.hdm.deviceclasses.NetworkController and the com.prosyst.mbs.services.hdm.deviceclasses.NetworkControllerExt HDM device classes. For more information refer to: Z-Wave Network Controller
The NetworkController device class provides support for network controllers. The network controller mode can be for example add, remove, learn, etc. For more information refer to: NetworkController
The NetworkControllerExt class provides additional support for network controllers. The network controller mode can be normal, pairing and removing. Additionally the mode duration and mode remaining time are provided. The operation reset has to reset the controller and to remove all home devices. For more information refer to: NetworkControllerExt
Z-Wave to HDM Mapping
For management of Z-Wave networks through the abstraction layer provided by the Home Device Manager (HDM) API the Z-Wave Module offers a protocol adapter, named ZWave. This protocol adapter represents the devices in Z-Wave networks as devices composed of device class objects compliant with the Home Device Manager (HDM) API. In this way, the Z-Wave network as well as other types of home networks can be controlled by a common service such as the Home Device Manager. Device classes support specific properties and operations. Devices can be controlled by directly changing their properties or by launching operations on them.
The table below lists the supported Z-Wave command classes and their mapping in HDM device class objects:
Some command classes are supported by HDM but do not expose HDM device classes. The association command classes are internally handled by the driver. They represent execution of actions by devices (called in this context destination devices) which are triggered by signals coming from other devices called source devices. As there is an unlimited number of possible scenarios for associations between source and destination devices the association command classes cannot be mapped to HDM device classes. The COMMAND_CLASS_HAIL is only supported through Home Device Manager and it has no Java interface. For COMMAND_CLASS_MANUFACTURER_SPECIFIC and COMMAND_CLASS_MANUFACTURER_SPECIFIC_V2 the relevant information is available as properties of the HDM device.
If a device supports security there will be a child device that exposes the functionality accessible though secure communication. Furthermore if multichannel communication is supported it is exposed though HDM as child devices. The CRC-16 encapsulation is transparently supported on the HDM level.
All Z-Wave command classes are part of the com.prosyst.mbs.services.zwave.commandclasses package.
The HDM device class interfaces are provided by the com.prosyst.mbs.services.hdm.deviceclasses package.
For more information about the Java classes refer to: Java API.
Z-wave Command Class |
ID |
Supported via Z-wave Driver |
Supported by HDM |
Z-wave Java Class Name |
HDM Device Class |
|---|---|---|---|---|---|
COMMAND_CLASS_ALARM |
0x71 |
|
|
CCAlarm |
AlarmSensor |
COMMAND_CLASS_APPLICATION_STATUS |
0x22 |
|
|
CCApplicationStatus |
|
COMMAND_CLASS_ASSOCIATION |
0x85 |
|
|
CCAssociation |
ZWaveNetworkController |
COMMAND_CLASS_BASIC |
0x20 |
|
|
CCBasic |
Basic |
COMMAND_CLASS_BATTERY |
0x80 |
|
|
CCBattery |
BatteryLevel |
COMMAND_CLASS_CLIMATE_CONTROL_SCHEDULE |
0x46 |
|
|
CCClimateControlSchedule |
ClimateSchedule |
COMMAND_CLASS_CLOCK |
0x81 |
|
|
CCClock |
Clock |
COMMAND_CLASS_CONFIGURATION |
0x70 |
|
|
CCConfiguration |
Configuration |
COMMAND_CLASS_CONTROLLER_REPLICATION |
0x21 |
|
|
CCControllerReplication |
|
COMMAND_CLASS_CRC_16_ENCAP |
0x56 |
|
|
CCCRC16Encap |
|
COMMAND_CLASS_DOOR_LOCK_LOGGING |
0x4C |
|
|
CCDoorLockLogging |
DoorLockLogging |
COMMAND_CLASS_DOOR_LOCK |
0x62 |
|
|
CCDoorLock |
DoorLock |
COMMAND_CLASS_FIRMWARE_UPDATE_MD |
0x7A |
|
|
CCFirmwareUpdateMD |
|
COMMAND_CLASS_HAIL |
0x82 |
|
|
|
|
COMMAND_CLASS_MANUFACTURER_SPECIFIC |
0x72 |
|
|
CCManufacturerSpecific |
|
COMMAND_CLASS_MARK |
0xEF |
|
|
|
|
COMMAND_CLASS_METER |
0x32 |
|
|
CCMeter |
Meter |
COMMAND_CLASS_MULTI_INSTANCE_ASSOCIATION |
0x8E |
|
|
CCMultiInstanceAssociation |
|
COMMAND_CLASS_MULTI_INSTANCE |
0x60 |
|
|
CCMultiInstance |
|
COMMAND_CLASS_POWERLEVEL |
0x73 |
|
|
CCPowerLevel |
PowerLevel |
COMMAND_CLASS_PROTECTION |
0x75 |
|
|
CCProtection |
ProtectionV1 |
COMMAND_CLASS_SECURITY |
0x98 |
|
|
CCSecurity |
|
COMMAND_CLASS_SENSOR_ALARM |
0x9C |
|
|
CCSensorAlarm |
MultiLevelSensor |
COMMAND_CLASS_SENSOR_BINARY |
0x30 |
|
|
CCBinarySensor |
BinarySensor |
COMMAND_CLASS_SENSOR_MULTILEVEL |
0x31 |
|
|
CCMultilevelSensor |
MultiLevelSensor |
COMMAND_CLASS_SWITCH_BINARY |
0x25 |
|
|
CCBinarySwitch |
BinarySwitch |
COMMAND_CLASS_SWITCH_MULTILEVEL |
0x26 |
|
|
CCMultilevelSwitch |
MultiLevelSwitch |
COMMAND_CLASS_THERMOSTAT_FAN_MODE |
0x44 |
|
|
CCThermostatFanMode |
ThermostatFanMode |
COMMAND_CLASS_THERMOSTAT_FAN_STATE |
0x45 |
|
|
CCThermostatFanState |
ThermostatFanState |
COMMAND_CLASS_THERMOSTAT_MODE |
0x40 |
|
|
CCThermostatMode |
ThermostatFanMode |
COMMAND_CLASS_THERMOSTAT_OPERATING_STATE |
0x42 |
|
|
CCThermostatOperatingState |
ThermostatState |
COMMAND_CLASS_THERMOSTAT_SETBACK |
0x47 |
|
|
CCThermostatSetback |
ThermostatSetback |
COMMAND_CLASS_THERMOSTAT_SETPOINT |
0x43 |
|
|
CCThermostatSetPoint |
TemperatureActuator |
COMMAND_CLASS_TIME_PARAMETERS |
0x8B |
|
|
CCTimeParameters |
|
COMMAND_CLASS_USER_CODE |
0x63 |
|
|
CCUserCode |
UserCode |
COMMAND_CLASS_VERSION |
0x86 |
|
|
CCVersion |
|
COMMAND_CLASS_WAKE_UP |
0x84 |
|
|
CCWakeUp |
ZWaveWakeUp |
COMMAND_CLASS_ASSOCIATION_GRP_INFO |
0x59 |
|
|
CCAssociationGroupInfo |
|
COMMAND_CLASS_DEVICE_RESET_LOCALLY |
0x5A |
|
|
CCDeviceResetLocally |
|
COMMAND_CLASS_CENTRAL_SCENE |
0x5B |
|
|
CCCentralScene |
|
COMMAND_CLASS_BARRIER_OPERATOR |
0x66 |
|
|
CCBarrierOperator |
BarrierOperator |