Skip to content

CommandClass Compatibility Flags

Justin Hammond edited this page Sep 3, 2019 · 5 revisions

Introduction

Device Configuration Files can often have special configuration variables applied to the whole device, or individual CommandClasses to alter their behaviour, or fix bugs that might exist in the devices firmware. Below is a list of possible configuration values we currently support and when to use them.

These Compatibility Flags apply to individual CommandClasses, and thus, are only specified within a CommandClass Block for a device configuration file. The Format is

<CommandClass id="XXX">
  <Compatability>
    <FLAG>value</FLAG>
    <FLAG index="number">value</FLAG>
  </Compatibility>
</CommandClass>

The First FLAG entry is for Single Values. The Second FLAG entry with the index attribute can be used as a Array of Option. What the index value represents is specified in the sections below for Flags that are specified as Arrays

Please Find below the CommandClasses and Available Flags

All CommandClasses

  • ForceVersion
    • Byte - Max Size of 255
    • Updates the Version of the CommandClass used by the device to the value. Some devices incorrectly report a version of the CommandClass Implemented.
    • Note: You can only ForceVersion to a higher version, you can not downgrade a version
    • if a Device advertises a version of 0 for a CommandClass, more than likely, it does not implement that CommandClass
  • OverridePrecision
    • Byte - Max Size of 255
    • For Decimal ValueID's, the Precision (number of Decimal places) is defined by the Device. You get strange readings (example, off by a factor of 10), then you can Set the Precision used by the CommandClass to the value.
  • GetSupported
    • Bool - True/False Values only
    • Stop a OZW from querying for a Value (issuing a Get).
    • Is implemented in most CommandClasses, if its not in a CommandClass for your device, please raise a issue
  • CreateVars
    • Bool - True/False Values only
    • Stop OZW from creating ValueID's for this CommandClass.
  • RefreshOnWakeUp
    • Bool, True/False Values only
    • For Battery Powered Devices, forces OpenZWave to refresh all dynamic values for this CommandClass when the device sends a Wakeup Packet. This is useful for devices that don't report sensor values, or for Battery Levels. Before using this Compatibility Flag, please check the device configuration to ensure that the Values you want to refresh cannot be specified by a Device Configuration Param.
  • VerifyChanged
    • Array Flag
    • Bool True/False Values Only
    • index Param - Index Number of the ValueID to Verify Changes from
    • For Some devices that use SwitchMultiLevel - They often will report a "instant" value right after making a change, rather than report the final value. This can mean that OZW does not update the Actual Level that the device might be moving towards. With this option, it forces OZW to continue to refresh the value on the device till 2 consecutive GET messages return the same value. (indicating its reached its final state).

Basic CommandClass

  • IgnoreMapping
    • Bool - True/False Only
    • The Z-Wave Specification dictates what a Basic Class Value represents on a device (eg, Binary Sensor). When changes are reported on the Basic Class, OZW can query for state changes on the "mapped" CommandClass. Some Devices get this wrong and you can disable this mapping
  • Mapping
    • Byte - Max of 255
    • Update the Mapping of the Basic CommandClass to the CommandClass specified by Value. This overrides the Z-Wave Specifications for that DeviceType
  • SetAsReport
    • Bool - True/False
    • Treats SET messages received by the device as Report Messages. This is often required for correct functioning of Mapped CommandClasses

Color CommandClass

  • ColorIndexBug
    • Bool - True/False
    • Some Devices incorrectly report their color capabilities. This enables a WorkAround to get the Capabilities.

MultiChannelAssociation CommandClass

  • ForceInstances
    • Bool - True/False
    • When creating a Association to a Node, some devices require that the Target Node always specifies the Instance. This updates any associations to include the instance 1.

MultiInstance CommandClass

  • IgnoreMCCapReports
    • Bool - True/False
    • Some Devices will send spurious MultiChannel Capability Reports. This forces OZW to ignore those spurious messages
  • MapRootToEndpoint
    • Bool - True/False
    • Defines how to Map the Root Node to a Endpoint in OZW.
  • ForceUniqueEndpoints
    • Bool - True/False
    • Some Devices advertise that all endpoints are identical in terms of the CommandClasses those endpoints support. The Forces OZW to ignore that, and query each endpoint for its capabilities.
  • EndPointHint
    • Byte - Max 255
    • Some devices incorrectly advertise the number of Endpoints they support. This overrides that value.
  • RemoveCC
    • Array Flag
    • Bool = True/False Only
    • Index represents the CommandClass ID to remove
    • Remove a CommandClass that might be incorrectly advertised on a Endpoint

Notification CommanClass

  • EnableNotificationClear
    • Bool
    • Default - True
    • For Devices that implement the Notification CC less than Version 8, we will automatically reset the Notification Event after a user specified timeout. This option disables that timeout.
  • EnableV1AlarmTypes
    • Bool
    • Default - false
    • Some Devices still send relevant information via the Version 1 Fields of this CommandClass rather than by the predefined Events. Set this to true to enable OZW to expose the Version 1 Fields.

ThermostatSetpoint CommandClass

  • Base
    • Byte - Max of 255
    • Some Devices use a 0 based index to represent the Valid Modes, while some use a 1 based index. If your modes are "off by 1" then set this to 1
  • AltTypeInterpretation
    • Bool - True/False
    • Some devices incorrectly sent updates based on a Binary Encoding rather than a Integer Encoding. This works around this problem

UserCode CommandClass

  • ExposeRawUserCodes
    • Bool - True/False
    • Some devices encode the UserCode as a array of Binary Digits, where as the Specification requires a ASCII encoding. If the UserCodes exposed as a String in this class are garbled, then enable this option to also expose a ValueRaw for each UserCode that has a Raw representation of the UserCode

Version CommandClass

  • ClassGetVersionSupported
    • Bool - True/False
    • Some devices have a buggy Version CommandClass. This flag stops OZW from querying the device on the versions of the CommandClass it supports. The versions must then be manually specified in the device Config File.

Wakeup CommandClass

  • DelayNoMoreInfo
    • Integer
    • Delay the Command to put a device back to sleep when we have no other commands to communicate with it. This can help with devices that are slow to respond to certain commands.