About Device Profiles

Device profiles are used to map generic names for Z-Wave proxy points and configuration properties to specific names for a specific Z-Wave device. A device profile can also be used to meet a specific device “contract” or “profile”. You can use Workbench as a tool to create these device profiles.

The device profile is an ASCII text file that is named using the information from the manufacturerId, productTypeId, and productId properties from the Z-Wave device. The file contains the device profile name, and a “pointNameMap”. The pointNameMap is the definition of a Baja NameMap for the ZWaveDevice’s points device extension, providing application-specific display names for specific points.

A simple example is for a Z-Wave device that is used to control a window covering. Such a device typically implements a Z-Wave Multilevel Switch command class, used to control the position of the window covering. However, there may not be anything in the Z-Wave device that will indicate that it is a window covering application.

Without any device profile, when the device is discovered, a NumericWritable point is created for the Multilevel Switch command class. This point is named “switch”.

Using Workbench, from the slot sheet of the device’s Points extension, you can set the display name for the “switch” point to “percentOpen”. You could also set the ZWaveDevice’s “Device Profile” property value to “WindowCovering” (note the “Device Profile” property is near the top of the property sheet for any ZWaveDevice component).

After doing this, if you invoked the “Save Device Profile” action on this ZWaveDevice, a file named “x65_x1_x2.info” would be generated that contains the following:

deviceProfile=WindowCovering 
pointsNameMap{switch=percentOpen;}

NoteDevice profile files are saved in the station’s file space in a !Files/zwaveDevTemplates directory.

Later, during a discovery process, as ZWaveDevices are added to the station, the driver first looks for the existence of a device profile file for a device in !Files/zwaveDevTemplates. If one is not found there, the driver looks in the zwave.jar (driver) module, as a collection of device profiles are included in the driver. If a device profile file is found, it initializes the “Device Profile” property of the ZWaveDevice component, and sets display names in the “pointNameMap” of its Points (ZWavePointDeviceExt).