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