Energy and metering1792 — Commodity Tariff

Matter Cluster 1792 — Commodity Tariff

Matter Cluster 1792 (0x0700) Commodity Tariff: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1792 — Commodity Tariff Cluster

Matter Cluster 1792, also written as 0x0700, is the Commodity Tariff Cluster. The CommodityTariffCluster provides the mechanism for communicating Commodity Tariff information within the premises.

Cluster Identity

FieldValue
Cluster ID decimal1792
Cluster ID hex0x0700
Cluster nameCommodity Tariff
Cluster revision (Matter 1.6.1)1
Roleapplication
ScopeEndpoint
PICS codeSETRF
Typical endpoint1

Revision history

RevisionChange
1Initial Matter revision

Shadow Path Format

Cluster 1792 values in the device shadow use this format:

endpoint_id / 1792 / attribute_id

Example:

{
  "1/1792/0": {
    "tariffLabel": "example",
    "providerName": "example",
    "currency": 0,
    "blockMode": 0
  }
}
PartMeaning
1Endpoint ID
1792Commodity Tariff cluster
0TariffInfo attribute

Cluster 1792 Features

The FeatureMap attribute (1/1792/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.

BitCodeFeatureConformanceMeaning
0PRICEPricingOSupports information about commodity pricing
1FCREDFriendlyCreditOSupports information about when friendly credit periods begin and end
2AUXLDAuxiliaryLoadOSupports information about when auxiliary loads should be enabled or disabled
3PEAKPPeakPeriodOSupports information about peak periods
4PWRTHLDPowerThresholdOSupports information about power threshold
5RNDMRandomizationOSupports information about randomization of calendar day entries

Example: FeatureMap = 0 means no optional feature is enabled; 63 means every feature listed above is enabled.


Data Types

AuxiliaryLoadSettingEnum

This enumeration must indicated the required state of an auxiliary switch.

ValueNameConformanceMeaning
0OffMThe switch should be in the OFF state
1OnMThe switch should be in the ON state
2NoneMNo state is required

BlockModeEnum

ValueNameConformanceMeaning
0NoBlockMTariff has no usage blocks
1CombinedMUsage is metered in combined blocks
2IndividualMUsage is metered separately by tariff component

DayEntryRandomizationTypeEnum

ValueNameConformanceMeaning
0NoneMNo randomization applied
1FixedMAn unchanging offset
2RandomMA random value
3RandomPositiveMA random positive value
4RandomNegativeMA random negative value

DayTypeEnum

ValueNameConformanceMeaning
0StandardMStandard
1HolidayMHoliday
2DynamicMDynamic Pricing
3EventMIndividual Events

PeakPeriodSeverityEnum

ValueNameConformanceMeaning
0UnusedMUnused
1LowMLow
2MediumMMedium
3HighMHigh

DayPatternDayOfWeekBitmap (bitmap)

BitNameConformanceMeaning
0SundayMSunday
1MondayMMonday
2TuesdayMTuesday
3WednesdayMWednesday
4ThursdayMThursday
5FridayMFriday
6SaturdayMSaturday

AuxiliaryLoadSwitchSettingsStruct (struct)

This represents the settings for a given auxiliary load switch in a tariff component.

FieldNameTypeConformanceConstraintMeaning
0Numberuint8M——
1RequiredStateAuxiliaryLoadSettingEnumM——

AuxiliaryLoadSwitchesSettingsStruct (struct)

This represents the set of auxiliary load settings in a tariff component.

FieldNameTypeConformanceConstraintMeaning
0SwitchStateslist of AuxiliaryLoadSwitchSettingsStructMmax 8 entries—

CalendarPeriodStruct (struct)

This represents a sub period of a calendar, commencing on its StartDate. A 'Calendar Period', while normally considered to be a 3 or 6 month period, could be used for other arbitrary periods e.g. monthly or quarterly.

FieldNameTypeConformanceConstraintMeaning
0StartDateepoch-s (nullable)Mmin StartDateIndicates the timestamp in UTC when the calendar period becomes active.
1DayPatternIDslist of uint32M1 to 7 entries—

DayEntryStruct (struct)

This struct represents a day entry at a particular time of day, along with an optional duration and randomization parameters.

FieldNameTypeConformanceConstraintMeaning
0DayEntryIDuint32M——
1StartTimeuint16Mmax 1499Indicates the start time of the DayEntryStruct, expressed as the number of minutes that have elapsed since midnight on the associated days.
2Durationuint16Omax computeIndicates the duration of the day entry, expressed as the number of minutes since the time indicated by the StartTime field.
3RandomizationOffsetint16[RNDM]—Indicates a randomization offset for this particular day entry in seconds.
4RandomizationTypeDayEntryRandomizationTypeEnum[RNDM]—Indicates a randomization type for this particular day entry.

DayPatternStruct (struct)

This represents a series of day entries over the course of a day for a given set of days of the week.

FieldNameTypeConformanceConstraintMeaning
0DayPatternIDuint32M——
1DaysOfWeekDayPatternDayOfWeekBitmapM—Indicates which days of the week the associated set of DayEntryStructs applies to.
2DayEntryIDslist of uint32M1 to 96 entries—

DayStruct (struct)

This represents a series of day entries over the course of a day for a specific date.

FieldNameTypeConformanceConstraintMeaning
0Dateepoch-sM—Indicates the date the associated set of DayEntryStructs applies to.
1DayTypeDayTypeEnumM—Indicates the type of day represented by the struct.
2DayEntryIDslist of uint32M1 to 96 entries—

PeakPeriodStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0SeverityPeakPeriodSeverityEnumM—Indicates the severity of the peak period.
1PeakPerioduint16Mmin 1Indicates the PeakPeriod number.

TariffComponentStruct (struct)

This represents components of a tariff. Tariff components typically represent a price or price level, though they may also specify other aspects of a tariff.

FieldNameTypeConformanceConstraintMeaning
0TariffComponentIDuint32M——
1PriceTariffPriceStruct (nullable)[PRICE]—Indicates the price when the tariff component is active.
2FriendlyCreditbool[FCRED]—Indicates whether the calendar is entering a friendly credit period or not.
3AuxiliaryLoadAuxiliaryLoadSwitchSettingsStruct[AUXLD]—Indicates the required state of auxiliary load switches.
4PeakPeriodPeakPeriodStruct[PEAKP]—Indicates whether the tariff component represents a peak period.
5PowerThresholdPowerThresholdStruct[PWRTHLD]—Indicates whether the tariff component represents a power threshold.
6Thresholdint64 (nullable)M—Indicates the maximum level of consumption this tariff component applies to, in units specified by the TariffUnit attribute.
7Labelstring (nullable)Omax length 128A free-form label for the tariff component.
8PredictedboolO—Indicates whether the tariff component represents a price prediction.

TariffInformationStruct (struct)

This represents particular Tariff Price information.

FieldNameTypeConformanceConstraintMeaning
0TariffLabelstring (nullable)Mmax length 128Indicates a label for the tariff.
1ProviderNamestring (nullable)Mmax length 128Indicates the name of the commodity provider for this tariff.
2CurrencyCurrencyStruct (nullable)PRICE—Indicates the currency for the value of the Price field on all TariffPriceStruct.
3BlockModeBlockModeEnum (nullable)M—Indicates the mode for metering blocks of usage.

TariffPeriodStruct (struct)

This represents the tariff components in effect for a set of calendar day entry IDs.

FieldNameTypeConformanceConstraintMeaning
0Labelstring (nullable)Mmax length 128A free-form label for the tariff period.
1DayEntryIDslist of uint32M1 to 20 entries—
2TariffComponentIDslist of uint32M1 to 20 entries—

TariffPriceStruct (struct)

This indicates a price or price level for a given tariff component, as well as what type of pricing it represents

FieldNameTypeConformanceConstraintMeaning
0PriceTypeTariffPriceTypeEnumM—Indicates the type of price for the Price or PriceLevel fields.
1PricemoneyO—Indicates the tariff price.
2PriceLevelint16O—Indicates the tariff price level.

Cluster 1792 Attributes

Cluster 1792 defines 19 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000TariffInfoTariffInformationStructMR (read: view)nullable—
10x0001TariffUnitTariffUnitEnumMR (read: view)nullable—
20x0002StartDateepoch-sMR (read: view)nullable—
30x0003DayEntrieslist of DayEntryStructMR (read: view)nullable—
40x0004DayPatternslist of DayPatternStructMR (read: view)nullable—
50x0005CalendarPeriodslist of CalendarPeriodStructMR (read: view)nullable—
60x0006IndividualDayslist of DayStructMR (read: view)nullable—
70x0007CurrentDayDayStructMR (read: view)nullable—
80x0008NextDayDayStructMR (read: view)nullable—
90x0009CurrentDayEntryDayEntryStructMR (read: view)nullable—
100x000ACurrentDayEntryDateepoch-sMR (read: view)nullable—
110x000BNextDayEntryDayEntryStructMR (read: view)nullable—
120x000CNextDayEntryDateepoch-sMR (read: view)nullable—
130x000DTariffComponentslist of TariffComponentStructMR (read: view)nullable—
140x000ETariffPeriodslist of TariffPeriodStructMR (read: view)nullable—
150x000FCurrentTariffComponentslist of TariffComponentStructMR (read: view)nullable—
160x0010NextTariffComponentslist of TariffComponentStructMR (read: view)nullable—
170x0011DefaultRandomizationOffsetint16RNDMR (read: view)nullable—
180x0012DefaultRandomizationTypeDayEntryRandomizationTypeEnumRNDMR (read: view)nullable—

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 1 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — TariffInfo

Path example:

1/1792/0

Indicates basic information about the tariff. If the tariff is unavailable, this attribute is null.

PropertyValue
TypeTariffInformationStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable

Value is a TariffInformationStruct struct (see Data Types).

Example:

{
  "1/1792/0": {
    "tariffLabel": "example",
    "providerName": "example",
    "currency": 0,
    "blockMode": 0
  }
}

Attribute 1 / 0x0001 — TariffUnit

Path example:

1/1792/1

Indicates the unit of the commodity for pricing. If the tariff is unavailable, this attribute is null.

PropertyValue
TypeTariffUnitEnum
ConformanceM
AccessR (read: view)
Qualitiesnullable

Example:

{
  "1/1792/1": 0
}

Attribute 2 / 0x0002 — StartDate

Path example:

1/1792/2

Indicates a timestamp in UTC to denote the time at which the published calendar becomes active. A start date/time of 0x00000000 indicates that the calendar should become active immediately. If the tariff is unavailable, this attribute is null.

PropertyValue
Typeepoch-s
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintdesc

Example:

{
  "1/1792/2": 1
}

Attribute 3 / 0x0003 — DayEntries

Path example:

1/1792/3

Indicates the list of DayEntryStructs included in this calendar. The maximum constraint of this attribute is intended to allow representation of seven days of tariff information at 15 minute intervals. If the tariff is unavailable, this attribute is null.

PropertyValue
Typelist of DayEntryStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintmax 672 entries

Each entry is a DayEntryStruct (see Data Types).

Example:

{
  "1/1792/3": []
}

Attribute 4 / 0x0004 — DayPatterns

Path example:

1/1792/4

Indicates the list of DayPatternStructs used in the CalendarPeriodStruct in this calendar. Each day pattern in this list must define the specific schedule that applies to the days it covers.

PropertyValue
Typelist of DayPatternStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintmax 28 entries

Each entry is a DayPatternStruct (see Data Types).

Example:

{
  "1/1792/4": []
}

Attribute 5 / 0x0005 — CalendarPeriods

Path example:

1/1792/5

Indicates the list of CalendarPeriodStructs comprising this calendar. The CalendarPeriodStructs in this list is arranged in increasing order by the value of StartDate. If and only if the value of the StartDate attribute is null, the value of the StartDate field on the first CalendarPeriodStruct in the CalendarPeriods attribute must also be null, indicating that the period begins immediately. The value of the StartDate field on any subsequent CalendarPeriodStruct in CalendarPeriods must NOT be null.

PropertyValue
Typelist of CalendarPeriodStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraint1 to 4 entries

Each entry is a CalendarPeriodStruct (see Data Types).

Example:

{
  "1/1792/5": []
}

Attribute 6 / 0x0006 — IndividualDays

Path example:

1/1792/6

Indicates the list of days to overlay on this calendar. The DayStruct in this list is arranged in increasing order by the value of Date. The DayStruct in this list must not overlap. If the calendar is unavailable, this attribute is null.

PropertyValue
Typelist of DayStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintmax 50 entries

Each entry is a DayStruct (see Data Types).

Example:

{
  "1/1792/6": []
}

Attribute 7 / 0x0007 — CurrentDay

Path example:

1/1792/7

Indicates the current day's day entries. If the tariff is not active or CurrentDay information is not available, this attribute is null.

PropertyValue
TypeDayStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable

Value is a DayStruct struct (see Data Types).

Example:

{
  "1/1792/7": {
    "date": 1,
    "dayType": 0,
    "dayEntryIDs": []
  }
}

Attribute 8 / 0x0008 — NextDay

Path example:

1/1792/8

Indicates the next day's day entries. If the tariff is not active or NextDay information is not available, this attribute is null.

PropertyValue
TypeDayStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable

Value is a DayStruct struct (see Data Types).

Example:

{
  "1/1792/8": {
    "date": 1,
    "dayType": 0,
    "dayEntryIDs": []
  }
}

Attribute 9 / 0x0009 — CurrentDayEntry

Path example:

1/1792/9

Indicates the currently active DayEntryStruct. If the tariff is not active or day entry information is not available, this attribute is null.

PropertyValue
TypeDayEntryStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable

Value is a DayEntryStruct struct (see Data Types).

Example:

{
  "1/1792/9": {
    "dayEntryID": 1,
    "startTime": 0,
    "duration": 1,
    "randomizationOffset": 1
  }
}

Attribute 10 / 0x000A — CurrentDayEntryDate

Path example:

1/1792/10

Indicates the UTC date when the CurrentDay, CurrentDayEntry, and CurrentTariffComponents attributes were last updated. If the tariff is not active or day entry information is not available, this attribute is null.

PropertyValue
Typeepoch-s
ConformanceM
AccessR (read: view)
Qualitiesnullable

Example:

{
  "1/1792/10": 1
}

Attribute 11 / 0x000B — NextDayEntry

Path example:

1/1792/11

Indicates the predicted next active DayEntryStruct. If the tariff is not active or is not available, this attribute is null.

PropertyValue
TypeDayEntryStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable

Value is a DayEntryStruct struct (see Data Types).

Example:

{
  "1/1792/11": {
    "dayEntryID": 1,
    "startTime": 0,
    "duration": 1,
    "randomizationOffset": 1
  }
}

Attribute 12 / 0x000C — NextDayEntryDate

Path example:

1/1792/12

Indicates the predicted UTC date when the CurrentDay, CurrentDayEntry, and CurrentTariffComponents attributes will update to the values in the NextDay, NextDayEntry, and NextTariffComponents attributes, respectively. If the tariff is not active or is not available, this attribute is null.

PropertyValue
Typeepoch-s
ConformanceM
AccessR (read: view)
Qualitiesnullable

Example:

{
  "1/1792/12": 1
}

Attribute 13 / 0x000D — TariffComponents

Path example:

1/1792/13

Indicates a list of TariffComponentStructs for the tariff. If the tariff is unavailable, this attribute is empty.

PropertyValue
Typelist of TariffComponentStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraint1 to 672 entries

Each entry is a TariffComponentStruct (see Data Types).

Example:

{
  "1/1792/13": []
}

Attribute 14 / 0x000E — TariffPeriods

Path example:

1/1792/14

Indicates a list of TariffPeriodStructs for the tariff. If the tariff is unavailable, this attribute is empty.

PropertyValue
Typelist of TariffPeriodStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraint1 to 672 entries

Each entry is a TariffPeriodStruct (see Data Types).

Example:

{
  "1/1792/14": []
}

Attribute 15 / 0x000F — CurrentTariffComponents

Path example:

1/1792/15

Indicates a list of the currently active TariffComponentStructs. If the tariff is unavailable, this attribute is empty.

PropertyValue
Typelist of TariffComponentStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintmax 20 entries

Each entry is a TariffComponentStruct (see Data Types).

Example:

{
  "1/1792/15": []
}

Attribute 16 / 0x0010 — NextTariffComponents

Path example:

1/1792/16

Indicates the predicted next active TariffComponentStructs. If the tariff is unavailable, this attribute is null.

PropertyValue
Typelist of TariffComponentStruct
ConformanceM
AccessR (read: view)
Qualitiesnullable
Constraintmax 20 entries

Each entry is a TariffComponentStruct (see Data Types).

Example:

{
  "1/1792/16": []
}

Attribute 17 / 0x0011 — DefaultRandomizationOffset

Path example:

1/1792/17

Indicates a default randomization offset for DayEntryStructs in this tariff. See RandomizationOffset for details.

PropertyValue
Typeint16
ConformanceRNDM
AccessR (read: view)
Qualitiesnullable
Constraintdesc

Example:

{
  "1/1792/17": 1
}

Attribute 18 / 0x0012 — DefaultRandomizationType

Path example:

1/1792/18

Indicates a default randomization type for DayEntryStruct in this tariff. See RandomizationType for details.

PropertyValue
TypeDayEntryRandomizationTypeEnum
ConformanceRNDM
AccessR (read: view)
Qualitiesnullable

Values (DayEntryRandomizationTypeEnum):

ValueNameMeaning
0NoneNo randomization applied
1FixedAn unchanging offset
2RandomA random value
3RandomPositiveA random positive value
4RandomNegativeA random negative value

Example:

{
  "1/1792/18": 0
}

Cluster 1792 Commands

Cluster 1792 has 2 client-to-server commands and 2 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00GetTariffComponentclient → serverMGetTariffComponentResponseThe GetTariffComponent command allows a client to request information for a tariff component identifier that may no longer be available in the TariffPeriods attributes.
00x00GetTariffComponentResponseserver → clientM—The GetTariffComponentResponse command is sent in response to a GetTariffComponent command.
10x01GetDayEntryclient → serverMGetDayEntryResponseThe GetDayEntry command allows a client to request information for a calendar day entry identifier that may no longer be available in the CalendarPeriods or IndividualDays …
10x01GetDayEntryResponseserver → clientM—The GetDayEntryResponse command is sent in response to a GetDayEntry command.

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 1792 / 65529
{
  "1/1792/65529": [
    0,
    1
  ]
}

Before sending a Cluster 1792 command, check that the command ID exists in endpoint/1792/65529. Optional commands are only present when the matching feature is set in FeatureMap.


Bridge Command Payload Format

The bridge accepts Matter commands in this structure:

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1792,
    "command_name": "GetTariffComponent",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 1792, always use "cluster_id": 1792. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.


Command: GetTariffComponent

Purpose

The GetTariffComponent command allows a client to request information for a tariff component identifier that may no longer be available in the TariffPeriods attributes.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameGetTariffComponent
Directionclient → server
ConformanceM
ResponseGetTariffComponentResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TariffComponentIDtariffComponentIDuint32M——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1792,
    "command_name": "GetTariffComponent",
    "payload": {
      "tariffComponentID": 1
    }
  }
}

The device answers with GetTariffComponentResponse (see below).


Command: GetTariffComponentResponse

Purpose

The GetTariffComponentResponse command is sent in response to a GetTariffComponent command.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameGetTariffComponentResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Labellabelstring (nullable)Mmax length 128A free-form label for the tariff period.
1DayEntryIDsdayEntryIDslist of uint32M1 to 96 entries—
2TariffComponenttariffComponentTariffComponentStructM—Indicates the TariffComponentStruct whose TariffComponentID field matches the requested GetTariffComponentTariffComponentID.

Command: GetDayEntry

Purpose

The GetDayEntry command allows a client to request information for a calendar day entry identifier that may no longer be available in the CalendarPeriods or IndividualDays attributes.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameGetDayEntry
Directionclient → server
ConformanceM
ResponseGetDayEntryResponse
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0DayEntryIDdayEntryIDuint32M——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 1792,
    "command_name": "GetDayEntry",
    "payload": {
      "dayEntryID": 1
    }
  }
}

The device answers with GetDayEntryResponse (see below).


Command: GetDayEntryResponse

Purpose

The GetDayEntryResponse command is sent in response to a GetDayEntry command.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameGetDayEntryResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0DayEntrydayEntryDayEntryStructM——

Cluster 1792 Events

Cluster 1792 defines no events.


SmartphoneKey Notes

  • Cluster 1792 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
  • Shadow paths follow endpoint/1792/attribute; attribute values that the device reports as unreadable are written as n/a.
  • Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.