Skip to content

Commit 4d6f50d

Browse files
committed
SiliconLabsGH-46: Humidity Control Setpoint CC
ZPC implementation only Forwarded: SiliconLabs#46 Bug-SiliconLabs: UIC-3067 Bug-Github: SiliconLabs#46
1 parent 504476a commit 4d6f50d

8 files changed

+1867
-2
lines changed

applications/zpc/components/zpc_attribute_store/include/attribute_store_defined_attribute_types.h

+35
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,41 @@ DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE_VERSIO
555555
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE_CURRENT_STATE,
556556
((COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE << 8) | 0x02))
557557

558+
/////////////////////////////////////////////////
559+
// Humidity Control Setpoint Command Class
560+
///< This represents the version of the Humidity Control Mode Command class.
561+
/// zwave_cc_version_t
562+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VERSION,
563+
ZWAVE_CC_VERSION_ATTRIBUTE(COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT))
564+
565+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_SUPPORTED_TYPES,
566+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x02))
567+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_TYPE,
568+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x03))
569+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_SUPPORTED_SCALE,
570+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x04))
571+
572+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE,
573+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x05))
574+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE_SCALE,
575+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x06))
576+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE_PRECISION,
577+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x07))
578+
579+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE,
580+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x08))
581+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE_SCALE,
582+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x09))
583+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE_PRECISION,
584+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x0A))
585+
586+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE,
587+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x0B))
588+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE_SCALE,
589+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x0C))
590+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE_PRECISION,
591+
((COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT << 8) | 0x0D))
592+
558593
/////////////////////////////////////////////////
559594
// Inclusion Controller Command Class
560595
///< This represents the version of the Inclusion Controller Command class.

applications/zpc/components/zpc_attribute_store/include/command_class_types/zwave_command_class_humidity_control_types.h

+16
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@ typedef uint8_t humidity_control_supported_modes_t;
4141
///> Humidity Control Operating State. uint8_t
4242
typedef uint8_t humidity_control_operating_state_t;
4343

44+
//>> Humidity Control Setpoint CC
45+
///> Humidity Control Setpoint Supported Types Bitmask. uint8_t
46+
typedef uint8_t humidity_control_setpoint_supported_types_t;
47+
///> Humidity Control Setpoint Supported Scale Bitmask. uint8_t
48+
typedef uint8_t humidity_control_setpoint_supported_scales_t;
49+
///> Humidity Control Setpoint Type. uint8_t
50+
typedef uint8_t humidity_control_setpoint_type_t;
51+
///> Humidity Control Setpoint Value. int32_t
52+
typedef int32_t humidity_control_setpoint_value_t;
53+
///> Humidity Control Setpoint Scale. uint8_t
54+
typedef uint8_t humidity_control_setpoint_scale_t;
55+
///> Humidity Control Setpoint Precision. uint8_t
56+
typedef uint8_t humidity_control_setpoint_precision_t;
57+
///> Humidity Control Setpoint Size. uint8_t
58+
typedef uint8_t humidity_control_setpoint_size_t;
59+
4460
#ifdef __cplusplus
4561
extern "C" {
4662
#endif

applications/zpc/components/zpc_attribute_store/src/zpc_attribute_store_type_registration.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,28 @@ static const std::vector<attribute_schema_t> attribute_schema = {
207207
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE_VERSION, "Humidity Control Operating State Version", ATTRIBUTE_ENDPOINT_ID, U8_STORAGE_TYPE},
208208
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_OPERATING_STATE_CURRENT_STATE, "Humidity Control Operating State Current State", ATTRIBUTE_INDICATOR_INDICATOR_ID, U8_STORAGE_TYPE},
209209

210+
/////////////////////////////////////////////////////////////////////
211+
// Humidity Control Setpoint Command Class attributes
212+
/////////////////////////////////////////////////////////////////////
213+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VERSION, "Humidity Control Setpoint Version", ATTRIBUTE_ENDPOINT_ID, U8_STORAGE_TYPE},
214+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_SUPPORTED_TYPES, "Humidity Control Supported Setpoint Types", ATTRIBUTE_ENDPOINT_ID, U8_STORAGE_TYPE},
215+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_TYPE, "Humidity Control Setpoint Type", ATTRIBUTE_ENDPOINT_ID, U8_STORAGE_TYPE},
216+
217+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_SUPPORTED_SCALE, "Humidity Control Supported Scales", ATTRIBUTE_ENDPOINT_ID, U8_STORAGE_TYPE},
218+
219+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE, "Value", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_TYPE, I32_STORAGE_TYPE},
220+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE_SCALE, "Value Scale", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE, U8_STORAGE_TYPE},
221+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE_PRECISION, "Value Precision", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_VALUE, U8_STORAGE_TYPE},
222+
223+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE, "Min Value", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_TYPE, I32_STORAGE_TYPE},
224+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE_SCALE, "Min Value Scale", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE, U8_STORAGE_TYPE},
225+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE_PRECISION, "Min Value Precision", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MIN_VALUE, U8_STORAGE_TYPE},
226+
227+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE, "Max Value", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_TYPE, I32_STORAGE_TYPE},
228+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE_SCALE, "Max Value Scale", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE, U8_STORAGE_TYPE},
229+
{ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE_PRECISION, "Max Value Precision", ATTRIBUTE_COMMAND_CLASS_HUMIDITY_CONTROL_SETPOINT_MAX_VALUE, U8_STORAGE_TYPE},
230+
231+
210232
/////////////////////////////////////////////////////////////////////
211233
// Meter Command Class attributes
212234
/////////////////////////////////////////////////////////////////////

applications/zpc/components/zwave_command_classes/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ add_library(
2323
src/zwave_command_class_firmware_update.c
2424
src/zwave_command_class_humidity_control_mode.c
2525
src/zwave_command_class_humidity_control_operating_state.c
26+
src/zwave_command_class_humidity_control_setpoint.c
2627
src/zwave_command_class_indicator.c
2728
src/zwave_command_class_indicator_control.cpp
2829
src/zwave_command_class_manufacturer_specific.c

0 commit comments

Comments
 (0)