1595 lines
66 KiB
C
1595 lines
66 KiB
C
/*
|
|
* Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA
|
|
* Copyright (c) 2021-2022 Espressif Systems (Shanghai) PTE LTD
|
|
* All rights reserved.
|
|
*
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
* are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form, except as embedded into a Espressif Systems
|
|
* integrated circuit in a product or a software update for such product,
|
|
* must reproduce the above copyright notice, this list of conditions and
|
|
* the following disclaimer in the documentation and/or other materials
|
|
* provided with the distribution.
|
|
*
|
|
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
*
|
|
* 4. Any software provided in binary form under this license must not be reverse
|
|
* engineered, decompiled, modified and/or disassembled.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
/* PURPOSE: Prepayment cluster definitions
|
|
*/
|
|
|
|
#ifndef ZB_ZCL_PREPAYMENT_H_
|
|
#define ZB_ZCL_PREPAYMENT_H_
|
|
|
|
#include "zboss_api_core.h" /* ZBOSS core API types */
|
|
|
|
/** @cond DOXYGEN_ZCL_SECTION && DOXYGEN_SE_SECTION */
|
|
|
|
/** @addtogroup ZB_ZCL_PREPAYMENT
|
|
* @{
|
|
* @details
|
|
* The Prepayment Cluster provides the facility to pass messages relating to
|
|
* the accounting functionality of a meter between devices on the HAN. It allows
|
|
* for the implementation of a system conforming to the set of standards relating
|
|
* to Payment Electricity Meters (IEC 62055) and also for the case where the
|
|
* accounting function is remote from the meter. Prepayment issued in situations
|
|
* where the supply of a service may be interrupted or enabled under the control
|
|
* of the meter or system in relation to a payment tariff. The accounting
|
|
* process may be within the meter or elsewhere in the system. The amount of
|
|
* available credit is decremented as the service is consumed and is incremented
|
|
* through payments made by the consumer. Such a system allows the consumer
|
|
* to better manage their energy consumption and reduces the risk of bad debt
|
|
* owing to the supplier.
|
|
*/
|
|
|
|
|
|
/** @defgroup ZB_ZCL_PREPAYMENT_ATTRS Prepayment cluster attributes
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Default value for Prepayment cluster revision global attribute */
|
|
#define ZB_ZCL_PREPAYMENT_CLUSTER_REVISION_DEFAULT ((zb_uint16_t)0x0001u)
|
|
|
|
/** Prepayment Server Attribute Sets
|
|
* @see SE spec, subclause 7.2.2
|
|
*/
|
|
typedef enum zb_zcl_prepayment_attr_sets_e
|
|
{
|
|
/** The following set of attributes provides access to the standard information
|
|
* relating to a Prepayment meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SET_PREPAYMENT_INFORMATION = 0x00,
|
|
|
|
/** The following set of attributes provides access to previous successful
|
|
* credit top-ups on a prepayment meter. #1 is the most recent, based on
|
|
* time.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SET_TOP_UP,
|
|
|
|
/** This set of attributes provides access to information on debt held on a
|
|
* Prepayment meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SET_DEBT,
|
|
|
|
/** The following set of attributes provides a means to control which
|
|
* prepayment alarms may be generated from the meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SET_ALARM = 0x04,
|
|
|
|
/** Historical Cost Consumption Information Attribute Set */
|
|
ZB_ZCL_PREPAYMENT_SET_HISTORICAL_COST_CONSUMPTION_INFORMATION,
|
|
} zb_zcl_prepayment_attr_sets_t;
|
|
|
|
|
|
/** The Prepayment Information Attribute Set provides access to the
|
|
* standard information relating to a Prepayment meter.
|
|
* @see SE spec, subclause 7.2.2.1
|
|
*/
|
|
typedef enum zb_zcl_prepayment_prepayment_information_attr_set_e
|
|
{
|
|
|
|
/** The PaymentControlConfiguration attribute represents the payment mechanisms
|
|
* currently enabled within the Metering Device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PAYMENT_CONTROL_CONFIGURATION = 0x0000, /* (M) */
|
|
|
|
/** The Credit Remaining attribute represents the amount of credit remaining
|
|
* on the Metering Device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CREDIT_REMAINING, /* (O) */
|
|
|
|
/** The Emergency Credit Remaining attribute represents the amount of
|
|
* Emergency Credit still available on the Metering Device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_EMERGENCY_CREDIT_REMAINING, /* (O) */
|
|
|
|
/** The Credit Status attribute represents the current status of credit within
|
|
* the Metering Device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CREDIT_STATUS, /* (O) */
|
|
|
|
/** The UTC time at which the Credit Remaining attribute was last populated. */
|
|
ZB_ZCL_ATTR_PREPAYMENT_CREDIT_REMAINING_TIMESTAMP, /* (O) */
|
|
|
|
/** The AccumulatedDebt attribute represents the total amount of debt remaining
|
|
* on the Metering Device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_ACCUMULATED_DEBT, /* (O) */
|
|
|
|
/** The OverallDebtCap attribute represents the total amount of debt that can
|
|
* be taken from top-ups (in the case of multiple instantiated top-up based debts
|
|
* on the Metering Device).
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_OVERALL_DEBT_CAP, /* (O) */
|
|
|
|
/** The EmergencyCreditLimit/Allowance attribute may be updated by the utility
|
|
* company. This is the amount of Emergency Credit available to loan to the
|
|
* consumer when the remaining balance goes below the low credit threshold.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_EMERGENCY_CREDIT_LIMIT = 0x0010, /* (O) */
|
|
|
|
/** When credit (or emergency credit) falls below this threshold, an alarm is
|
|
* raised to warn the consumer of imminent supply interruption and, if available,
|
|
* to offer Emergency Credit.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_EMERGENCY_CREDIT_THRESHOLD, /* (O) */
|
|
|
|
/** An unsigned 48-bit integer value indicating running total of credit topped
|
|
* up to date.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOTAL_CREDIT_ADDED = 0x0020, /* (O) */
|
|
|
|
/** An unsigned 32-bit integer value indicating the maximum credit balance
|
|
* allowed on a meter.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_MAX_CREDIT_LIMIT, /* (O) */
|
|
|
|
/** An unsigned 32-bit integer value indicating the maximum credit per top-up.
|
|
* Any single top-up greater than this threshold will cause the meter to reject
|
|
* the top-up
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_MAX_CREDIT_PER_TOP_UP, /* (O) */
|
|
|
|
/** An unsigned 8-bit integer value indicating the amount of time, in minutes,
|
|
* before the Friendly Credit Period End Warning alarm flag is triggered.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_FRIENDLY_CREDIT_WARNING = 0x0030, /* (O) */
|
|
|
|
/** An unsigned 32-bit integer that defines the utility low credit value below
|
|
* which the Low Credit warning should sound.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_LOW_CREDIT_WARNING, /* (O) */
|
|
|
|
/** An unsigned 32-bit integer that is defined by the consumer for a low credit
|
|
* value below which a Low Credit warning should sound.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_IHD_LOW_CREDIT_WARNING, /* (O) */
|
|
|
|
/** When the end of a configured non-disconnect period is reached and the
|
|
* supply is to be interrupted due to insufficient credit being available,
|
|
* the meter will provide visual and audible alerts and the interruption will be
|
|
* suspended for a further period of minutes defined by this attribute.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_INTERRUPT_SUSPEND_TIME, /* (O) */
|
|
|
|
/** An unsigned 16-bit integer value indicating the amount of time remaining,
|
|
* in minutes, in a currently active Friendly Credit period.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_REMAINING_FRIENDLY_CREDIT_TIMES, /* (O) */
|
|
|
|
/** The UTC time at which the next Friendly Credit period is due to commence. */
|
|
ZB_ZCL_ATTR_PREPAYMENT_NEXT_FRIENDLY_CREDIT_PERIOD, /* (O) */
|
|
|
|
/** This attribute is a signed 32-bit integer that shall either be zero or a
|
|
* negative value (in all known cases).
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CUT_OFF_VALUE = 0x0040, /* (O) */
|
|
|
|
/** The TokenCarrierId attribute provides a method for utilities to publish the
|
|
* payment card number that is used with this meter set.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOKEN_CARRIER_ID = 0x0080, /* (O) */
|
|
} zb_zcl_prepayment_prepayment_information_attr_set_t;
|
|
|
|
/** @endcond */ /* DOXYGEN_ZCL_SECTION && DOXYGEN_SE_SECTION */
|
|
/** @cond internals_doc */
|
|
#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_PREPAYMENT_PAYMENT_CONTROL_CONFIGURATION(data_ptr) \
|
|
{ \
|
|
ZB_ZCL_ATTR_PREPAYMENT_PAYMENT_CONTROL_CONFIGURATION, \
|
|
ZB_ZCL_ATTR_TYPE_16BITMAP, \
|
|
ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
|
|
(ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
|
|
(void*) data_ptr \
|
|
}
|
|
/** @endcond */ /* internals_doc */
|
|
/** @cond DOXYGEN_ZCL_SECTION && DOXYGEN_SE_SECTION */
|
|
|
|
/** @brief Declare attribute list for Prepayment cluster
|
|
@param attr_list - attribute list name
|
|
@param payment_control_configuration - pointer to variable to store Payment Control Configuration attribute value
|
|
*/
|
|
#define ZB_ZCL_DECLARE_PREPAYMENT_ATTRIB_LIST(attr_list, payment_control_configuration) \
|
|
ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_PREPAYMENT) \
|
|
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_PREPAYMENT_PAYMENT_CONTROL_CONFIGURATION, (payment_control_configuration)) \
|
|
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
|
|
|
|
/**
|
|
* @brief Prepayment cluster Mandatory attributes
|
|
*/
|
|
typedef struct zb_zcl_prepayment_attrs_s
|
|
{
|
|
/** @see ZB_ZCL_PREPAYMENT_PAYMENT_CONTROL_CONFIGURATION
|
|
*/
|
|
zb_uint16_t payment_control_configuration;
|
|
} zb_zcl_prepayment_attrs_t;
|
|
|
|
/** Declare attribute list for Prepayment cluster
|
|
* @param[in] attr_list - attribute list variable name
|
|
* @param[in] attrs - variable of @ref zb_zcl_prepayment_attrs_t type (containing Prepaylent cluster attributes)
|
|
*/
|
|
#define ZB_ZCL_DECLARE_PREPAYMENT_ATTR_LIST(attr_list, attrs) \
|
|
ZB_ZCL_DECLARE_PREPAYMENT_ATTRIB_LIST(attr_list, &attrs.payment_control_configuration)
|
|
|
|
|
|
/** The PaymentControlConfiguration attribute represents the payment mechanisms
|
|
* currently enabled within the Metering Device.
|
|
* @see SE spec, Table D-130
|
|
*/
|
|
typedef enum zb_zcl_prepayment_payment_control_configuration_attr_e
|
|
{
|
|
|
|
/** Indicates whether the metering device is to disconnect the energy supply on
|
|
* expiry of available credit.
|
|
*/
|
|
PREPAYMENT_DISCONNECTION_ENABLED = 1 << 0,
|
|
|
|
/** Indicates if the meter is a prepayment meter; if this value is 0,
|
|
* the meter is considered to be a credit meter.
|
|
*/
|
|
PREPAYMENT_PREPAYMENT_ENABLED = 1 << 1,
|
|
|
|
/** Indicates whether the metering device should manage accounting functionality
|
|
* according to available tariff information.
|
|
*/
|
|
PREPAYMENT_CREDIT_MANAGEMENT_ENABLED = 1 << 2,
|
|
|
|
/** Indicates whether the metering device should display the credit status. */
|
|
PREPAYMENT_CREDIT_DISPLAY_ENABLED = 1 << 4,
|
|
|
|
/** Indicates whether the metering device is running in Monetary (0) or
|
|
* Unit based (1) units.
|
|
*/
|
|
PREPAYMENT_ACCOUNT_BASE = 1 << 5,
|
|
|
|
/** Indicates whether the metering device is fitted with a Contactor
|
|
* i.e. is capable if disconnecting the energy supply.
|
|
*/
|
|
PREPAYMENT_CONTACTOR_FITTED = 1 << 7,
|
|
|
|
/** Indicates whether the standing charge collection is halted when the prepaid
|
|
* credit is exhausted.
|
|
*/
|
|
PREPAYMENT_STANDING_CHARGE_CONFIGURATION = 1 << 8,
|
|
|
|
/** Indicates whether the standing charge collection is halted when the device
|
|
* is in Emergency Credit mode.
|
|
*/
|
|
PREPAYMENT_EMERGENCY_STANDING_CHARGE_CONFIGURATION = 1 << 9,
|
|
|
|
/** Indicates whether the debt collection is halted when the prepaid credit is
|
|
* exhausted.
|
|
*/
|
|
PREPAYMENT_DEBT_CONFIGURATION = 1 << 10,
|
|
|
|
/** Indicates whether the debt is collected when the device is in Emergency
|
|
* Credit mode.
|
|
*/
|
|
PREPAYMENT_EMERGENCY_DEBT_CONFIGURATION = 1 << 11,
|
|
} zb_zcl_prepayment_payment_control_configuration_attr_t;
|
|
|
|
|
|
/** The Credit Status attribute represents the current status of credit within
|
|
* the Metering Device.
|
|
* @see SE spec, Table D-131
|
|
*/
|
|
typedef enum zb_zcl_prepayment_credit_status_attr_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_CREDIT_OK = 1 << 0, /**< Credit Ok */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_LOW_CREDIT = 1 << 1, /**< Low Credit */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED = 1 << 2, /**< Emergency Credit Enabled */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE = 1 << 3, /**< Emergency Credit Available */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED = 1 << 4, /**< Emergency Credit Selected */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE = 1 << 5, /**< Emergency Credit In Use */
|
|
ZB_ZCL_PREPAYMENT_CREDIT_STATUS_CREDIT_EXHAUSTED = 1 << 6, /**< Credit Exhausted */
|
|
} zb_zcl_prepayment_credit_status_attr_t;
|
|
|
|
|
|
/** The Top-up Attribute Set provides access to previous successful
|
|
* credit top-ups on a prepayment meter. #1 is the most recent, based on time.
|
|
* @see SE spec, subclause 7.2.2.2
|
|
*/
|
|
typedef enum zb_zcl_prepayment_top_up_attr_set_e
|
|
{
|
|
/** The Top up Date/Time attribute represents the time that the credit was
|
|
* topped up on the Metering Device. There are five records containing this
|
|
* attribute, one for each of the last five top-ups.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_DATE_1 = 0x0100, /* (O) */
|
|
|
|
/** The Top up Amount attribute represents the amount of credit that was added
|
|
* to the Metering Device during the top up.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_AMOUNT_1, /* (O) */
|
|
|
|
/** The Originating Device attribute represents the SE device that was the
|
|
* source of the top-up command.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_ORIGINATING_DEVICE_1, /* (O) */
|
|
|
|
/** The Top up Code attribute represents any encrypted number that was used to
|
|
* apply the credit to the meter; the octet string shall be as it was received,
|
|
* i.e. not decoded.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_CODE_1, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_DATE_2 = 0x0110, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_AMOUNT_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_ORIGINATING_DEVICE_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_CODE_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_DATE_3 = 0x0120, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_AMOUNT_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_ORIGINATING_DEVICE_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_CODE_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_DATE_4 = 0x0130, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_AMOUNT_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_ORIGINATING_DEVICE_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_CODE_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_DATE_5 = 0x0140, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_AMOUNT_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_ORIGINATING_DEVICE_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_TOP_UP_TOP_UP_CODE_5, /* (O) */
|
|
} zb_zcl_prepayment_top_up_attr_set_t;
|
|
|
|
/** Debt Attribute Set provides access to information on debt held on a
|
|
* Prepayment meter.
|
|
* @see SE spec, subclause 7.2.2.3
|
|
*/
|
|
typedef enum zb_zcl_prepayment_debt_attr_set_e
|
|
{
|
|
/** The DebtLabel#n attribute provides a method for utilities to assign a name
|
|
* to a particular type of debt. The DebtLabel#n attribute is a ZCL Octet String
|
|
* field capable of storing a 12 character string (the first Octet indicates length)
|
|
* encoded in the UTF-8 format.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_LABEL_1 = 0x0210, /* (O) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of Debt remaining on the
|
|
* Metering Device. This parameter shall be measured in base unit of Currency
|
|
* with the decimal point located as indicated by the Trailing Digits field,
|
|
* as defined in the Price Cluster.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_AMOUNT_1, /* (O) */
|
|
|
|
/** An enumerated attribute denoting the debt recovery method used
|
|
* for this debt type
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_METHOD_1, /* (O) */
|
|
|
|
/** A UTC Time field to denote the time at which the debt collection should
|
|
* start. This applies to all debt recovery methods.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_START_TIME_1, /* (O) */
|
|
|
|
/** An unsigned 16-bit field denoting the time of day when the debt collection
|
|
* takes place.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_COLLECTION_TIME_1, /* (O) */
|
|
|
|
/** The DebtRecoveryFrequency#N attribute represents the period over which each
|
|
* DebtRecoveryAmount#N is recovered.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_FREQUENCY_1 = 0x0216, /* (O) */
|
|
|
|
/** The DebtRecoveryAmount#N attribute represents the amount of Debt recovered
|
|
* each period specified by DebtRecoveryFrequency#N, measured in base unit of
|
|
* Currency with the decimal point located as indicated by the Trailing Digits
|
|
* field, as defined in the Price Cluster.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_AMOUNT_1, /* (O) */
|
|
|
|
/** An unsigned 16-bit field used in Percentage based recovery to denote the
|
|
* percentage from a top- up amount to be deducted from the debt.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1 = 0x0219, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_LABEL_2 = 0x0220, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_AMOUNT_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_METHOD_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_START_TIME_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_COLLECTION_TIME_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_FREQUENCY_2 = 0x0226, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_AMOUNT_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2 = 0x0229, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_LABEL_3 = 0x0230, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_AMOUNT_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_METHOD_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_START_TIME_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_COLLECTION_TIME_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_FREQUENCY_3 =0x0236, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_AMOUNT_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3 = 0x0239, /* (O) */
|
|
} zb_zcl_prepayment_debt_attr_set_t;
|
|
|
|
/** Debt Recovery Method Enumerations
|
|
* @see SE spec, Table D-135
|
|
*/
|
|
typedef enum zb_zcl_prepayment_debt_recovery_method_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_TIME_BASED = 0x00, /**< Time based */
|
|
ZB_ZCL_PREPAYMENT_PERCENTAGE_BASED, /**< Percentage based */
|
|
ZB_ZCL_PREPAYMENT_CATCH_UP_BASED /**< Catch UP based */
|
|
} zb_zcl_prepayment_debt_recovery_method_t;
|
|
|
|
|
|
/** Recovery Frequency Field Enumerations
|
|
* @see SE spec, Table D-136
|
|
*/
|
|
typedef enum zb_zcl_prepayment_recovery_frequency_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_PER_HOUR = 0x00, /**< Per Hour */
|
|
ZB_ZCL_PREPAYMENT_PER_DAY, /**< Per Day */
|
|
ZB_ZCL_PREPAYMENT_PER_WEEK, /**< Per Week */
|
|
ZB_ZCL_PREPAYMENT_PER_MONTH, /**< Per Month */
|
|
ZB_ZCL_PREPAYMENT_PER_QUARTER /**< Per Quarter */
|
|
} zb_zcl_prepayment_recovery_frequency_t;
|
|
|
|
|
|
/** The Alarms Attribute Set provides a means to control which prepayment alarms
|
|
* may be generated from the meter.
|
|
* @see SE spec, subclause 7.2.2.5
|
|
*/
|
|
typedef enum zb_zcl_prepayment_alarms_attr_set_e
|
|
{
|
|
|
|
/** The PrepaymentAlarmStatus attribute provides indicators reflecting the current
|
|
* error conditions found by the prepayment metering device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREPAYMENT_ALARM_STATUS = 0x0400, /* (O) */
|
|
|
|
/** The Alarm Mask attributes of the Alarms Attribute Set specify whether each
|
|
* of the alarms listed in the corresponding alarm group in Table D-139 through
|
|
* Table D-142 is enabled.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREPAY_GENERIC_ALARM_MASK, /* (O) */
|
|
|
|
/** */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREPAY_SWITCH_ALARM_MASK, /* (O) */
|
|
|
|
/** */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREPAY_EVENT_ALARM_MASK /* (O) */
|
|
} zb_zcl_prepayment_alarms_attr_set_t;
|
|
|
|
|
|
/** Prepayment Alarm Status Indicators
|
|
* @see SE spec, Table D-138
|
|
*/
|
|
typedef enum zb_zcl_prepayment_prepayment_alarm_status_indicators_e
|
|
{
|
|
|
|
/** An alarm triggered by a configured threshold. */
|
|
ZB_ZCL_PREPAYMENT_ALARM_LOW_CREDIT_WARNING = 1 << 0,
|
|
|
|
/** The Top up code has been sent but it is too long or short for the meter */
|
|
ZB_ZCL_PREPAYMENT_ALARM_TOP_UP_CODE_ERROR = 1 << 1,
|
|
|
|
/** The Top up code has been sent but the credit value for this top up code
|
|
* has already been applied and this is a duplicate request.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_TOP_UP_CODE_ALREADY_USED = 1 << 2,
|
|
|
|
/** The Top up code is a correct length but is not a valid top up code. */
|
|
ZB_ZCL_PREPAYMENT_ALARM_TOP_UP_CODE_INVALID = 1 << 3,
|
|
|
|
/** The meter is in a Friendly Credit period and Friendly Credit is being used
|
|
* due to no actual credit being available on the meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_FRIENDLY_CREDIT_IN_USE = 1 << 4,
|
|
|
|
/** This is triggered when the time remaining in a Friendly Credit period
|
|
* falls below the value of the FriendlyCreditWarning attribute (default 1hr)
|
|
* and the above Friendly Credit In Use flag is set.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_FRIENDLY_CREDIT_PERIOD_END_WARNING = 1 << 5,
|
|
|
|
/** An alarm triggered when Emergency credit is available to be selected */
|
|
ZB_ZCL_PREPAYMENT_ALARM_EC_AVAILABLE = 1 << 6,
|
|
|
|
/** GAS: Valve Fault and unauthorised gas is being provided to the home
|
|
* ELECTRICITY: Disconnection Fault and unauthorised electricity is
|
|
* being provided to the house.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_UNAUTHORISED_ENERGY_USE = 1 << 7,
|
|
|
|
/** Supply has been disconnected due to no credit on meter. Cleared by
|
|
* addition of credit or by selecting Emergency Credit
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_DISCONNECTED_SUPPLY_DUE_TO_CREDIT = 1 << 8,
|
|
|
|
/** Supply has been disconnected due to a tamper detect on the meter. It can
|
|
* also be due to a fault on the meter that is not covered by another flag.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_ALARM_DISCONNECTED_SUPPLY_DUE_TO_TAMPER = 1 << 9,
|
|
|
|
/** This is normally due to the HES cutting the supply */
|
|
ZB_ZCL_PREPAYMENT_ALARM_DISCONNECTED_SUPPLY_DUE_TO_HES = 1 << 10,
|
|
|
|
/** Physical attack on the Prepayment Meter */
|
|
ZB_ZCL_PREPAYMENT_ALARM_PHYSICAL_ATTACK = 1 << 11,
|
|
|
|
/** Electronic attack on the Prepayment Meter */
|
|
ZB_ZCL_PREPAYMENT_ALARM_ELECTRONIC_ATTACK = 1 << 12,
|
|
|
|
/** Manufacture Alarm Code A */
|
|
ZB_ZCL_PREPAYMENT_ALARM_MANUFACTURE_ALARM_CODE_A = 1 << 13,
|
|
|
|
/** Manufacture Alarm Code B */
|
|
ZB_ZCL_PREPAYMENT_ALARM_MANUFACTURE_ALARM_CODE_B = 1 << 14
|
|
} zb_zcl_prepayment_prepayment_alarm_status_indicators_t;
|
|
|
|
|
|
/** PrepayGenericAlarmGroup
|
|
* @see SE spec, Table D-140
|
|
*/
|
|
typedef enum zb_zcl_prepayment_prepay_generic_alarm_group_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_GROUP_LOW_CREDIT = 0x00,
|
|
ZB_ZCL_PREPAYMENT_GROUP_NO_CREDIT,
|
|
ZB_ZCL_PREPAYMENT_GROUP_CREDIT_EXHAUSTED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_EMERGENCY_CREDIT_ENABLED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_EMERGENCY_CREDIT_EXHAUSTED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_IHD_LOW_CREDIT_WARNING,
|
|
ZB_ZCL_PREPAYMENT_GROUP_EVENT_LOG_CLEARED
|
|
} zb_zcl_prepayment_prepay_generic_alarm_group_t;
|
|
|
|
|
|
/** PrepaySwitchAlarmGroup
|
|
* @see SE spec, Table D-141
|
|
*/
|
|
typedef enum zb_zcl_prepayment_prepay_switch_alarm_group_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_GROUP_SUPPLY_ON = 0x10,
|
|
ZB_ZCL_PREPAYMENT_GROUP_SUPPLY_ARM,
|
|
ZB_ZCL_PREPAYMENT_GROUP_SUPPLY_OFF,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DISCONNECTION_FAILURE,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DISCONNECTION_TAMPER_DETECTED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DISCONNECTED_DUE_TO_CUT_OFF_VALUE,
|
|
ZB_ZCL_PREPAYMENT_GROUP_REMOTE_DISCONNECTED
|
|
} zb_zcl_prepayment_prepay_switch_alarm_group_t;
|
|
|
|
|
|
/** PrepayEventAlarmGroup
|
|
* @see SE spec, Table D-142
|
|
*/
|
|
typedef enum zb_zcl_prepayment_prepay_event_alarm_group_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_GROUP_PHYSICAL_ATTACK_ON_PREPAY_METER = 0x20,
|
|
ZB_ZCL_PREPAYMENT_GROUP_ELECTRONIC_ATTACK_ON_PREPAY_METER,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DISCOUNT_APPLIED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_CREDIT_ADJUSTMENT,
|
|
ZB_ZCL_PREPAYMENT_GROUP_CREDIT_ADJUSTMENT_FAIL,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DEBT_ADJUSTMENT,
|
|
ZB_ZCL_PREPAYMENT_GROUP_DEBT_ADJUSTMENT_FAIL,
|
|
ZB_ZCL_PREPAYMENT_GROUP_MODE_CHANGE,
|
|
ZB_ZCL_PREPAYMENT_GROUP_TOP_UP_CODE_ERROR,
|
|
ZB_ZCL_PREPAYMENT_GROUP_TOP_UP_ALREADY_USED,
|
|
ZB_ZCL_PREPAYMENT_GROUP_TOP_UP_CODE_INVALID,
|
|
ZB_ZCL_PREPAYMENT_GROUP_FRIENDLY_CREDIT_IN_USE,
|
|
ZB_ZCL_PREPAYMENT_GROUP_FRIENDLY_CREDIT_PERIOD_END_WARNING,
|
|
ZB_ZCL_PREPAYMENT_GROUP_FRIENDLY_CREDIT_PERIOD_END,
|
|
ZB_ZCL_PREPAYMENT_GROUP_ERROR_REG_CLEAR = 0x30,
|
|
ZB_ZCL_PREPAYMENT_GROUP_ALARM_REG_CLEAR,
|
|
ZB_ZCL_PREPAYMENT_GROUP_PREPAY_CLUSTER_NOT_FOUND,
|
|
ZB_ZCL_PREPAYMENT_GROUP_MODE_CREDIT_2_PREPAY = 0x41,
|
|
ZB_ZCL_PREPAYMENT_GROUP_MODE_PREPAY_2_CREDIT,
|
|
ZB_ZCL_PREPAYMENT_GROUP_MODE_DEFAULT
|
|
} zb_zcl_prepayment_prepay_event_alarm_group_t;
|
|
|
|
|
|
/** Historical Cost Consumption Information Set
|
|
* @see SE spec, subclause 7.2.2.6
|
|
*/
|
|
typedef enum zb_zcl_prepayment_historical_cost_consumption_information_set_e
|
|
{
|
|
/** HistoricalCostConsumptionFormatting provides a method to properly decipher
|
|
* the decimal point location for the values found in the Historical Cost
|
|
* Consumption Set of attributes
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_HISTORICAL_COST_CONSUMPTION_FORMATING = 0x0500, /* (O) */
|
|
|
|
/** ConsumptionUnitOfMeasurement provides a label for the Energy, Gas, or Water
|
|
* being measured by the metering device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CONSUMPTION_UNIT_OF_MEASUREMENT, /* (O) */
|
|
|
|
/** CurrencyScalingFactor provides a scaling factor for the Currency attribute
|
|
* for the Energy, Gas, or Water being measured by the metering device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENCY_SCALING_FACTOR, /* (O) */
|
|
|
|
/** The Currency attribute provides the currency for the Energy, Gas, or Water
|
|
* being measured by the prepayment device.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENCY, /* (O) */
|
|
|
|
/** It represents the summed value of Energy, Gas, or Water delivered to the
|
|
* premises since the HFT.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_DAY_COST_CONSUMPTION_DELIVERED = 0x051C, /* (O) */
|
|
|
|
/** represents the summed value of Energy, Gas, or Water received from the
|
|
* premises since the HFT.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_DAY_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
|
|
/** PreviousDayNCostConsumptionDelivered represents the summed value of Energy,
|
|
* Gas, or Water delivered to the premises within the previous 24 hour period
|
|
* starting at the HFT.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED, /* (O) */
|
|
|
|
/** PreviousDayNCostConsumptionReceived represents the summed value of Energy,
|
|
* Gas, or Water received from the premises within the previous 24 hour period
|
|
* starting at the HFT.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_6, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_6, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_7, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_7, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_8, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_8, /* (O) */
|
|
|
|
/** CurrentWeekCostConsumptionDelivered represents the summed value of Energy,
|
|
* Gas, or Water delivered to the premises since the HFT on Monday to the
|
|
* last HFT read.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED = 0x0530, /* (O) */
|
|
|
|
/** CurrentWeekCostConsumptionReceived represents the summed value of Energy,
|
|
* Gas, or Water received from the premises since the HFT on Monday to the
|
|
* last HFT read. */
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
|
|
/** PreviousWeekNCostConsumptionDelivered represents the summed value of
|
|
* Energy, Gas, or Water delivered to the premises within the previous week
|
|
* period starting at the HFT on the Monday to the Sunday.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED, /* (O) */
|
|
|
|
/** PreviousWeekNCostConsumptionReceived represents the summed value of Energy,
|
|
* Gas, or Water received from the premises within the previous week period
|
|
* starting at the HFT on the Monday to the Sunday
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_5, /* (O) */
|
|
|
|
/** CurrentMonthCostConsumptionDelivered represents the summed value of Energy,
|
|
* Gas, or Water delivered to the premises since the HFT on the 1 st of the
|
|
* month to the last HFT read.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED = 0x0540, /* (O) */
|
|
|
|
/** CurrentMonthCostConsumptionReceived represents the summed value of Energy,
|
|
* Gas, or Water received from the premises since the HFT on the 1 st of the
|
|
* month to the last HFT read.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
|
|
/** PreviousMonthNCostConsumptionDelivered represents the summed value of
|
|
* Energy, Gas, or Water delivered to the premises within the previous Month
|
|
* period starting at the HFT on the 1 st of the month to the last day of the
|
|
* month.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED, /* (O) */
|
|
|
|
/** PreviousMonthNCostConsumptionReceived represents the summed value of
|
|
* Energy, Gas, or Water received from the premises within the previous month
|
|
* period starting at the HFT on the 1 st of the month to the last day of the
|
|
* month.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_2, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_3, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_4, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_5, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_6, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_6, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_7, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_7, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_8, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_8, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_9, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_9, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_10, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_10, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_11, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_11, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_12, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_12, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_13, /* (O) */
|
|
ZB_ZCL_ATTR_PREPAYMENT_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_13, /* (O) */
|
|
|
|
/** HistoricalFreezeTime represents the time of day, in Local Time, when
|
|
* Historical Cost Consumption attributes are captured.
|
|
*/
|
|
ZB_ZCL_ATTR_PREPAYMENT_HISTORICAL_FREEZE_TIME /* (O) */
|
|
} zb_zcl_prepayment_historical_cost_consumption_information_set_t;
|
|
|
|
|
|
/** CurrencyScalingFactor Enumerations
|
|
* @see SE spec, Table D-144
|
|
*/
|
|
typedef enum zb_zcl_prepayment_currency_scaling_factor_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_000001 = 0x00,
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_00001,
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_0001,
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_001,
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_01,
|
|
ZB_ZCL_PREPAYMENT_SCALE_DOT_1,
|
|
ZB_ZCL_PREPAYMENT_SCALE_1,
|
|
ZB_ZCL_PREPAYMENT_SCALE_10,
|
|
ZB_ZCL_PREPAYMENT_SCALE_100,
|
|
ZB_ZCL_PREPAYMENT_SCALE_1000,
|
|
ZB_ZCL_PREPAYMENT_SCALE_10000,
|
|
ZB_ZCL_PREPAYMENT_SCALE_100000,
|
|
ZB_ZCL_PREPAYMENT_SCALE_1000000
|
|
} zb_zcl_prepayment_currency_scaling_factor_t;
|
|
|
|
/** @} */ /* ZB_ZCL_PREPAYMENT_ATTRS */
|
|
|
|
/** @defgroup ZB_ZCL_PREPAYMENT_COMMANDS Prepayment cluster commands
|
|
* @{
|
|
*/
|
|
|
|
/** Commands are generated by Prepayment Client.
|
|
* @see SE spec, subclause 7.2.3
|
|
*/
|
|
typedef enum zb_zcl_prepayment_cli_cmd_e
|
|
{
|
|
/** This command is sent to the Metering Device to activate the use of any
|
|
* Emergency Credit available on the Metering Device.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_SELECT_AVAILABLE_EMERGENCY_CREDIT = 0x00, /* (O) */
|
|
|
|
/** The ChangeDebt command is sent to the Metering Device to change the debt
|
|
* values.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_CHANGE_DEBT = 0x02, /* (O) */
|
|
|
|
/** This command provides a method to set up the parameters for
|
|
* the Emergency Credit.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_EMERGENCY_CREDIT_SETUP, /* (O) */
|
|
|
|
/** The follow command is used by the IHD and the ESI as a method to apply
|
|
* credit top up values to a prepayment meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_CONSUMER_TOP_UP, /* (O) */
|
|
|
|
/** The follow command is sent to update the Credit Remaining attribute on a
|
|
* Prepayment meter. It shall only be sent from an ESI to the Meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_CREDIT_ADJUSTMENT, /* (O) */
|
|
|
|
/** This command is sent to a Metering Device to instruct it to change its mode
|
|
* of operation, e.g. from Credit to Prepayment.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_CHANGE_PAYMENT_MODE, /* (O) */
|
|
|
|
/** This command is used to request the cluster server for snapshot data. */
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_GET_PREPAY_SNAPSHOT, /* (O) */
|
|
|
|
/** This command is sent to the Metering Device to retrieve the log of Top Up
|
|
* codes received by the meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_GET_TOP_UP_LOG, /* (O) */
|
|
|
|
/** This command is sent from client to a Prepayment server to set the warning
|
|
* level for low credit.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_SET_LOW_CREDIT_WARNING_LEVEL, /* (O) */
|
|
|
|
/** This command is used to request the contents of the Repayment log. */
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_GET_DEBT_REPAYMENT_LOG, /* (O) */
|
|
|
|
/** This command is sent from a client to the Prepayment server to set the
|
|
* maximum credit level allowed in the meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_SET_MAXIMUM_CREDIT_LIMIT, /* (O) */
|
|
|
|
/** This command is sent from a client to the Prepayment server to set the
|
|
* overall debt cap allowed in the meter.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_CLI_CMD_SET_OVERALL_DEBT_CAP /* (O) */
|
|
} zb_zcl_prepayment_cli_cmd_t;
|
|
|
|
/** Originating Device Field Enumerations
|
|
* @see SE spec, Table D-146
|
|
*/
|
|
typedef enum zb_zcl_prepayment_originating_device_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_ORIGINATING_DEVICE_ESI = 0x00,
|
|
ZB_ZCL_PREPAYMENT_ORIGINATING_DEVICE_METERING,
|
|
ZB_ZCL_PREPAYMENT_ORIGINATING_DEVICE_IHD
|
|
} zb_zcl_prepayment_originating_device_t;
|
|
|
|
/** Select Available Emergency Credit Command Payload
|
|
* @see SE spec, subclause 7.2.3.1
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_select_available_emergency_credit_payload_s
|
|
{
|
|
/** A UTCTime field to indicate the date and time at which the selection
|
|
* command was issued.
|
|
*/
|
|
zb_uint32_t command_issue_date; /* (M) */
|
|
|
|
/** An 8-bit enumeration field identifying the SE device issuing the selection
|
|
* command
|
|
*/
|
|
zb_uint8_t originating_device; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_select_available_emergency_credit_payload_t;
|
|
|
|
/** Debt Amount Type Field Enumerations
|
|
* @see SE spec, Table D-147
|
|
*/
|
|
typedef enum zb_zcl_prepayment_debt_amount_type_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_1_ABSOLUTE = 0x00,
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_1_INCREMENTAL,
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_2_ABSOLUTE,
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_2_INCREMENTAL,
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_3_ABSOLUTE,
|
|
ZB_ZCL_PREPAYMENT_DEBT_AMOUNT_TYPE_3_INCREMENTAL
|
|
} zb_zcl_prepayment_debt_amount_type_t;
|
|
|
|
/** Change Debt Command Payload
|
|
* @see SE spec, subclause 7.2.3.3
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_change_debt_command_payload_s
|
|
{
|
|
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period,
|
|
* this field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the DebtLabel#N
|
|
* attribute as defined in D.7.2.2.3.1.
|
|
*/
|
|
zb_uint8_t debt_label[13]; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for
|
|
* the DebtAmount#N attribute as defined in D.7.2.2.3.2.
|
|
*/
|
|
zb_int32_t debt_amount; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the DebtRecoveryMethod#N
|
|
* attribute as defined in D.7.2.2.3.3.
|
|
*/
|
|
zb_uint8_t debt_recovery_method; /* (M) */
|
|
|
|
/** An 8-bit enumeration field identifying the type of debt information to be
|
|
* issued within this command.
|
|
*/
|
|
zb_uint8_t debt_amount_type; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the
|
|
* DebtRecoveryStartTime#N attribute as defined in D.7.2.2.3.4.
|
|
*/
|
|
zb_uint32_t debt_recovery_start_time; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the
|
|
* DebtRecoveryCollectionTime#N attribute as defined in D.7.2.2.3.5.
|
|
*/
|
|
zb_uint16_t debt_recovery_collection_time; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the
|
|
* DebtRecoveryFrequency#N attribute as defined in D.7.2.2.3.6.
|
|
*/
|
|
zb_uint8_t debt_recovery_frequency; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the
|
|
* DebtRecoveryAmount#N attribute as defined in D.7.2.2.3.7.
|
|
*/
|
|
zb_int32_t debt_recovery_amount; /* (M) */
|
|
|
|
/** The format and use of this field is the same as for the
|
|
* DebtRecoveryTopUpPercentage#N attribute as defined in D.7.2.2.3.8.
|
|
*/
|
|
zb_uint16_t debt_recovery_balance_percentage; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_change_debt_command_payload_t;
|
|
|
|
|
|
/** Emergency Credit Setup Command Payload
|
|
* @see SE spec, subclause D.7.2.3.4
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_emergency_credit_setup_payload_s
|
|
{
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period, this
|
|
* field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** A UTC Time field to denote the time at which the Emergency Credit settings
|
|
* become valid. A start date/time of 0x00000000 shall indicate that the
|
|
* command should be executed immediately.
|
|
*/
|
|
zb_uint32_t start_time; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the Emergency Credit limit on the
|
|
* Metering Device, measured in base unit of Currency
|
|
* or in Units with the decimal point.
|
|
*/
|
|
zb_uint32_t emergency_credit_limit; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of credit remaining on the
|
|
* Metering Device below which the Emergency Credit facility can be selected.
|
|
* The value is measured in base unit of Currency or in Units with the decimal
|
|
* points.
|
|
*/
|
|
zb_uint32_t emergency_credit_threshold; /* (M) */
|
|
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_emergency_credit_setup_payload_t;
|
|
|
|
|
|
/** Consumer Top Up Command is used by the IHD and the ESI as a method to apply
|
|
* credit top up values to a prepayment meter.
|
|
* @see SE spec, subclause D.7.2.3.5
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_consumer_top_up_payload_s
|
|
{
|
|
/** An 8-bit enumeration field identifying the Smart Energy device issuing the
|
|
* selection command
|
|
* @see SE spec, Table D-146.
|
|
*/
|
|
zb_uint8_t originating_device; /* (M) */
|
|
|
|
/** An octet string of between 1 and 26 characters (the first character indicates
|
|
* the string length).
|
|
*/
|
|
zb_uint8_t top_up_code[26]; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_consumer_top_up_payload_t;
|
|
|
|
|
|
/** Credit Type Field Enumerations
|
|
* @see SE spec, Table D-148
|
|
*/
|
|
typedef enum zb_zcl_prepayment_credit_type_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_CREDIT_INCREMENTAL = 0x00,
|
|
ZB_ZCL_PREPAYMENT_CREDIT_ABSOLUTE
|
|
} zb_zcl_prepayment_credit_type_t;
|
|
|
|
/** The Credit Adjustment command Payload
|
|
* @see SE spec, subclause D.7.2.3.6
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_credit_adjustment_payload_s
|
|
{
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period, this
|
|
* field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** A UTC Time field to denote the time at which the credit adjustment settings
|
|
* become valid. A start date/time of 0x00000000 shall indicate that the
|
|
* command should be executed immediately.
|
|
*/
|
|
zb_uint32_t start_time; /* (M) */
|
|
|
|
/** An 8-bit enumeration field identifying the type of credit adjustment to be
|
|
* issued out within this command.
|
|
*/
|
|
zb_uint8_t credit_adjustment_type; /* (M) */
|
|
|
|
/** A signed 32-bit field to denote the value of the credit adjustment,
|
|
* measured in base unit of Currency or in Units with the decimal point
|
|
*/
|
|
zb_int32_t credit_adjustment_value; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_credit_adjustment_payload_t;
|
|
|
|
|
|
/** Change Payment Mode Command Payload
|
|
* @see SE spec, subclause D.7.2.3.7
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_change_payment_mode_payload_s
|
|
{
|
|
/** An unsigned 32-bit field containing a unique identifier for the commodity
|
|
* supplier to whom this command relates.
|
|
*/
|
|
zb_uint32_t provider_id; /* (M) */
|
|
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period, this
|
|
* field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** A UTC Time field to indicate the date from which the payment mode change is
|
|
* to be applied. An Implementation Date/Time value of 0x00000000 shall
|
|
* indicate that the command should be executed immediately.
|
|
*/
|
|
zb_uint32_t implementation_date; /* (M) */
|
|
|
|
/** An 16-bit BitMap indicating the actions required in relation to switching
|
|
* the payment mode.
|
|
*/
|
|
zb_uint16_t proposed_payment_control_configuration; /* (M) */
|
|
|
|
/** This value is a signed 32-bit integer that shall either be zero or a
|
|
* negative value (in all known cases). This value represents a threshold
|
|
* relating to the absolute value of the CreditRemaining attribute, that when
|
|
* reached (when credit is decrementing) causes the supply of service to be
|
|
* disconnected.
|
|
*/
|
|
zb_int32_t cut_off_value; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_change_payment_mode_payload_t;
|
|
|
|
|
|
/** Get Prepay Snapshot Command Payload
|
|
* @see SE spec, subclause D.7.2.3.8
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_get_prepay_snapshot_payload_s
|
|
{
|
|
|
|
/** A UTC Timestamp indicating the earliest time of a snapshot to be returned
|
|
* by a corresponding Publish Prepay Snapshot command.
|
|
*/
|
|
zb_uint32_t earliest_start_time; /* (M) */
|
|
|
|
/** A UTC Timestamp indicating the latest time of a snapshot to be returned by
|
|
* a corresponding Publish Prepay Snapshot command.
|
|
*/
|
|
zb_uint32_t latest_end_time; /* (M) */
|
|
|
|
/** Where multiple snapshots satisfy the selection criteria specified by the
|
|
* other fields in this command, this field identifies the individual snapshot
|
|
* to be returned.
|
|
*/
|
|
zb_uint8_t snapshot_offset; /* (M) */
|
|
|
|
/** This field is used to request only snapshots for a specific cause. */
|
|
zb_uint32_t snapshot_cause; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_get_prepay_snapshot_payload_t;
|
|
|
|
|
|
/** Get Top Up Log Payload
|
|
* @see SE spec, subclause D.7.2.3.9
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_get_top_up_log_payload_s
|
|
{
|
|
|
|
/** UTC timestamp indicating the latest TopUp Time of Top Up records to be
|
|
* returned by the corresponding Publish Top Up Log commands.
|
|
*/
|
|
zb_uint32_t latest_end_time; /* (M) */
|
|
|
|
/** An 8-bit integer which represents the maximum number of records that the
|
|
* client is willing to receive in response to this command. A value of 0
|
|
* would indicate all available records shall be returned.
|
|
*/
|
|
zb_uint8_t records_number; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_get_top_up_log_payload_t;
|
|
|
|
/** Set Low Credit Warning Level Payload.
|
|
* @see SE spec, subclause D.7.2.3.10
|
|
*/
|
|
typedef zb_uint32_t zb_zcl_prepayment_set_low_credit_warning_level_payload_t;
|
|
|
|
|
|
/** Debt Type Field Enumerations
|
|
* @see SE spec, Table D-149
|
|
*/
|
|
typedef enum zb_zcl_prepayment_debt_type_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_DEBT_TYPE_DEBT_1 = 0x00,
|
|
ZB_ZCL_PREPAYMENT_DEBT_TYPE_DEBT_2,
|
|
ZB_ZCL_PREPAYMENT_DEBT_TYPE_DEBT_3,
|
|
ZB_ZCL_PREPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF
|
|
} zb_zcl_prepayment_debt_type_t;
|
|
|
|
|
|
/** Get Debt Repayment Log Command Payload
|
|
* @see SE spec, table D.7.2.3.11
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_get_debt_repayment_log_payload_s
|
|
{
|
|
/** UTC timestamp indicating the latest Collection Time of debt repayment
|
|
* records to be returned by the corresponding Publish Debt Log commands.
|
|
*/
|
|
zb_uint32_t latest_end_time; /* (M) */
|
|
|
|
/** An 8-bit integer which represents the maximum number of debt repayment
|
|
* records that the client is willing to receive in response to this command.
|
|
*/
|
|
zb_uint8_t debts_number; /* (M) */
|
|
|
|
/** An 8-bit enumeration field identifying the type of debt record(s) to be
|
|
* returned
|
|
*/
|
|
zb_uint8_t debt_type; /* (O) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_get_debt_repayment_log_payload_t;
|
|
|
|
|
|
/** Set Maximum Credit Limit Payload
|
|
* @see SE spec, subclause D.7.2.3.12
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_set_maximum_credit_limit_payload_s
|
|
{
|
|
|
|
/** An unsigned 32-bit field containing a unique identifier for the commodity
|
|
* supplier to whom this command relates.
|
|
*/
|
|
zb_uint32_t provider_id; /* (M) */
|
|
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period, this
|
|
* field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** A UTC Time field to indicate the date from which the maximum credit level
|
|
* is to be applied.
|
|
*/
|
|
zb_uint32_t implementation_date; /* (M) */
|
|
|
|
/** An unsigned 32-bit integer value indicating the maximum credit balance
|
|
* allowed on a meter. Any further top-up amount that will cause the meter to
|
|
* exceed this limit will be rejected.
|
|
*/
|
|
zb_uint32_t max_credit_level; /* (M) */
|
|
|
|
/** An unsigned 32-bit integer value indicating the maximum credit per top-up.
|
|
* Any single top-up greater than this threshold will cause the meter to
|
|
* reject the top-up.
|
|
*/
|
|
zb_uint32_t max_credit_per_top_up; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_set_maximum_credit_limit_payload_t;
|
|
|
|
|
|
/** Set Overall Debt Cap Payload
|
|
* @see SE spec, subclause D.7.2.3.13
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_set_overall_debt_cap_payload_s
|
|
{
|
|
|
|
/** An unsigned 32-bit field containing a unique identifier for the commodity
|
|
* supplier to whom this command relates.
|
|
*/
|
|
zb_uint32_t provider_id; /* (M) */
|
|
|
|
/** Unique identifier generated by the commodity provider. When new information
|
|
* is provided that replaces older information for the same time period, this
|
|
* field allows devices to determine which information is newer.
|
|
*/
|
|
zb_uint32_t issuer_event_id; /* (M) */
|
|
|
|
/** A UTC Time field to indicate the date from which the overall debt cap is to
|
|
* be applied. An Implementation Date/Time of 0x00000000 shall indicate that
|
|
* the command should be executed immediately.
|
|
*/
|
|
zb_uint32_t implementation_date; /* (M) */
|
|
|
|
/** A signed 32-bit integer that defines the total amount of debt that can be
|
|
* taken from top-ups. This field is always a monetary value, and as such the
|
|
* field is measured in a base unit of Currency with the decimal point.
|
|
*/
|
|
zb_int32_t overall_debt_cap; /* (O) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_set_overall_debt_cap_payload_t;
|
|
|
|
|
|
/** Commands are generated by Prepayment Server.
|
|
* @see SE spec, subclause D.7.2.4
|
|
*/
|
|
typedef enum zb_zcl_prepayment_srv_cmd_e
|
|
{
|
|
|
|
/** This command is generated in response to a GetPrepaySnapshot command or
|
|
* when a new snapshot is created. It is used to return a single snapshot
|
|
* to the client.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SRV_CMD_PUBLISH_PREPAY_SNAPSHOT = 0x01, /* (O) */
|
|
|
|
/** This command is sent in response to the ChangePaymentMode command. This command
|
|
* shall only inform the ESI of the current default setting that would affect
|
|
* the meter when entering into Prepayment/PAYG or Credit mode. Should these
|
|
* values require changing then other commands within the Prepayment & Price
|
|
* cluster should be used.
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SRV_CMD_CHANGE_PAYMENT_MODE_RESPONSE, /* (O) */
|
|
|
|
/** */
|
|
ZB_ZCL_PREPAYMENT_SRV_CMD_CONSUMER_TOP_UP_RESPONSE, /* (O) */
|
|
|
|
/** This command is used to send the Top Up Code Log entries to the Prepayment
|
|
* client. The command shall be sent in response to a Get Top Up Log command
|
|
* and MAY be sent unsolicited whenever a new Top Up code is received and
|
|
* successfully processed
|
|
*/
|
|
ZB_ZCL_PREPAYMENT_SRV_CMD_PUBLISH_TOP_UP_LOG = 0x05, /* (O) */
|
|
|
|
/** This command is used to send the contents of the Repayment Log. */
|
|
ZB_ZCL_PREPAYMENT_SRV_CMD_PUBLISH_DEBT_LOG /* (O) */
|
|
} zb_zcl_prepayment_srv_cmd_t;
|
|
|
|
|
|
/** Snapshot Payload Cause
|
|
* @see SE spec, Table D-151
|
|
*/
|
|
typedef enum zb_zcl_prepayment_snapshot_payload_cause_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_CAUSE_GENERAL = 1 << 0,
|
|
ZB_ZCL_PREPAYMENT_CAUSE_END_OF_BILLING_PERIOD = 1 << 1,
|
|
/* 1 << 2 is reserved for metering cluster */
|
|
ZB_ZCL_PREPAYMENT_CAUSE_TARIFF_INFORMATION_CHANGE = 1 << 3,
|
|
ZB_ZCL_PREPAYMENT_CAUSE_PRICE_MATRIX_CHANGE = 1 << 4,
|
|
/* 1 << 5 is reserved for metering cluster */
|
|
/* 1 << 6 is reserved for metering cluster */
|
|
/* 1 << 7 is reserved for metering cluster */
|
|
/* 1 << 8 is reserved for metering cluster */
|
|
/* 1 << 9 is reserved for metering cluster */
|
|
ZB_ZCL_PREPAYMENT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT = 1 << 10,
|
|
/* 1 << 11 is reserved for metering cluster */
|
|
ZB_ZCL_PREPAYMENT_CAUSE_TENANCY_CHANGE = 1 << 12,
|
|
ZB_ZCL_PREPAYMENT_CAUSE_SUPPLIER_CHANGE = 1 << 13,
|
|
ZB_ZCL_PREPAYMENT_CAUSE_METER_MODE_CHANGE = 1 << 14,
|
|
/* 1 << 15 is reserved for metering cluster */
|
|
/* 1 << 16 is reserved for metering cluster */
|
|
/* 1 << 17 is reserved for metering cluster */
|
|
ZB_ZCL_PREPAYMENT_CAUSE_TOP_UP_ADDITION = 1 << 18,
|
|
ZB_ZCL_PREPAYMENT_CAUSE_DEBT_AND_CREDIT_ADDITION = 1 << 19
|
|
} zb_zcl_prepayment_snapshot_payload_cause_t;
|
|
|
|
|
|
/** Snapshot Payload Type
|
|
* @see SE spec, Table D-152
|
|
*/
|
|
typedef enum zb_zcl_prepayment_snapshot_payload_type_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_SNAPSHOT_PAYLOAD_TYPE_DEBT_AND_CREDIT_STATUS = 0x00,
|
|
} zb_zcl_prepayment_snapshot_payload_type_t;
|
|
|
|
|
|
/** Debt/Credit Status Command Payload
|
|
* @see SE spec, Figure D-128
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_snapshot_payload_s
|
|
{
|
|
/* It is a part of zb_zcl_prepayment_publish_prepay_snapshot_payload_t */
|
|
zb_uint8_t snapshot_payload_type; /* (M) */
|
|
|
|
ZB_PACKED_PRE union
|
|
{
|
|
ZB_PACKED_PRE struct
|
|
{
|
|
/** The AccumulatedDebt field represents the total amount of debt remaining on
|
|
* the Metering Device, measured in a base unit of Currency with the decimal
|
|
* point located as indicated by the Trailing Digits field, as defined in
|
|
* the Price cluster.
|
|
*/
|
|
zb_int32_t accumulated_debt; /* (M) */
|
|
|
|
/** The Type1DebtRemaining field represents the amount of Type 1 debt remaining
|
|
* on the Metering Device, measured in base unit of Currency with the decimal
|
|
* point located as indicated by the Trailing Digits field, as defined in the
|
|
* Price cluster.
|
|
*/
|
|
zb_uint32_t type_1_debt_remaining; /* (M) */
|
|
|
|
/** The Type2DebtRemaining field represents the amount of Type 2 debt remaining
|
|
* on the Metering Device, measured in base unit of Currency with the decimal
|
|
* point located as indicated by the TrailingDigits field, as defined in the
|
|
* Price cluster.
|
|
*/
|
|
zb_uint32_t type_2_debt_remaining; /* (M) */
|
|
|
|
/** The Type3DebtRemaining field represents the amount of Type 3 debt remaining
|
|
* on the Metering Device, measured in base unit of Currency with the decimal
|
|
* point located as indicated by the TrailingDigits field, as defined in the
|
|
* Price cluster.
|
|
*/
|
|
zb_uint32_t type_3_debt_remaining; /* (M) */
|
|
|
|
/** The EmergencyCreditRemaining field represents the amount of Emergency Credit
|
|
* still available on the Metering Device. If Monetary based, this field is
|
|
* measured in a base unit of Currency or in Units, with the decimal point
|
|
*/
|
|
zb_int32_t emergency_credit_remaining; /* (M) */
|
|
|
|
/** The CreditRemaining field represents the amount of credit
|
|
* remaining on the Metering Device. If Monetary based, this field is measured
|
|
* in a base unit of Currency or in Units, with the decimal point.
|
|
*/
|
|
zb_int32_t credit_remaining; /* (M) */
|
|
} ZB_PACKED_STRUCT debt_credit_status;
|
|
} ZB_PACKED_STRUCT u;
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_snapshot_payload_t;
|
|
|
|
/** Publish Prepay Snapshot Command Payload
|
|
* @see SE spec, subclause 7.2.4.2
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_publish_prepay_snapshot_payload_s
|
|
{
|
|
|
|
/** Unique identifier allocated by the device creating the snapshot. */
|
|
zb_uint32_t snapshot_id; /* (M) */
|
|
|
|
/** This is a 32-bit value (in UTC Time) representing the time at which the
|
|
* data snapshot was taken.
|
|
*/
|
|
zb_uint32_t snapshot_time; /* (M) */
|
|
|
|
/** An 8-bit Integer indicating the number of snapshots found, based on the
|
|
* search criteria defined in the associated GetPrepaySnapshot command. If the
|
|
* value is greater than 1, the client is able to request the next snapshot by
|
|
* incrementing the Snapshot Offset field in an otherwise repeated
|
|
* get_prepay_snapshot command.
|
|
*/
|
|
zb_uint8_t total_snapshots_found; /* (M) */
|
|
|
|
/** The follow field is uses to count the payload fragments in the case where
|
|
* the entire payload does not fit into one message. The Command Index starts
|
|
* at 0 and is incremented for each fragment belonging to the same command.
|
|
*/
|
|
zb_uint8_t command_index; /* (M) */
|
|
|
|
/** In the case where the entire payload does not fit into one message, the
|
|
* Total Number of Commands field indicates the total number of sub-commands
|
|
* in the message.
|
|
*/
|
|
zb_uint8_t total_number_of_commands; /* (M) */
|
|
|
|
/** A 32-bit BitMap indicating the cause of the snapshot. */
|
|
zb_uint32_t snapshot_cause; /* (M) */
|
|
|
|
zb_zcl_prepayment_snapshot_payload_t snapshot_payload; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_publish_prepay_snapshot_payload_t;
|
|
|
|
|
|
/** Friendly Credit BitMap
|
|
* @see SE spec, Table D-153
|
|
*/
|
|
typedef enum zb_zcl_prepayment_friendly_credit_bitmap_e
|
|
{
|
|
PREPAYMENT_FRIENDLY_CREDIT_ENABLED = 0,
|
|
} zb_zcl_prepayment_friendly_credit_bitmap_t;
|
|
|
|
|
|
/** Change Payment Mode Response Command Payload
|
|
* @see SE spec, subclause 7.2.4.3
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_payment_mode_response_payload_s
|
|
{
|
|
|
|
/** An 8-bit BitMap to show if the meter has a Friendly Credit calendar and that
|
|
* this calendar shall be enabled.
|
|
*/
|
|
zb_uint8_t friendly_credit; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the IssuerCalendarID that shall be used
|
|
* for the friendly credit periods
|
|
*/
|
|
zb_uint32_t friendly_credit_calendar_id; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the emergency credit limit on the Metering
|
|
* Device, measured in base unit of Currency with the decimal point located as
|
|
* indicated by the TrailingDigits field, as defined in the Price cluster.
|
|
*/
|
|
zb_uint32_t emergency_credit_limit; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of credit remaining on the
|
|
* Metering Device below which the Emergency Credit facility can be selected.
|
|
* The value is measured in base unit of Currency with the decimal point located
|
|
* as indicated by the TrailingDigits field, as defined in the Price cluster.
|
|
*/
|
|
zb_uint32_t emergency_credit_threshold; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_payment_mode_response_payload_t;
|
|
|
|
|
|
/** Result Type Field Enumerations
|
|
* @see SE spec, Table D-154
|
|
*/
|
|
typedef enum zb_zcl_prepayment_result_type_e
|
|
{
|
|
ZB_ZCL_PREPAYMENT_RESULT_ACCEPTED = 0x00,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_INVALID_TOP_UP,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_DUPLICATE_TOP_UP,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_ERROR,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_MAX_CREDIT_REACHED,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_KAYPAD_LOCK,
|
|
ZB_ZCL_PREPAYMENT_RESULT_REJECTED_TOP_UP_VALUE_TOO_LARGE,
|
|
ZB_ZCL_PREPAYMENT_RESULT_ACCEPTED_SUPPLY_ENABLED = 0x10,
|
|
ZB_ZCL_PREPAYMENT_RESULT_ACCEPTED_SUPPLY_DISABLED,
|
|
ZB_ZCL_PREPAYMENT_RESULT_ACCEPTED_SUPPLY_ARMED
|
|
} zb_zcl_prepayment_result_type_t;
|
|
|
|
|
|
/** Consumer Top Up Response Command Payload
|
|
* @see SE spec, subclause 7.2.4.4
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_consumer_top_up_response_payload_s
|
|
{
|
|
|
|
/** An 8-bit enumerated value indicating whether the Metering Device accepted
|
|
* or rejected the top up.
|
|
*/
|
|
zb_uint8_t result_type; /* (M) */
|
|
|
|
/** A signed 32-bit integer field representing the Top Up value available in
|
|
* the top up content. If it is Monetary based, this field is measured in a
|
|
* base unit of Currency with the decimal point located as indicated by the
|
|
* Trailing Digits field, as defined in the Price cluster.
|
|
*/
|
|
zb_int32_t top_up_value; /* (M) */
|
|
|
|
/** An 8-bit enumeration indicating the device that has issued the top up */
|
|
zb_uint8_t source_of_top_up; /* (M) */
|
|
|
|
/** The Credit Remaining field represents the amount of credit remaining on the
|
|
* Metering Device after addition of a top up.
|
|
*/
|
|
zb_int32_t credit_remaining; /* (M) */
|
|
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_consumer_top_up_response_payload_t;
|
|
|
|
|
|
/** Top Up Payload Details
|
|
* @see SE spec, Figure D-132
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_top_up_payload_details_s
|
|
{
|
|
|
|
/** This is the value of the Top Up code stored in the log. */
|
|
zb_uint8_t top_up_code[26]; /* (M) */
|
|
|
|
/** This is the amount of credit that was added to the Metering Device during
|
|
* this Top Up.
|
|
*/
|
|
zb_int32_t top_up_amount; /* (M) */
|
|
|
|
/** This is the UTC Timestamp when the Top Up was applied to the Metering Device. */
|
|
zb_uint32_t top_up_time; /* (M) */
|
|
zb_uint8_t top_up_code_plus_1[26]; /* (M) */
|
|
zb_int32_t top_up_amount_plus_1; /* (M) */
|
|
zb_uint32_t top_up_time_plus_1; /* (M) */
|
|
zb_uint8_t top_up_code_plus_n[26]; /* (M) */
|
|
zb_int32_t top_up_amount_plus_n; /* (M) */
|
|
zb_uint32_t top_up_time_plus_n; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_top_up_payload_details_t;
|
|
|
|
|
|
/** Publish Top Up Log Command Payload
|
|
* @see SE spec, subclause 7.2.4.5
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_publish_top_up_log_payload_s
|
|
{
|
|
|
|
/** The Command Index is used to count the payload fragments in the case where
|
|
* the entire payload does not fit into one message. The Command Index starts
|
|
* at 0 and is incremented for each fragment belonging to the same command
|
|
*/
|
|
zb_uint8_t command_index; /* (M) */
|
|
|
|
/** In the case that an entire payload does not fit into one message, the Total
|
|
* Number of Commands field indicates the total number of sub-commands in the
|
|
* message.
|
|
*/
|
|
zb_uint8_t commands_total_number; /* (M) */
|
|
|
|
/** see @ref zb_zcl_prepayment_top_up_payload_details_t */
|
|
zb_zcl_prepayment_top_up_payload_details_t top_up_payload; /* (O) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_publish_top_up_log_payload_t;
|
|
|
|
|
|
/** Format of a Debt Payload Record
|
|
* @see SE spec, Figure D-134
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_debt_payload_record_s
|
|
{
|
|
|
|
/** An UTC time field identifying the time when the collection occurred. */
|
|
zb_uint32_t collection_time; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of debt collected at this
|
|
* time.
|
|
*/
|
|
zb_uint32_t amount_collected; /* (M) */
|
|
|
|
/** An 8-bit enumeration field identifying the type of debt the record refers to.
|
|
* The enumerations are defined in Table D-149.
|
|
*/
|
|
zb_uint8_t debt_type; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of debt still outstanding
|
|
* after the debt was collected.
|
|
*/
|
|
zb_uint32_t outstanding_debt; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_debt_payload_record_t;
|
|
|
|
|
|
/** Publish Debt Log Command Payload
|
|
* @see SE spec, subclause 7.2.4.6
|
|
*/
|
|
typedef ZB_PACKED_PRE struct zb_zcl_prepayment_publish_debt_log_payload_s
|
|
{
|
|
|
|
/** An UTC time field identifying the time when the collection occurred. */
|
|
zb_uint8_t command_index; /* (M) */
|
|
|
|
/** An unsigned 32-bit field to denote the amount of debt collected at this
|
|
* time.
|
|
*/
|
|
zb_uint8_t commands_total_number; /* (M) */
|
|
|
|
/** The Debt Payload shall contain one or more debt records
|
|
* @ref zb_zcl_prepayment_debt_payload_record_t
|
|
*/
|
|
zb_zcl_prepayment_debt_payload_record_t *debt_payload; /* (M) */
|
|
} ZB_PACKED_STRUCT zb_zcl_prepayment_publish_debt_log_payload_t;
|
|
|
|
|
|
/** @cond internals_doc */
|
|
|
|
void zb_zcl_prepayment_init_server(void);
|
|
void zb_zcl_prepayment_init_client(void);
|
|
#define ZB_ZCL_CLUSTER_ID_PREPAYMENT_SERVER_ROLE_INIT zb_zcl_prepayment_init_server
|
|
#define ZB_ZCL_CLUSTER_ID_PREPAYMENT_CLIENT_ROLE_INIT zb_zcl_prepayment_init_client
|
|
|
|
/** @endcond */ /* internals_doc */
|
|
|
|
/** @} */ /* ZB_ZCL_PREPAYMENT_COMMANDS */
|
|
|
|
/** @} */ /* ZB_ZCL_PREPAYMENT */
|
|
|
|
/** @endcond */ /* DOXYGEN_ZCL_SECTION */
|
|
#endif /* ZB_ZCL_PREPAYMENT_H_ */
|