3. Design interoperable products
The communication part of the device control code needs to comply with the Z-Wave specification. The Z-Wave specification defines different roles of a device and the developer must choose one of these role types.
• Role in the network: controller can built own networks, additionally differentiating between mobile controllers (e.g. remote controls) or static controllers (e.g. gateways)
• Power supply model: battery powered with regular wakeup, mains powered, battery powered that can be waken u using a wakeup beam.
• Function of the device: switch, dimmer, motor control device, thermostats etc.
The role models of Z-Wave are described in so called Device Classes. The manufacturer needs to choose one device class the products shall fit in. This already defines certain functions and services this device must support. The wireless functions and services of a device are described in so called Command Classes. Command classes are groups of wireless commands that are used to control certain aspects of a device or to deliver data in relation to this aspect.
Command classes are e.g. called Binary switch, Battery, or Motor Control, and combine all functions to deal with a binary on/off switch, the batteries status reporting or the control of a motor device. The command classes that are required by choosing a device class are called mandatory command classes. More than 20 Device classes and 100 Command Classes are described in the Z-Wave Standard.
The manufacturer can - and typically does - add additional voluntary command classes. There are no restrictions on what other voluntary command classes are implemented but in case a certain command shall be supported by the device this command class needs to be:
• announced in a so called Node Information Frame during the inclusion process
• implemented completely and according to the Z-Wave Command Class specification.
The API description of the libraries, the definition of the device classes and the definition of the
command classes are therefore the core documents Z-Wave developers need to work with.