Notification#

Command Class Notification enables a device to send notifications like "smoke detected" or "window opened".

CC Notification is typically used in sensor applications because it supports many different notification/sensor types.

CC Notification requires at least one notification to be configured by implementing the functions declared in cc_notification_config_api.h. Simplicity Studio / SLC generates this configuration automatically based on user configuration in *.cc_config files.

This command class offers one single API function to be used by the application:

The specification of CC Notification can be found in https://github.com/Z-Wave-Alliance/AWG/blob/main/source/application_command_classes/command_class_definitions/notification_command_class_version_3-8.rst.

Modules#

s_CC_notification_data_t_

_cc_notification_t

Configuration of CC Notification

Storage for CC Notification

Enumerations#

enum
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT = 0xFE
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT = 0xFE
}

General purpose notification event.

enum
NOTIFICATION_TYPE_NONE
NOTIFICATION_TYPE_SMOKE_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_SMOKE_ALARM)
NOTIFICATION_TYPE_CO_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_CO_ALARM)
NOTIFICATION_TYPE_CO2_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_CO2_ALARM)
NOTIFICATION_TYPE_HEAT_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_HEAT_ALARM)
NOTIFICATION_TYPE_WATER_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_WATER_ALARM)
NOTIFICATION_TYPE_ACCESS_CONTROL = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_ACCESS_CONTROL)
NOTIFICATION_TYPE_HOME_SECURITY = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_HOME_SECURITY)
NOTIFICATION_TYPE_POWER_MANAGEMENT = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_POWER_MANAGEMENT)
NOTIFICATION_TYPE_SYSTEM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_SYSTEM)
NOTIFICATION_TYPE_EMERGENCY_ALARM = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_EMERGENCY_ALARM)
NOTIFICATION_TYPE_CLOCK = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_CLOCK)
NOTIFICATION_TYPE_MULTIDEVICE = (0xFF & ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_MULTIDEVICE)
}

Notification type (8 bit).

enum
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT = 0xFE
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT = 0xFE
}

General purpose notification event.

Typedefs#

Struct used to pass operational data to TSE module.

Struct used to pass operational data to TSE module.

Functions#

CC_Notification_TriggerAndTransmit(uint8_t index, uint8_t notificationEvent, uint8_t *pEvPar, uint8_t evParLen, void(*pCallback)(TRANSMISSION_RESULT *pTransmissionResult), bool tse)

Triggers notification event and sends it to dedicated Agi profile.

void

Inits notification module Do not call it directly.

void

Resets notification module Do not call it directly.

handleAppNotificationSet(notification_type_t notificationType, NOTIFICATION_STATUS notificationStatus, uint8_t endpoint)

Application specific Notification Set cmd handler.

uint8_t
cc_notification_supported_notifications_bitmask(uint8_t *pBitMaskArray, uint8_t bBitMaskLen, uint8_t endpoint)

Fills in Bit Mask with supported Notification Types.

uint8_t
cc_notification_supported_events_bitmask(notification_type_t type, uint8_t endpoint, uint8_t *pBitMaskArray)

Fills in Bit Mask with supported events for given notification.

bool
notification_report_get_data(notification_type_t *type, uint8_t endpoint, uint8_t *event, NOTIFICATION_STATUS *status)

Prepares data for Notification Report command as response to Notification Get.

CmdClassNotificationReport(uint8_t notification_index, uint8_t *pEvPar, uint8_t evParLen, void(*pCallback)(TRANSMISSION_RESULT *pTransmissionResult))

Transmits a Notification Report.

void
CC_Notification_report_stx(zaf_tx_options_t *tx_options, void *pData)

Send report via lifeLine when a change happens.

Macros#

#define
NOTIFICATION_BITMASK_ARRAY_LENGTH 32

the maximum length of the notification bitmask array

#define
NOTIFICATION_BITMASK_ARRAY_LENGTH 32

the maximum length of the notification bitmask array

Enumeration Documentation#

NOTIFICATION_EVENT#

NOTIFICATION_EVENT

General purpose notification event.

Enumerator
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT

notification_type_t#

notification_type_t

Notification type (8 bit).

Enumerator
NOTIFICATION_TYPE_NONE
NOTIFICATION_TYPE_SMOKE_ALARM
NOTIFICATION_TYPE_CO_ALARM
NOTIFICATION_TYPE_CO2_ALARM
NOTIFICATION_TYPE_HEAT_ALARM
NOTIFICATION_TYPE_WATER_ALARM
NOTIFICATION_TYPE_ACCESS_CONTROL
NOTIFICATION_TYPE_HOME_SECURITY
NOTIFICATION_TYPE_POWER_MANAGEMENT
NOTIFICATION_TYPE_SYSTEM
NOTIFICATION_TYPE_EMERGENCY_ALARM
NOTIFICATION_TYPE_CLOCK
NOTIFICATION_TYPE_MULTIDEVICE

NOTIFICATION_EVENT#

NOTIFICATION_EVENT

General purpose notification event.

Enumerator
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT
NOTIFICATION_EVENT_NO_EVENT
NOTIFICATION_EVENT_UNKNOWN_EVENT

Typedef Documentation#

s_CC_notification_data_t#

typedef struct s_CC_notification_data_t_ s_CC_notification_data_t

Struct used to pass operational data to TSE module.


s_CC_notification_data_t#

typedef struct s_CC_notification_data_t_ s_CC_notification_data_t

Struct used to pass operational data to TSE module.


notification_event_state#

typedef uint8_t notification_event_state

cc_notification_t#

typedef struct _cc_notification_t cc_notification_t

Function Documentation#

CC_Notification_TriggerAndTransmit#

JOB_STATUS CC_Notification_TriggerAndTransmit (uint8_t index, uint8_t notificationEvent, uint8_t * pEvPar, uint8_t evParLen, void(*)(TRANSMISSION_RESULT *pTransmissionResult) pCallback, bool tse)

Triggers notification event and sends it to dedicated Agi profile.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]index

notification index.

uint8_t[in]notificationEvent

Event triggered.

uint8_t *[in]pEvPar

point to event parameters.

uint8_t[in]evParLen

length of event parameters.

void(*)(TRANSMISSION_RESULT *pTransmissionResult)[out]pCallback

callback function returning state on job

bool[in]tse

True of false, depending if TSE should be triggered, or not

Returns

  • JOB_STATUS


notification_init#

void notification_init ()

Inits notification module Do not call it directly.

Used only by CC_Notification.c


notification_reset#

void notification_reset ()

Resets notification module Do not call it directly.

Used only by CC_Notification.c


handleAppNotificationSet#

e_cmd_handler_return_code_t handleAppNotificationSet (notification_type_t notificationType, NOTIFICATION_STATUS notificationStatus, uint8_t endpoint)

Application specific Notification Set cmd handler.

Parameters
TypeDirectionArgument NameDescription
notification_type_t[in]notificationType

notification type

NOTIFICATION_STATUS[in]notificationStatus

notification status of type NOTIFICATION_STATUS

uint8_t[in]endpoint

is the destination endpoint

Returns

  • command handler return code


cc_notification_supported_notifications_bitmask#

uint8_t cc_notification_supported_notifications_bitmask (uint8_t * pBitMaskArray, uint8_t bBitMaskLen, uint8_t endpoint)

Fills in Bit Mask with supported Notification Types.

Parameters
TypeDirectionArgument NameDescription
uint8_t *[out]pBitMaskArray

The Bit Mask fields describe the supported Notification Type(s) by the device

uint8_t[in]bBitMaskLen

The length of the Bit Mask fields

uint8_t[in]endpoint

is the destination endpoint

Used to prepare data for Notification Supported Report Command as response to Notification Supported Get Command.

Returns

  • Number of Bit Masks fields (1-31) used, in bytes.


cc_notification_supported_events_bitmask#

uint8_t cc_notification_supported_events_bitmask (notification_type_t type, uint8_t endpoint, uint8_t * pBitMaskArray)

Fills in Bit Mask with supported events for given notification.

Parameters
TypeDirectionArgument NameDescription
notification_type_t[in]type

Notification type

uint8_t[in]endpoint

Notification Endpoint

uint8_t *[out]pBitMaskArray

The Bit Mask of supported Events within the requested Notification Type.

Used to prepare data for Event Supported Report Command

Finds notification based on {type, endpoint} values an d creates bitmask with supported events. See Also

  • cc_notification_config.c

Returns

  • Number of Bit Masks fields (1-31) used in bytes


notification_report_get_data#

bool notification_report_get_data (notification_type_t * type, uint8_t endpoint, uint8_t * event, NOTIFICATION_STATUS * status)

Prepares data for Notification Report command as response to Notification Get.

Parameters
TypeDirectionArgument NameDescription
notification_type_t *[inout]type

Notification Type

uint8_t[in]endpoint

Notification endpoint

uint8_t *[inout]event

If specified, current state of notification

NOTIFICATION_STATUS *[out]status

Current Notification status - On/Off

Returns

  • true if notification with {type,endpoint} exists, false if input data wasn't correct


CmdClassNotificationReport#

JOB_STATUS CmdClassNotificationReport (uint8_t notification_index, uint8_t * pEvPar, uint8_t evParLen, void(*)(TRANSMISSION_RESULT *pTransmissionResult) pCallback)

Transmits a Notification Report.

Parameters
TypeDirectionArgument NameDescription
uint8_tN/Anotification_index

index of notification to be reported in notifications array

uint8_t *N/ApEvPar

List of parameters to be reported

uint8_tN/AevParLen

Length of event parameters list

void(*)(TRANSMISSION_RESULT *pTransmissionResult)N/ApCallback

callback function returning state on job

See SDS11060.doc "Table of defined Notification Types & Events". Returns

  • JOB_STATUS


CC_Notification_report_stx#

void CC_Notification_report_stx (zaf_tx_options_t * tx_options, void * pData)

Send report via lifeLine when a change happens.

Parameters
TypeDirectionArgument NameDescription
zaf_tx_options_t *N/Atx_options

txOptions

void *N/ApData

Command payload for the report

Callback used by TSE module. Refer to ZAF_TSE.h for more details.