Thermostat Setpoint
Warning
It has been found that early implementations of this Command Class specification apply two non-interoperable interpretations of the bit mask advertising the support for specific Setpoint Types
ZPC supports by default the “Interpretation A” supported by default in Thermostat Setpoint version 3.
You can switch to “Interpretation B” for a specific device by using .uam quirks and set the reported value of USE_B_INTERPRETATION
to something > 0. (id : 0x430A)
Version supported : 3
Interview process
For all supported types :
Thermostat Setpoint Capabilities Get (version 3 only)
Command Class Commands
Thermostat Setpoint Set
Trigger on new desired value of VALUE
Mapping between attribute store and Set command :
Z-Wave Attribute Store |
Attribute State |
Z-Wave Set Field |
---|---|---|
|
Reported |
|
|
Reported |
|
|
Reported |
|
|
None. |
None. Will be inferred from the |
|
Desired |
|
Note
The structure of the attribute store is :
|__ TYPE
|__ MIN_VALUE
|__ MIN_SCALE
|__ MIN_PRECISION
|__ MAN_VALUE
|__ MAX_SCALE
|__ MAX_PRECISION
|__ VALUE
|__ SCALE
|__ PRECISION
This means we can deduce the Setpoint type from the VALUE
and all other related attributes.
Thermostat Setpoint Get
Trigger on undefined reported value of VALUE
Mapping between attribute store and Get command :
Z-Wave Attribute Store |
Attribute State |
Z-Wave Get Field |
---|---|---|
|
Reported |
|
Note
The structure of the attribute store is :
|__ TYPE
|__ VALUE
This means we can deduce the Setpoint type from the VALUE
and all other related attributes.
Thermostat Setpoint Report
Mapping between Report command and attribute store :
Z-Wave Command Attribute |
Z-Wave Attribute Store |
---|---|
|
Look for an existing reported |
|
|
|
|
|
None. Will be inferred from the |
|
|
Thermostat Setpoint Supported Get
Trigger on undefined reported value of SUPPORTED_SETPOINT_TYPES
Thermostat Setpoint Supported Report
Mapping between Report command and attribute store :
Z-Wave Command Attribute |
Z-Wave Attribute Store |
---|---|
|
|
Note
Bit Mask 1-N will be merged in SUPPORTED_SETPOINT_TYPES
. Max bitmask length currently supported is N=4.
You can increase this value by changing the underlying type of SUPPORTED_SETPOINT_TYPES
(e.g. uint32_t -> uint64_t).
Note
For each supported type, zpc will create an TYPE
attribute that contains the value of the supported type.
|__ SUPPORTED_SETPOINT_TYPES |__ TYPE |__ VALUE |__ TYPE |__ VALUE
Thermostat Setpoint Capabilities Get
Note
Only if version 3 is supported.
Trigger on undefined reported value of MIN_VALUE
Mapping between attribute store and Get command : (optional)
Z-Wave Attribute Store |
Attribute State |
Z-Wave Get Field |
---|---|---|
|
Reported |
|
Note
We only need one binding to either MIN_VALUE
or MAX_VALUE
. This implementation choose to listen to MIN_VALUE
arbitrarily.
Thermostat Setpoint Capabilities Report
Mapping between Report command and attribute store :
Z-Wave Command Attribute |
Z-Wave Attribute Store |
---|---|
|
Look for an existing reported |
|
|
|
|
|
None. Will be inferred from the |
|
|
|
|
|
|
|
None. Will be inferred from the |
|
|
Unify Clusters
UAM files
Z-Wave value can have a precision attribute, while on the UCL side the precision is always 2 in C°.
To handle this we don’t use .uam file and instead we monitor changes on the zwave and ucl side and tries to adapt to one another.
See on_zwave_value_update
and on_ucl_value_update
in the applications/zpc/components/zwave_command_classes/src/zwave_command_class_thermostat_setpoint.cpp
file.
Note
Native cluster (ucl) used : Thermostat.xml
Bindings
Warning
Only Heating and Cooling Setpoint are exposed. Other are available in the attribute store only.
The VALUE
will be converted to precision 2 and in C°. PRECISION
value is not exposed.
Applicable if parent TYPE
is Heating (0x01) :
Z-Wave Attribute Store |
Cluster attribute |
---|---|
|
Thermostat OccupiedHeatingSetpoint |
|
Thermostat MinHeatSetpointLimit |
|
Thermostat MaxHeatSetpointLimit |
Applicable if parent TYPE
is Cooling (0x02) :
Z-Wave Attribute Store |
Cluster attribute |
---|---|
|
Thermostat OccupiedCoolingSetpoint |
|
Thermostat MinCoolSetpointLimit |
|
Thermostat MaxCoolSetpointLimit |
Command actions
Action |
MQTT Topic |
Comments |
---|---|---|
Adjust (raise of lower) a exposed setpoint |
|
|
Change Setpoint value (Heat) |
|
Must be of precision 2 and in °C. ZPC will convert it to the previous received precision and scale. |
Change Setpoint value (Cool) |
|
Must be of precision 2 and in °C. ZPC will convert it to the previous received precision and scale. |