Compile-time options
This section describes the compile-time options that may be enabled in the zcl_options.h file of an application that uses the Simple Metering cluster.
The Simple Metering cluster is enabled by defining CLD_SIMPLE_METERING.
Optional Attributes
The optional attributes for the Simple Metering cluster are enabled/disabled by defining:
For optional attributes from ‘Reading Information’ attribute set:
CLD_SM_ATTR_CURRENT_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_MAX_DEMAND_DELIVERED
CLD_SM_ATTR_CURRENT_MAX_DEMAND_RECEIVED
CLD_SM_ATTR_DFT_SUMMATION
CLD_SM_ATTR_DAILY_FREEZE_TIME
CLD_SM_ATTR_POWER_FACTOR
CLD_SM_ATTR_READING_SNAPSHOT_TIME
CLD_SM_ATTR_CURRENT_MAX_DEMAND_DELIVERED_TIME
CLD_SM_ATTR_CURRENT_MAX_DEMAND_RECEIVED_TIME
For optional attributes from ‘Time-Of-Use (TOU) Information’ attribute set:
CLD_SM_ATTR_CURRENT_TIER_1_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_1_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_TIER_2_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_2_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_TIER_3_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_3_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_TIER_4_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_4_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_TIER_5_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_5_SUMMATION_RECEIVED
CLD_SM_ATTR_CURRENT_TIER_6_SUMMATION_DELIVERED
CLD_SM_ATTR_CURRENT_TIER_6_SUMMATION_RECEIVED
For optional attributes from ‘Block Information’ attribute set:
CLD_SM_ATTR_NO_TIER_BLOCK_CURRENT_SUMMATION_DELIVERED_MAX_COUNT (maximum value of 16)
CLD_SM_ATTR_NUM_OF_TIERS_CURRENT_SUMMATION_DELIVERED
(maximum value of 15)
CLD_SM_ATTR_NUM_OF_BLOCKS_IN_EACH_TIER_CURRENT_SUMMATION_DELIVERED
(maximum value of 16)
For optional attributes from ‘Formatting’ attribute set:
CLD_SM_ATTR_MULTIPLIER
CLD_SM_ATTR_DIVISOR
CLD_SM_ATTR_DEMAND_FORMATING
CLD_SM_ATTR_HISTORICAL_CONSUMPTION_FORMATTING
For optional attributes from ‘ESP Historical Consumption’ attribute set:
CLD_SM_ATTR_INSTANTANEOUS_DEMAND
CLD_SM_ATTR_CURRENT_DAY_CONSUMPTION_DELIVERED
CLD_SM_ATTR_CURRENT_DAY_CONSUMPTION_RECEIVED
CLD_SM_ATTR_PREVIOUS_DAY_CONSUMPTION_DELIVERED
CLD_SM_ATTR_PREVIOUS_DAY_CONSUMPTION_RECEIVED
CLD_SM_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED
CLD_SM_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED
CLD_SM_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED
CLD_SM_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED
For optional attribute from ‘Load Profile’ attribute set:
CLD_SM_ATTR_MAX_NUMBER_OF_PERIODS_DELIVERED
For optional attributes from ‘Supply Limit’ attribute set:
CLD_SM_ATTR_CURRENT_DEMAND_DELIVERED
CLD_SM_ATTR_DEMAND_LIMIT
CLD_SM_ATTR_DEMAND_INTEGRATION_PERIOD
CLD_SM_ATTR_NUMBER_OF_DEMAND_SUBINTERVALS
Mirroring
If the mirroring of metering data is to be enabled (see Section 42.5), the following options must be defined in the zcl_options.h file.
On the Simple Metering server on the Metering Device (which will request and report to a mirror on a mirroring server, such as the ESP), there is no need to define anything.
On the Simple Metering client on the mirroring server, such as the ESP, the mirroring option must be enabled by including:
#define CLD_SM_SUPPORT_MIRROR
In addition, the following defines must be added on the mirroring server (e.g. ESP):
#define CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
(flags support for mirroring via a non-zero value of the u8PhysicalEnvironment attribute of the Basic cluster)
#define CLD_SM_NUMBER_OF_MIRRORS <n>
(sets the maximum number of mirrors supported on the mirroring server to the value n)
#define ZCL_ATTRIBUTE_REPORTING_CLIENT_SUPPORTED
(enables support for attribute reporting clients)
The Simple Metering cluster attributes that are supported by mirroring must be defined on the mirroring server (the same set of attributes are mirrored on all endpoints):
CLD_SM_MIRROR_ATTR_CURRENT_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_MAX_DEMAND_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_MAX_DEMAND_RECEIVED
CLD_SM_MIRROR_ATTR_DFT_SUMMATION
CLD_SM_MIRROR_ATTR_DAILY_FREEZE_TIME
CLD_SM_MIRROR_ATTR_POWER_FACTOR
CLD_SM_MIRROR_ATTR_READING_SNAPSHOT_TIME
CLD_SM_MIRROR_ATTR_CURRENT_MAX_DEMAND_DELIVERED_TIME
CLD_SM_MIRROR_ATTR_CURRENT_MAX_DEMAND_RECEIVED_TIME
CLD_SM_MIRROR_ATTR_CURRENT_TIER_1_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_1_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_2_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_2_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_3_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_3_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_4_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_4_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_5_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_5_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_6_SUMMATION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_TIER_6_SUMMATION_RECEIVED
CLD_SM_MIRROR_ATTR_MULTIPLIER
CLD_SM_MIRROR_ATTR_DIVISOR
CLD_SM_MIRROR_ATTR_DEMAND_FORMATING
CLD_SM_MIRROR_ATTR_HISTORICAL_CONSUMPTION_FORMATTING
CLD_SM_MIRROR_ATTR_INSTANTANEOUS_DEMAND
CLD_SM_MIRROR_ATTR_CURRENT_DAY_CONSUMPTION_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_DAY_CONSUMPTION_RECEIVED
CLD_SM_MIRROR_ATTR_PREVIOUS_DAY_CONSUMPTION_DELIVERED
CLD_SM_MIRROR_ATTR_PREVIOUS_DAY_CONSUMPTION_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED
CLD_SM_MIRROR_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED
CLD_SM_MIRROR_ATTR_MAX_NUMBER_OF_PERIODS_DELIVERED
CLD_SM_MIRROR_ATTR_CURRENT_DEMAND_DELIVERED
CLD_SM_MIRROR_ATTR_DEMAND_LIMIT
CLD_SM_MIRROR_ATTR_DEMAND_INTEGRATION_PERIOD
CLD_SM_MIRROR_ATTR_NUMBER_OF_DEMAND_SUBINTERVALS
The Basic cluster attributes that are supported by mirroring must also be defined on the mirroring server (the same set of attributes are mirrored on all endpoints), from the following:
CLD_BAS_MIRROR_ATTR_APPLICATION_VERSION
CLD_BAS_MIRROR_ATTR_STACK_VERSION
CLD_BAS_MIRROR_ATTR_HARDWARE_VERSION
CLD_BAS_MIRROR_ATTR_MANUFACTURER_NAME
CLD_BAS_MIRROR_ATTR_MODEL_IDENTIFIER
CLD_BAS_MIRROR_ATTR_DATE_CODE
CLD_BAS_MIRROR_ATTR_LOCATION_DESCRIPTION
CLD_BAS_MIRROR_ATTR_PHYSICAL_ENVIRONMENT
CLD_BAS_MIRROR_ATTR_DEVICE_ENABLED
CLD_BAS_MIRROR_ATTR_ALARM_MASK
CLD_BAS_MIRROR_ATTR_DISABLE_LOCAL_CONFIG
Get Profile
If the ‘Get Profile’ feature is to be used (see Section 42.6), the following options must be defined in the zcl_options.h file.
The ‘Get Profile’ option must be enabled on the server and clients by including:
#define CLD_SM_SUPPORT_GET_PROFILE
Then, the following must be included on the server (only):
#ifdef CLD_SM_SUPPORT_GET_PROFILE
#define CLD_SM_GETPROFILE_MAX_NO_INTERVALS <n>
#endif
where <n> is the maximum number of consumption intervals to be held on the server (and therefore determines the amount of memory to be reserved for the circular buffer that is used to store the data for these consumption intervals).
Parent topic:Simple Metering Cluster