Energy and metering152 — Device Energy Management

Matter Cluster 152 — Device Energy Management

Matter Cluster 152 (0x0098) Device Energy Management: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 152 — Device Energy Management Cluster

Matter Cluster 152, also written as 0x0098, is the Device Energy Management Cluster. This cluster allows a client to manage the power draw of a device. An example of such a client could be an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA). In most deployments the EMS will be the client, and the ESA will host the Device Energy Management Cluster server.

Cluster Identity

FieldValue
Cluster ID decimal152
Cluster ID hex0x0098
Cluster nameDevice Energy Management
Cluster revision (Matter 1.6.1)4
Roleapplication
ScopeEndpoint
PICS codeDEM
Typical endpoint1

Revision history

RevisionChange
1Initial revision
2Updates after 0.7 Ballot review
3Updates to match cluster spec updates
4Updates to feature conformance. Corrected ForecastID type

Shadow Path Format

Cluster 152 values in the device shadow use this format:

endpoint_id / 152 / attribute_id

Example:

{
  "1/152/0": 0
}
PartMeaning
1Endpoint ID
152Device Energy Management cluster
0ESAType attribute

Cluster 152 Features

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

BitCodeFeatureConformanceMeaning
0PAPowerAdjustmentOAllows an EMS to make a temporary power adjustment (within the limits offered by the ESA).
1PFRPowerForecastReporting[!PA], STA | PAU | FA | CON, OAllows an ESA to advertise its indicative future power consumption vs time.
2SFRStateForecastReporting[!PA]Allows an ESA to advertise its indicative future state vs time.
3STAStartTimeAdjustmentOAllows an EMS to delay an ESA's planned operation.
4PAUPausableOAllows an EMS to pause an ESA's planned operation.
5FAForecastAdjustmentOAllows an EMS to adjust an ESA's planned operation.
6CONConstraintBasedAdjustmentOAllows an EMS to request constraints to an ESA's planned operation.

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


Data Types

AdjustmentCauseEnum

ValueNameConformanceMeaning
0LocalOptimizationMThe adjustment is to optimize the local energy usage
1GridOptimizationMThe adjustment is to optimize the grid energy usage

CauseEnum

ValueNameConformanceMeaning
0NormalCompletionMThe ESA completed the adjustment as requested
1OfflineMThe ESA was set to offline
2FaultMThe ESA has developed a fault could not complete the adjustment
3UserOptOutMThe user has disabled the ESA's flexibility capability
4CancelledMThe adjustment was cancelled by a client

CostTypeEnum

ValueNameConformanceMeaning
0FinancialMFinancial cost
1GHGEmissionsMGrid CO2e grams cost
2ComfortMConsumer comfort impact cost
3TemperatureMTemperature impact cost

ESAStateEnum

ValueNameConformanceMeaning
0OfflineMThe ESA is not available to the EMS (e.g. start-up, maintenance mode)
1OnlineMThe ESA is working normally and can be controlled by the EMS
2FaultMThe ESA has developed a fault and cannot provide service
3PowerAdjustActivePAThe ESA is in the middle of a power adjustment event
4PausedPAUThe ESA is currently paused by a client using the PauseRequest command

ESATypeEnum

ValueNameConformanceMeaning
0EVSEOEV Supply Equipment
1SpaceHeatingOSpace heating appliance
2WaterHeatingOWater heating appliance
3SpaceCoolingOSpace cooling appliance
4SpaceHeatingCoolingOSpace heating and cooling appliance
5BatteryStorageOBattery Electric Storage System
6SolarPVOSolar PV inverter
7FridgeFreezerOFridge / Freezer
8WashingMachineOWashing Machine
9DishwasherODishwasher
10CookingOCooking appliance
11HomeWaterPumpOHome water pump (e.g. drinking well)
12IrrigationWaterPumpOIrrigation water pump
13PoolPumpOPool pump
255OtherOOther appliance type

ForecastUpdateReasonEnum

ValueNameConformanceMeaning
0InternalOptimizationMThe update was due to internal ESA device optimization
1LocalOptimizationMThe update was due to local EMS optimization
2GridOptimizationMThe update was due to grid optimization

OptOutStateEnum

ValueNameConformanceMeaning
0NoOptOutMThe user has not opted out of either local or grid optimizations
1LocalOptOutMThe user has opted out of local EMS optimizations only
2GridOptOutMThe user has opted out of grid EMS optimizations only
3OptOutMThe user has opted out of all external optimizations

PowerAdjustReasonEnum

ValueNameConformanceMeaning
0NoAdjustmentMThere is no Power Adjustment active
1LocalOptimizationAdjustmentMThere is PowerAdjustment active due to local EMS optimization
2GridOptimizationAdjustmentMThere is PowerAdjustment active due to grid optimization

ConstraintsStruct (struct)

The ConstraintsStruct allows a client to inform an ESA about a constraint period (such as a grid event, or perhaps excess solar PV). The format allows the client to suggest that the ESA can either turn up its energy consumption, or turn down its energy consumption during this period.

FieldNameTypeConformanceConstraintMeaning
0StartTimeepoch-sMdescIndicates the start time of the constraint period that the client wishes the ESA to compute a new Forecast.
1Durationelapsed-sMmax 86400Indicates the duration of the constraint in seconds.
2NominalPowerpower-mWPFRdescIndicates the nominal power that client wishes the ESA to operate at during the constrained period.
3MaximumEnergyenergy-mWhPFR—Indicates the maximum energy that can be transferred to or from the ESA during the constraint period.
4LoadControlint8SFR—Indicates the turn up or turn down nature that the grid wants as the outcome by the ESA during the constraint period.

CostStruct (struct)

This indicates a generic mechanism for expressing cost to run an appliance, in terms of financial, GHG emissions, comfort value etc.

FieldNameTypeConformanceConstraintMeaning
0CostTypeCostTypeEnumM—Indicates the type of cost being represented.
1Valueint32M—Indicates the value of the cost.
2DecimalPointsuint8M—Indicates the number of digits to the right of the decimal point in the Value field.
3Currencyuint16Omax 999Indicates the currency for the value in the Value field.

ForecastStruct (struct)

This indicates a list of 'slots' describing the overall timing of the ESA's planned energy and power use, with different power and energy demands per slot. For example, slots might be used to describe the distinct stages of a washing machine cycle.

FieldNameTypeConformanceConstraintMeaning
0ForecastIDuint32M——
1ActiveSlotNumberuint16 (nullable)M—Indicates which element of the Slots list is currently active in the Forecast sequence.
2StartTimeepoch-sM—Indicates the planned start time, in UTC, for the entire Forecast.
3EndTimeepoch-sM—Indicates the planned end time, in UTC, for the entire Forecast.
4EarliestStartTimeepoch-s (nullable)STA—Indicates the earliest start time, in UTC, that the entire Forecast can be shifted to.
5LatestEndTimeepoch-sSTA—Indicates the latest end time, in UTC, for the entire Forecast. e.g. for an EVSE charging session, this may indicate the departure time for the vehicle, by which time the charging session must end.
6IsPausableboolM—Indicates that some part of the Forecast can be paused.
7Slotslist of SlotStructMmax 10 entriesThis field contains a list of SlotStructs.
8ForecastUpdateReasonForecastUpdateReasonEnumM—This field contains the reason the current Forecast was generated.

PowerAdjustCapabilityStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0PowerAdjustCapabilitylist of PowerAdjustStruct (nullable)Mmax 8 entriesIndicates how the ESA can be adjusted at the current time.
1CausePowerAdjustReasonEnumM——

PowerAdjustStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0MinPowerpower-mWM—Indicates the minimum power that the ESA can have its power adjusted to.
1MaxPowerpower-mWMmin MinPowerIndicates the maximum power that the ESA can have its power adjusted to.
2MinDurationelapsed-sM—Indicates the minimum duration, in seconds, that a controller may invoke an ESA power adjustment.
3MaxDurationelapsed-sMmin MinDurationIndicates the maximum duration, in seconds, that a controller may invoke an ESA power adjustment.

SlotAdjustmentStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0SlotIndexuint8MdescIndicates the index into the Slots list within the Forecast that is to be modified.
1NominalPowerpower-mWPFRdescIndicates the new requested power that the ESA must operate at.
2Durationelapsed-sMdescIndicates the new requested duration, in seconds, that the ESA must extend or shorten the slot duration to.

SlotStruct (struct)

This indicates a specific stage of an ESA's operation.

FieldNameTypeConformanceConstraintMeaning
0MinDurationelapsed-sM—Indicates the minimum time (in seconds) that the appliance expects to be in this slot for.
1MaxDurationelapsed-sM—Indicates the maximum time (in seconds) that the appliance expects to be in this slot for.
2DefaultDurationelapsed-sM—Indicates the expected time (in seconds) that the appliance expects to be in this slot for.
3ElapsedSlotTimeelapsed-sM—Indicates the time (in seconds) that has already elapsed whilst in this slot.
4RemainingSlotTimeelapsed-sM—Indicates the time (in seconds) that is estimated to be remaining.
5SlotIsPausableboolPAU—Indicates whether this slot can be paused.
6MinPauseDurationelapsed-sPAU—Indicates the shortest period that the slot can be paused for.
7MaxPauseDurationelapsed-sPAU—Indicates the longest period that the slot can be paused for.
8ManufacturerESAStateuint16SFR——
9NominalPowerpower-mWPFR—Indicates the expected power that the appliance will use during this slot.
10MinPowerpower-mWPFR—Indicates the lowest power that the appliance expects to use during this slot.
11MaxPowerpower-mWPFR—Indicates the maximum power that the appliance expects to use during this slot.
12NominalEnergyenergy-mWhPFR—Indicates the expected energy that the appliance expects to use or produce during this slot.
13Costslist of CostStructOmax 5 entriesIndicates the current estimated cost for operating.
14MinPowerAdjustmentpower-mWFA & PFR—Indicates the minimum power that the appliance can be requested to use.
15MaxPowerAdjustmentpower-mWFA & PFR—Indicates the maximum power that the appliance can be requested to use.
16MinDurationAdjustmentelapsed-sFA—Indicates the minimum time, in seconds, that the slot can be requested to shortened to.
17MaxDurationAdjustmentelapsed-sFA—Indicates the maximum time, in seconds, that the slot can be requested to extended to.

Cluster 152 Attributes

Cluster 152 defines 8 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
00x0000ESATypeESATypeEnumMR (read: view)——
10x0001ESACanGenerateboolMR (read: view)——
20x0002ESAStateESAStateEnumMR (read: view)——
30x0003AbsMinPowerpower-mWMR (read: view)——
40x0004AbsMaxPowerpower-mWMR (read: view)——
50x0005PowerAdjustmentCapabilityPowerAdjustCapabilityStructPAR (read: view)nullable, quiet reporting—
60x0006ForecastForecastStructPFR | SFRR (read: view)nullable, quiet reporting—
70x0007OptOutStateOptOutStateEnumPA | STA | PAU | FA | CONR (read: view)——

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; 4 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — ESAType

Path example:

1/152/0

No condensed specification text is available for ESAType; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
TypeESATypeEnum
ConformanceM
AccessR (read: view)

Values (ESATypeEnum):

ValueNameMeaning
0EVSEEV Supply Equipment
1SpaceHeatingSpace heating appliance
2WaterHeatingWater heating appliance
3SpaceCoolingSpace cooling appliance
4SpaceHeatingCoolingSpace heating and cooling appliance
5BatteryStorageBattery Electric Storage System
6SolarPVSolar PV inverter
7FridgeFreezerFridge / Freezer
8WashingMachineWashing Machine
9DishwasherDishwasher
10CookingCooking appliance
11HomeWaterPumpHome water pump (e.g. drinking well)
12IrrigationWaterPumpIrrigation water pump
13PoolPumpPool pump
255OtherOther appliance type

Example:

{
  "1/152/0": 0
}

Attribute 1 / 0x0001 — ESACanGenerate

Path example:

1/152/1

No condensed specification text is available for ESACanGenerate; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typebool
ConformanceM
AccessR (read: view)

Example:

{
  "1/152/1": true
}

Attribute 2 / 0x0002 — ESAState

Path example:

1/152/2

No condensed specification text is available for ESAState; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
TypeESAStateEnum
ConformanceM
AccessR (read: view)
Constraintdesc

Values (ESAStateEnum):

ValueNameMeaning
0OfflineThe ESA is not available to the EMS (e.g. start-up, maintenance mode)
1OnlineThe ESA is working normally and can be controlled by the EMS
2FaultThe ESA has developed a fault and cannot provide service
3PowerAdjustActiveThe ESA is in the middle of a power adjustment event
4PausedThe ESA is currently paused by a client using the PauseRequest command

Example:

{
  "1/152/2": 0
}

Attribute 3 / 0x0003 — AbsMinPower

Path example:

1/152/3

Indicates the minimum electrical power that the ESA can consume when switched on. This does not include when in power save or standby modes. For Generator ESAs that can discharge an internal battery (such as a battery storage inverter) to loads in the home, the AbsMinPower will be a negative number representing the maximum power that the ESA can discharge its internal battery.

PropertyValue
Typepower-mW
ConformanceM
AccessR (read: view)

Example:

{
  "1/152/3": 1
}

Attribute 4 / 0x0004 — AbsMaxPower

Path example:

1/152/4

Indicates the maximum electrical power that the ESA can consume when switched on. Note that for Generator ESAs that can charge a battery by importing power into the node (such as a battery storage inverter), the AbsMaxPower will be a positive number representing the maximum power at which the ESA can charge its internal battery. For example, a battery storage inverter that can charge its battery at a maximum power of 2000W and can discharge the battery at a maximum power of 3000W, would have a AbsMinPower: -3000, AbsMaxPower: 2000W.

PropertyValue
Typepower-mW
ConformanceM
AccessR (read: view)
Constraintmin AbsMinPower

Example:

{
  "1/152/4": 1
}

Attribute 5 / 0x0005 — PowerAdjustmentCapability

Path example:

1/152/5

Indicates how the ESA can be adjusted at the current time, and the state of any active adjustment. A null value indicates that no power adjustment is currently possible, and nor is any adjustment currently active. This attribute should be updated periodically by ESAs to reflect any changes in internal state, for example temperature or stored energy, which would affect the power or duration limits. Changes to this attribute only be marked as reportable in the following cases: - At most once every 10 seconds on changes, or - When it changes from null to any other value and vice versa.

PropertyValue
TypePowerAdjustCapabilityStruct
ConformancePA
AccessR (read: view)
Qualitiesnullable, quiet reporting

Value is a PowerAdjustCapabilityStruct struct (see Data Types).

Example:

{
  "1/152/5": {
    "powerAdjustCapability": [],
    "cause": 0
  }
}

Attribute 6 / 0x0006 — Forecast

Path example:

1/152/6

This attribute allows an ESA to share its intended forecast with a client (such as an Energy Management System). A null value indicates that there is no forecast currently available (for example, a program has not yet been selected by the user). A server may reset this value attribute to null on a reboot, and it does not need to persist any previous forecasts.

PropertyValue
TypeForecastStruct
ConformancePFR | SFR
AccessR (read: view)
Qualitiesnullable, quiet reporting

Value is a ForecastStruct struct (see Data Types).

Example:

{
  "1/152/6": {
    "forecastID": 1,
    "activeSlotNumber": 1,
    "startTime": 0,
    "endTime": 0
  }
}

Attribute 7 / 0x0007 — OptOutState

Path example:

1/152/7

Indicates the current Opt-Out state of the ESA. The ESA may have a local user interface to allow the user to control this OptOutState. An EMS may subscribe to the OptOutState to get notified about changes in operational state. If the ESA is in the LocalOptOut or OptOut states, so it cannot be controlled by an EMS for local optimization reasons, it must reject any commands which have the AdjustmentCauseEnum value LocalOptimization.

PropertyValue
TypeOptOutStateEnum
ConformancePA | STA | PAU | FA | CON
AccessR (read: view)
Constraintdesc

Values (OptOutStateEnum):

ValueNameMeaning
0NoOptOutThe user has not opted out of either local or grid optimizations
1LocalOptOutThe user has opted out of local EMS optimizations only
2GridOptOutThe user has opted out of grid EMS optimizations only
3OptOutThe user has opted out of all external optimizations

Example:

{
  "1/152/7": 0
}

Cluster 152 Commands

Cluster 152 has 8 client-to-server commands and 0 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00PowerAdjustRequestclient → serverPAstatusAllows a client to request an adjustment in the power consumption of an ESA for a specified duration.
10x01CancelPowerAdjustRequestclient → serverPAstatusAllows a client to cancel an ongoing PowerAdjustmentRequest operation.
20x02StartTimeAdjustRequestclient → serverSTAstatusAllows a client to adjust the start time of a Forecast sequence that has not yet started operation (i.e. where the current Forecast StartTime is in the future).
30x03PauseRequestclient → serverPAUstatusAllows a client to temporarily pause an operation and reduce the ESAs energy demand.
40x04ResumeRequestclient → serverPAUstatusAllows a client to cancel the PauseRequest command and enable earlier resumption of operation.
50x05ModifyForecastRequestclient → serverFAstatusAllows a client to modify a Forecast within the limits allowed by the ESA.
60x06RequestConstraintBasedForecastclient → serverCONstatusAllows a client to ask the ESA to recompute its Forecast based on power and time constraints.
70x07CancelRequestclient → serverSTA | FA | CONstatusAllows a client to request cancellation of a previous adjustment request in a StartTimeAdjustRequest, ModifyForecastRequest or RequestConstraintBasedForecast command.

AcceptedCommandList

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

endpoint_id / 152 / 65529
{
  "1/152/65529": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7
  ]
}

Before sending a Cluster 152 command, check that the command ID exists in endpoint/152/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": 152,
    "command_name": "PowerAdjustRequest",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 152, always use "cluster_id": 152. 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: PowerAdjustRequest

Purpose

Allows a client to request an adjustment in the power consumption of an ESA for a specified duration.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command namePowerAdjustRequest
Directionclient → server
ConformancePA
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Powerpowerpower-mWMdescIndicates the power that the ESA must use during the adjustment period. This value is between the MinPower and MaxPower fields of the PowerAdjustStruct in the PowerAdjustmentCapability attribute.
1Durationdurationelapsed-sMdescIndicates the duration that the ESA must maintain the requested power for. This value is between the MinDuration and MaxDuration fields of the PowerAdjustStruct in the PowerAdjustmentCapability attribute.
2CausecauseAdjustmentCauseEnumMdescIndicates the cause of the request from the EMS.

Cause values (AdjustmentCauseEnum): 0 = LocalOptimization, 1 = GridOptimization

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "PowerAdjustRequest",
    "payload": {
      "power": 1,
      "duration": 1,
      "cause": 0
    }
  }
}

Command: CancelPowerAdjustRequest

Purpose

Allows a client to cancel an ongoing PowerAdjustmentRequest operation.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameCancelPowerAdjustRequest
Directionclient → server
ConformancePA
Responsestatus
Access(invoke: operate)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "CancelPowerAdjustRequest",
    "payload": {}
  }
}

Command: StartTimeAdjustRequest

Purpose

Allows a client to adjust the start time of a Forecast sequence that has not yet started operation (i.e. where the current Forecast StartTime is in the future).

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameStartTimeAdjustRequest
Directionclient → server
ConformanceSTA
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0RequestedStartTimerequestedStartTimeepoch-sMdescIndicates the requested start time, in UTC, that the client would like the appliance to shift its Forecast to. This value is in the future.
1CausecauseAdjustmentCauseEnumM—Indicates the cause of the request from the EMS.

Cause values (AdjustmentCauseEnum): 0 = LocalOptimization, 1 = GridOptimization

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "StartTimeAdjustRequest",
    "payload": {
      "requestedStartTime": 0,
      "cause": 0
    }
  }
}

Command: PauseRequest

Purpose

Allows a client to temporarily pause an operation and reduce the ESAs energy demand.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command namePauseRequest
Directionclient → server
ConformancePAU
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Durationdurationelapsed-sMdescIndicates the duration that the ESA is paused for. This value is between the MinPauseDuration and MaxPauseDuration indicated in the ActiveSlotNumber index in the Slots list in the Forecast.
1CausecauseAdjustmentCauseEnumM—Indicates the cause of the request from the EMS.

Cause values (AdjustmentCauseEnum): 0 = LocalOptimization, 1 = GridOptimization

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "PauseRequest",
    "payload": {
      "duration": 1,
      "cause": 0
    }
  }
}

Command: ResumeRequest

Purpose

Allows a client to cancel the PauseRequest command and enable earlier resumption of operation.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameResumeRequest
Directionclient → server
ConformancePAU
Responsestatus
Access(invoke: operate)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "ResumeRequest",
    "payload": {}
  }
}

Command: ModifyForecastRequest

Purpose

Allows a client to modify a Forecast within the limits allowed by the ESA.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameModifyForecastRequest
Directionclient → server
ConformanceFA
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ForecastIDforecastIDuint32M——
1SlotAdjustmentsslotAdjustmentslist of SlotAdjustmentStructMmax 10 entriesThis field contains a list of SlotAdjustment parameters that should be modified in the corresponding Forecast with matching ForecastID.
2CausecauseAdjustmentCauseEnumM—Indicates the cause of the request from the EMS.

Cause values (AdjustmentCauseEnum): 0 = LocalOptimization, 1 = GridOptimization

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "ModifyForecastRequest",
    "payload": {
      "forecastID": 1,
      "slotAdjustments": [],
      "cause": 0
    }
  }
}

Command: RequestConstraintBasedForecast

Purpose

Allows a client to ask the ESA to recompute its Forecast based on power and time constraints.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameRequestConstraintBasedForecast
Directionclient → server
ConformanceCON
Responsestatus
Access(invoke: operate)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0Constraintsconstraintslist of ConstraintsStructMmax 10 entriesIndicates the series of turn up or turn down power requests that the ESA is being asked to constrain its operation within. These requests is in the future, is in chronological order, starting with the earliest start time, and must NOT overlap in time.
1CausecauseAdjustmentCauseEnumM—Indicates the cause of the request from the EMS.

Cause values (AdjustmentCauseEnum): 0 = LocalOptimization, 1 = GridOptimization

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "RequestConstraintBasedForecast",
    "payload": {
      "constraints": [],
      "cause": 0
    }
  }
}

Command: CancelRequest

Purpose

Allows a client to request cancellation of a previous adjustment request in a StartTimeAdjustRequest, ModifyForecastRequest or RequestConstraintBasedForecast command.

Command Identity

FieldValue
Command ID7
Command hex0x07
Command nameCancelRequest
Directionclient → server
ConformanceSTA | FA | CON
Responsestatus
Access(invoke: operate)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 1,
    "cluster_id": 152,
    "command_name": "CancelRequest",
    "payload": {}
  }
}

Cluster 152 Events

IDHexEventPriorityConformanceDescription
00x00PowerAdjustStartinfoPAThis event is generated when the Power Adjustment session is started.
10x01PowerAdjustEndinfoPAThis event is generated when the Power Adjustment session ends.
20x02PausedinfoPAUThis event is generated when the ESA enters the Paused state.
30x03ResumedinfoPAUThis event is generated when the ESA leaves the Paused state and resumes operation.

Event 0 — PowerAdjustStart

This event is generated when the Power Adjustment session is started.

This event has no fields.

Event 1 — PowerAdjustEnd

This event is generated when the Power Adjustment session ends.

IDFieldTypeConformanceMeaning
0CauseCauseEnumMIndicates the reason why the power adjustment session ended.
1Durationelapsed-sMIndicates the number of seconds that the power adjustment session lasted before ending.
2EnergyUseenergy-mWhMIndicates the approximate energy used by the ESA during the session. For example, if the ESA was on and was adjusted to be switched off, then this is 0 mWh.

Event 2 — Paused

This event is generated when the ESA enters the Paused state. There is no data for this event.

This event has no fields.

Event 3 — Resumed

This event is generated when the ESA leaves the Paused state and resumes operation.

IDFieldTypeConformanceMeaning
0CauseCauseEnumMIndicates the reason why the pause ended.

SmartphoneKey Notes

  • Cluster 152 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/152/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.