Skip to content

Commit 96fc24d

Browse files
su-shankarzr
authored andcommitted
uic: zpc: Pull request #2878: UIC-3404: Added unknown type support to Notification CC
(cherry picked from commit dee77ff5cd87594c24a6b9ed69fca1caf48a5e25) Forwarded: #11 Signed-off-by: Philippe Coval <philippe.coval@silabs.com>
1 parent a932aac commit 96fc24d

File tree

4 files changed

+31
-17
lines changed

4 files changed

+31
-17
lines changed

applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ static sl_status_t zwave_command_class_notification_update_state_event(
230230
notification_event_node
231231
= notification_event_node.child_by_type(ATTRIBUTE(EVENT), 0);
232232
sl_log_info(NOTIFICATION_TAG,
233-
"<zwAlarm Type: %u> State: %u Event: %u",
233+
"<Type: %u> State: %u Event: %u",
234234
notification_type_node.reported<uint8_t>(),
235235
state,
236236
notification_event);
@@ -367,7 +367,11 @@ static sl_status_t zwave_command_class_notification_report_cmd_handler(
367367
sizeof(notification_type),
368368
0);
369369
if (!notification_type_node.is_valid()) {
370-
sl_log_warning(LOG_TAG, "Failed to lookup attribute %d", __LINE__);
370+
// Unknown/Unsupported Type needs to be reported to user
371+
sl_log_info(NOTIFICATION_TAG,
372+
"Unknown Type: %u State/Event: %u",
373+
frame->notificationType,
374+
frame->mevent);
371375
return SL_STATUS_OK;
372376
}
373377

@@ -1108,8 +1112,7 @@ sl_status_t zwave_command_class_notification_init()
11081112
handler.command_class_name = "Notification";
11091113
handler.comments = "Partial Control: <br>"
11101114
"1. No Pull sensor support. <br>"
1111-
"2. Unknown types are not supported. <br>"
1112-
"3. No Regular probing is done. ";
1115+
"2. No Regular probing is done. ";
11131116

11141117
zwave_command_handler_register_handler(handler);
11151118

applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification_helpers.txt

+12-6
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_MAINTENANCE_STATUS 0x6
7777
def NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LOAD_STATUS 0x7
7878
def NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LEVEL_STATUS 0x8
7979
def NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS 0x9
80+
def NOTIFICATION_STATE_POWER_MANAGEMENT_DC_JACK_STATUS 0xa
8081
def NOTIFICATION_STATE_SYSTEM_HW_STATUS 0x0
8182
def NOTIFICATION_STATE_SYSTEM_SW_STATUS 0x1
8283
def NOTIFICATION_STATE_SYSTEM_COVER_STATUS 0x2
@@ -100,11 +101,12 @@ def NOTIFICATION_STATE_HOME_HEALTH_SLEEP_APNEA_STATUS 0x1
100101
def NOTIFICATION_STATE_HOME_HEALTH_SLEEP_STAGE_STATUS 0x2
101102
def NOTIFICATION_STATE_SIREN_SIREN_STATUS 0x0
102103
def NOTIFICATION_STATE_WATER_VALVE_VALVE_OPERATION_STATUS 0x0
103-
def NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_OPERATION_STATUS 0x1
104+
def NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_OPERATION_STATUS 0x1
104105
def NOTIFICATION_STATE_WATER_VALVE_VALVE_SHORT_CIRCUIT_STATUS 0x2
105-
def NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_SHORT_CIRCUIT_STATUS 0x3
106+
def NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_SHORT_CIRCUIT_STATUS 0x3
106107
def NOTIFICATION_STATE_WATER_VALVE_VALVE_CURRENT_ALARM_STATUS 0x4
107-
def NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_CURRENT_ALARM_STATUS 0x5
108+
def NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_CURRENT_ALARM_STATUS 0x5
109+
def NOTIFICATION_STATE_WATER_VALVE_WATER_JAMMED_STATUS 0x6
108110
def NOTIFICATION_STATE_WEATHER_ALARM_RAIN_ALARM_STATUS 0x0
109111
def NOTIFICATION_STATE_WEATHER_ALARM_MOISTURE_ALARM_STATUS 0x1
110112
def NOTIFICATION_STATE_WEATHER_ALARM_FREEZE_ALARM_STATUS 0x2
@@ -202,6 +204,7 @@ def POWER_MANAGEMENT_BATTERY_MAINTENANCE_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICAT
202204
def POWER_MANAGEMENT_BATTERY_LOAD_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_POWER_MANAGEMENT].zwNOTIFICATION_STATE[NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LOAD_STATUS].zwNOTIFICATION_EVENT)
203205
def POWER_MANAGEMENT_BATTERY_LEVEL_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_POWER_MANAGEMENT].zwNOTIFICATION_STATE[NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LEVEL_STATUS].zwNOTIFICATION_EVENT)
204206
def POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_POWER_MANAGEMENT].zwNOTIFICATION_STATE[NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS].zwNOTIFICATION_EVENT)
207+
def POWER_MANAGEMENT_DC_JACK_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_POWER_MANAGEMENT].zwNOTIFICATION_STATE[NOTIFICATION_STATE_POWER_MANAGEMENT_DC_JACK_STATUS].zwNOTIFICATION_EVENT)
205208

206209
// NOTIFICATION_SYSTEM
207210
def SYSTEM_HW_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_SYSTEM].zwNOTIFICATION_STATE[NOTIFICATION_STATE_SYSTEM_HW_STATUS].zwNOTIFICATION_EVENT)
@@ -235,11 +238,12 @@ def SIREN_SIREN_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_SIREN].zwNOTIFICATION
235238

236239
// NOTIFICATION_WATER_VALVE
237240
def WATER_VALVE_VALVE_OPERATION_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_VALVE_OPERATION_STATUS].zwNOTIFICATION_EVENT)
238-
def WATER_VALVE_MASTER_VALVE_OPERATION_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_OPERATION_STATUS].zwNOTIFICATION_EVENT)
241+
def WATER_VALVE_MAIN_VALVE_OPERATION_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_OPERATION_STATUS].zwNOTIFICATION_EVENT)
239242
def WATER_VALVE_VALVE_SHORT_CIRCUIT_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_VALVE_SHORT_CIRCUIT_STATUS].zwNOTIFICATION_EVENT)
240-
def WATER_VALVE_MASTER_VALVE_SHORT_CIRCUIT_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_SHORT_CIRCUIT_STATUS].zwNOTIFICATION_EVENT)
243+
def WATER_VALVE_MAIN_VALVE_SHORT_CIRCUIT_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_SHORT_CIRCUIT_STATUS].zwNOTIFICATION_EVENT)
241244
def WATER_VALVE_VALVE_CURRENT_ALARM_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_VALVE_CURRENT_ALARM_STATUS].zwNOTIFICATION_EVENT)
242-
def WATER_VALVE_MASTER_VALVE_CURRENT_ALARM_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_CURRENT_ALARM_STATUS].zwNOTIFICATION_EVENT)
245+
def WATER_VALVE_MAIN_VALVE_CURRENT_ALARM_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_CURRENT_ALARM_STATUS].zwNOTIFICATION_EVENT)
246+
def WATER_VALVE_WATER_JAMMED_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WATER_VALVE].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WATER_VALVE_WATER_JAMMED_STATUS].zwNOTIFICATION_EVENT)
243247

244248
// NOTIFICATION_WEATHER_ALARM
245249
def WEATHER_ALARM_RAIN_ALARM_STATUS (r'zwNOTIFICATION_TYPE[NOTIFICATION_WEATHER_ALARM].zwNOTIFICATION_STATE[NOTIFICATION_STATE_WEATHER_ALARM_RAIN_ALARM_STATUS].zwNOTIFICATION_EVENT)
@@ -351,6 +355,7 @@ create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x8].ATTRIBUTE_NOTIFICAT
351355
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x8].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x7].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
352356
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x8].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x8].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
353357
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x8].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x9].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
358+
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x8].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0xa].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
354359

355360
// NOTIFICATION_SYSTEM
356361
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x9].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x0].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
@@ -389,6 +394,7 @@ create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0xf].ATTRIBUTE_NOTIFICAT
389394
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0xf].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x3].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
390395
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0xf].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x4].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
391396
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0xf].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x5].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
397+
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0xf].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x6].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")
392398

393399
// NOTIFICATION_WEATHER_ALARM
394400
create_branch("ATTRIBUTE_NOTIFICATION_NOTIFICATION_TYPE[0x10].ATTRIBUTE_NOTIFICATION_NOTIFICATION_STATE[0x0].ATTRIBUTE_NOTIFICATION_NOTIFICATION_EVENT")

applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification_types.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
#define NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LOAD_STATUS (0x7)
100100
#define NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LEVEL_STATUS (0x8)
101101
#define NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS (0x9)
102+
#define NOTIFICATION_STATE_POWER_MANAGEMENT_DC_JACK_STATUS (0xa)
102103
#define NOTIFICATION_STATE_SYSTEM_HW_STATUS (0x0)
103104
#define NOTIFICATION_STATE_SYSTEM_SW_STATUS (0x1)
104105
#define NOTIFICATION_STATE_SYSTEM_COVER_STATUS (0x2)
@@ -122,11 +123,12 @@
122123
#define NOTIFICATION_STATE_HOME_HEALTH_SLEEP_STAGE_STATUS (0x2)
123124
#define NOTIFICATION_STATE_SIREN_SIREN_STATUS (0x0)
124125
#define NOTIFICATION_STATE_WATER_VALVE_VALVE_OPERATION_STATUS (0x0)
125-
#define NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_OPERATION_STATUS (0x1)
126+
#define NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_OPERATION_STATUS (0x1)
126127
#define NOTIFICATION_STATE_WATER_VALVE_VALVE_SHORT_CIRCUIT_STATUS (0x2)
127-
#define NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_SHORT_CIRCUIT_STATUS (0x3)
128+
#define NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_SHORT_CIRCUIT_STATUS (0x3)
128129
#define NOTIFICATION_STATE_WATER_VALVE_VALVE_CURRENT_ALARM_STATUS (0x4)
129-
#define NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_CURRENT_ALARM_STATUS (0x5)
130+
#define NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_CURRENT_ALARM_STATUS (0x5)
131+
#define NOTIFICATION_STATE_WATER_VALVE_WATER_JAMMED_STATUS (0x6)
130132
#define NOTIFICATION_STATE_WEATHER_ALARM_RAIN_ALARM_STATUS (0x0)
131133
#define NOTIFICATION_STATE_WEATHER_ALARM_MOISTURE_ALARM_STATUS (0x1)
132134
#define NOTIFICATION_STATE_WEATHER_ALARM_FREEZE_ALARM_STATUS (0x2)

applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification_types.inc

+7-4
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ static const std::map<unsigned int, std::map<unsigned int, unsigned int>> notifi
8484
{0xe, NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LEVEL_STATUS},
8585
{0xf, NOTIFICATION_STATE_POWER_MANAGEMENT_BATTERY_LEVEL_STATUS},
8686
{0x10, NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS},
87-
{0x12, NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS}}},
87+
{0x12, NOTIFICATION_STATE_POWER_MANAGEMENT_BACKUP_BATTERY_LEVEL_STATUS},
88+
{0x13, NOTIFICATION_STATE_POWER_MANAGEMENT_DC_JACK_STATUS},
89+
{0x14, NOTIFICATION_STATE_POWER_MANAGEMENT_DC_JACK_STATUS}}},
8890
{NOTIFICATION_SYSTEM, {
8991
{0x1, NOTIFICATION_STATE_SYSTEM_HW_STATUS},
9092
{0x3, NOTIFICATION_STATE_SYSTEM_HW_STATUS},
@@ -131,11 +133,12 @@ static const std::map<unsigned int, std::map<unsigned int, unsigned int>> notifi
131133
{0x1, NOTIFICATION_STATE_SIREN_SIREN_STATUS}}},
132134
{NOTIFICATION_WATER_VALVE, {
133135
{0x1, NOTIFICATION_STATE_WATER_VALVE_VALVE_OPERATION_STATUS},
134-
{0x2, NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_OPERATION_STATUS},
136+
{0x2, NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_OPERATION_STATUS},
135137
{0x3, NOTIFICATION_STATE_WATER_VALVE_VALVE_SHORT_CIRCUIT_STATUS},
136-
{0x4, NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_SHORT_CIRCUIT_STATUS},
138+
{0x4, NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_SHORT_CIRCUIT_STATUS},
137139
{0x5, NOTIFICATION_STATE_WATER_VALVE_VALVE_CURRENT_ALARM_STATUS},
138-
{0x6, NOTIFICATION_STATE_WATER_VALVE_MASTER_VALVE_CURRENT_ALARM_STATUS}}},
140+
{0x6, NOTIFICATION_STATE_WATER_VALVE_MAIN_VALVE_CURRENT_ALARM_STATUS},
141+
{0x7, NOTIFICATION_STATE_WATER_VALVE_WATER_JAMMED_STATUS}}},
139142
{NOTIFICATION_WEATHER_ALARM, {
140143
{0x1, NOTIFICATION_STATE_WEATHER_ALARM_RAIN_ALARM_STATUS},
141144
{0x2, NOTIFICATION_STATE_WEATHER_ALARM_MOISTURE_ALARM_STATUS},

0 commit comments

Comments
 (0)