ThermostatTrait.Attributes

interface ThermostatTrait.Attributes

Known direct subclasses
Thermostat

API for the Thermostat trait.


Attributes for the Thermostat cluster.

Summary

Public properties

Short?

The absolute maximum level that the cooling setpoint may be set to.

Short?

The absolute maximum level that the heating setpoint may be set to.

Short?

The absolute minimum level that the cooling setpoint may be set to.

Short?

The absolute minimum level that the heating setpoint may be set to.

UShort?

The capacity of the mini split AC as expressed by ThermostatTrait.Attributes.ACCapacityformat.

ThermostatTrait.AcCapacityFormatEnum?

The format for ThermostatTrait.Attributes.ACCapacity.

Short?

The temperature of the AC coil, as measured locally or remotely (over the network).

ThermostatTrait.AcCompressorTypeEnum?

The type of compressor used within the mini split AC.

ThermostatTrait.AcErrorCodeBitmap?

This bitmap indicates the type of errors encountered within the mini split AC.

ThermostatTrait.AcLouverPositionEnum?

The position of the louver on the AC.

ThermostatTrait.AcRefrigerantTypeEnum?

Type of refrigerant used within the mini split AC.

ThermostatTrait.AcTypeEnum?

The type of mini split AC in terms of how cooling and heating is accomplished by the device.

List<UInt>

A list of client-generated commands which are supported by this cluster server instance.

ByteArray?
ByteArray?
List<UInt>

A list of the attribute IDs of the attributes supported by the cluster instance.

UShort

The revision of the server cluster specification supported by the cluster instance.

ThermostatTrait.ControlSequenceOfOperationEnum?

The possible system modes that the thermostat can operate in.

UByte?

The delta between the localTemperature attribute and occupiedHeatingSetpoint or unoccupiedHeatingSetpoint at which the thermostat server will operate in emergency heat mode.

ThermostatTrait.Feature

Whether the server supports zero or more optional cluster features.

List<UInt>

A list of server-generated commands (server to client) which are supported by this cluster server instance.

UByte?

The HVAC system type controlled by the thermostat.

Short?

The current temperature.

Byte?

The offset the thermostat server makes to the measured temperature (locally or remotely) to adjust the localTemperature attribute prior to using, displaying or reporting it.

Short?

The maximum level that the cooling setpoint may be set to.

Short?

The maximum level that the heating setpoint may be set to.

Short?

The minimum level that the cooling setpoint may be set to.

Short?

The minimum level that the heating setpoint may be set to.

Byte?

On devices which support the auto feature, this specifies the minimum difference between the heat setpoint and the cool setpoint.

UByte?

The number of daily schedule transitions the thermostat can handle.

UByte?
UByte?
UByte?
UByte?
UByte?

The number of weekly schedule transitions the thermostat can handle.

UByte?

This specifies whether the heated or cooled space is occupied or not, as measured locally or remotely (over the network).

Short?

The cooling mode setpoint when the room is occupied.

Short?

The heating mode setpoint when the room is occupied.

UByte?

The amount that the thermostat will allow the localTemperature attribute to float above the occupiedCoolingSetpoint (in other words, occupiedCoolingSetpoint + occupiedSetback ) or below the occupiedHeatingSetpoint (in other words, occupiedHeatingSetpoint - occupiedSetback ) before initiating a state change to bring the temperature back to the user's desired setpoint.

UByte?

The maximum value that the user can set the occupiedSetback to.

UByte?

The minimum value that the user can set the occupiedSetback to.

Short?
UByte?

The level of cooling demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent.

UByte?

The level of heating demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent.

List<ThermostatTrait.PresetTypeStruct>?
List<ThermostatTrait.PresetStruct>?
Boolean?
ThermostatTrait.QueuedPresetStruct?
ThermostatTrait.RemoteSensingBitmap?

This bitmap indicates when the local temperature, outdoor temperature and occupancy are being sensed by remote networked sensors, rather than internal sensors.

List<ThermostatTrait.ScheduleTypeStruct>?
List<ThermostatTrait.ScheduleStruct>?
Short?

The delta between the current active occupiedCoolingSetpoint or occupiedHeatingSetpoint and the previous active setpoint.

ThermostatTrait.SetpointChangeSourceEnum?

The source of the current active occupiedCoolingSetpoint or occupiedHeatingSetpoint (in other words, who or what determined the current setpoint).

UInt?

The time in UTC at which the ThermostatTrait.Attributes.setpointChangeSourceAmount change was recorded.

UInt?
ThermostatTrait.StartOfWeekEnum?

The day of the week that this thermostat considers to be the start of week for weekly setpoint scheduling.

ThermostatTrait.SystemModeEnum?

The current operating mode of the thermostat.

ThermostatTrait.TemperatureSetpointHoldEnum?

The temperature hold status on the thermostat.

UShort?

This sets the period in minutes for which a setpoint hold is active.

ThermostatTrait.TemperatureSetpointHoldPolicyBitmap?
ThermostatTrait.ProgrammingOperationModeBitmap?

This bitmap determines the operational state of the thermostat's programming.

ThermostatTrait.ThermostatRunningModeEnum?

The running mode of the thermostat.

ThermostatTrait.RelayStateBitmap?

The current relay state of the heat, cool, and fan relays.

Short?

The cooling mode setpoint when the room is unoccupied.

Short?

The heating mode setpoint when the room is unoccupied.

UByte?

The amount that the thermostat server will allow the localTemperature attribute to float above the ThermostatTrait.Attributes.unoccupiedCoolingSetback setpoint (in other words, ThermostatTrait.Attributes.unoccupiedCoolingSetback + unoccupiedSetback ) or below the ThermostatTrait.Attributes.unoccupiedHeatingSetback setpoint (in other words, ThermostatTrait.Attributes.unoccupiedHeatingSetback - unoccupiedSetback ) before initiating a state change to bring the temperature back to the user's desired setpoint.

UByte?

The maximum value that the user can set the unoccupiedSetback to.

UByte?

The minimum value that the user can set the unoccupiedSetback to.

Public properties

absMaxCoolSetpointLimit

val absMaxCoolSetpointLimitShort?

The absolute maximum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer.

Access type: Read

absMaxHeatSetpointLimit

val absMaxHeatSetpointLimitShort?

The absolute maximum level that the heating setpoint may be set to. This is a limitation imposed by the manufacturer.

Access type: Read

absMinCoolSetpointLimit

val absMinCoolSetpointLimitShort?

The absolute minimum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer.

Access type: Read

absMinHeatSetpointLimit

val absMinHeatSetpointLimitShort?

The absolute minimum level that the heating setpoint may be set to. This is a limitation imposed by the manufacturer.

Access type: Read

acCapacity

val acCapacityUShort?

The capacity of the mini split AC as expressed by ThermostatTrait.Attributes.ACCapacityformat.

Access type: Write

acCapacityformat

val acCapacityformatThermostatTrait.AcCapacityFormatEnum?

The format for ThermostatTrait.Attributes.ACCapacity. Set to 0, which represents British Thermal Units per Hour (BTUh).

Access type: Write

acCoilTemperature

val acCoilTemperatureShort?

The temperature of the AC coil, as measured locally or remotely (over the network).

Access type: Read

acCompressorType

val acCompressorTypeThermostatTrait.AcCompressorTypeEnum?

The type of compressor used within the mini split AC. Valid values are:

  • Unknown — The mini split AC uses an unknown compressor type.
  • T1 — The mini split AC uses a compressor with a maximum working ambient temperature of 43 °C.
  • T2 — The mini split AC uses a compressor with a maximum working ambient temperature of 35 °C.
  • T3 — The mini split AC uses a compressor with a maximum working ambient temperature of 52 °C.

Access type: Write

acErrorCode

val acErrorCodeThermostatTrait.AcErrorCodeBitmap?

This bitmap indicates the type of errors encountered within the mini split AC. Error codes are reported with four-byte values. Each bit within the four bytes indicates a unique error code. For more details, see the Matter Specification.

Access type: Write

acLouverPosition

val acLouverPositionThermostatTrait.AcLouverPositionEnum?

The position of the louver on the AC. Valid values:

  • Closed — The louver is fully closed.
  • Open — The louver is fully open.
  • Quarter — The louver is quarter open.
  • Half — The louver is half open.
  • ThreeQuarters — The louver is three quarters open.

Access type: Write

acRefrigerantType

val acRefrigerantTypeThermostatTrait.AcRefrigerantTypeEnum?

Type of refrigerant used within the mini split AC. Valid values:

  • Unknown — The mini split AC uses an unknown refrigerant type.
  • R22 — The mini split AC uses R22 Refrigerant.
  • R410a — The mini split AC uses R410a Refrigerant.
  • R407c — The mini split AC uses R407c Refrigerant.

Access type: Write

acType

val acTypeThermostatTrait.AcTypeEnum?

The type of mini split AC in terms of how cooling and heating is accomplished by the device. Valid values:

  • 0: Unknown — The AC is of an Unknown type.
  • 1: CoolingFixed — The AC incorporates cooling and fixed speed.
  • 2: HeatPumpFixed — The AC incorporates a heat pump and fixed speed.
  • 3: CoolingInverter — The AC incorporates cooling and an inverter.
  • 4: HeatPumpInverter — The AC incorporates a heat pump and inverter.

Access type: Write

acceptedCommandList

val acceptedCommandListList<UInt>

A list of client-generated commands which are supported by this cluster server instance.

activePresetHandle

val activePresetHandleByteArray?

activeScheduleHandle

val activeScheduleHandleByteArray?

attributeList

val attributeListList<UInt>

A list of the attribute IDs of the attributes supported by the cluster instance.

clusterRevision

val clusterRevisionUShort

The revision of the server cluster specification supported by the cluster instance.

controlSequenceOfOperation

val controlSequenceOfOperationThermostatTrait.ControlSequenceOfOperationEnum?

The possible system modes that the thermostat can operate in. Valid modes are defined by ThermostatTrait.Attributes.ControlSequenceOfOperationEnum.

Access type: Write

emergencyHeatDelta

val emergencyHeatDeltaUByte?

The delta between the localTemperature attribute and occupiedHeatingSetpoint or unoccupiedHeatingSetpoint at which the thermostat server will operate in emergency heat mode. The purpose of this attribute is to provide thermostat clients the ability to configure rapid heating when a setpoint is of a specified amount greater than the measured temperature. This allows the heated space to be quickly heated to the desired level set by the user.

Access type: Write

featureMap

val featureMapThermostatTrait.Feature

Whether the server supports zero or more optional cluster features. A cluster feature is a set of cluster elements that are mandatory or optional for a defined feature of the cluster. If a cluster feature is supported by the cluster instance, then the corresponding bit is set to 1, otherwise the bit is set to 0 (zero).

generatedCommandList

val generatedCommandListList<UInt>

A list of server-generated commands (server to client) which are supported by this cluster server instance.

hvacSystemTypeConfiguration

val hvacSystemTypeConfigurationUByte?

The HVAC system type controlled by the thermostat. Each bit represents a type of system configuration. Bits 0-1: Cooling Stage

  • 00: Cool Stage 1
  • 01: Cool Stage 2
  • 10: Cool Stage 3
  • 11: Reserved
Bits 2-3: Heating Stage
  • 00: Heat Stage 1
  • 01: Heat Stage 2
  • 10: Heat Stage 3
  • 11: Reserved

Access type: Write

localTemperature

val localTemperatureShort?

The current temperature. The value may be local or remote, depending on the value of RemoteSensing.

Access type: Read

localTemperatureCalibration

val localTemperatureCalibrationByte?

The offset the thermostat server makes to the measured temperature (locally or remotely) to adjust the localTemperature attribute prior to using, displaying or reporting it. The purpose of this attribute is to adjust the calibration of the thermostat server according to the user's preferences (for example, to match if there are multiple servers displaying different values for the same HVAC area) or compensate for variability amongst temperature sensors.

Access type: Write

maxCoolSetpointLimit

val maxCoolSetpointLimitShort?

The maximum level that the cooling setpoint may be set to. This allows the user to define setpoint limits more constrictive than the manufacturer imposed ones. Limiting users (for example, in a commercial building) to such setpoint limits can help conserve power.

Access type: Write

maxHeatSetpointLimit

val maxHeatSetpointLimitShort?

The maximum level that the heating setpoint may be set to. This allows the user to define setpoint limits more constrictive than the manufacturer imposed ones. Limiting users (for example, in a commercial building) to such setpoint limits can help conserve power.

Access type: Write

minCoolSetpointLimit

val minCoolSetpointLimitShort?

The minimum level that the cooling setpoint may be set to. This allows the user to define setpoint limits more constrictive than the manufacturer imposed ones. Limiting users (for example, in a commercial building) to such setpoint limits can help conserve power.

Access type: Write

minHeatSetpointLimit

val minHeatSetpointLimitShort?

The minimum level that the heating setpoint may be set to. This allows the user to define setpoint limits more constrictive than the manufacturer imposed ones. Limiting users (for example, in a commercial building) to such setpoint limits can help conserve power.

Access type: Write

minSetpointDeadBand

val minSetpointDeadBandByte?

On devices which support the auto feature, this specifies the minimum difference between the heat setpoint and the cool setpoint.

Access type: Write

numberOfDailyTransitions

val numberOfDailyTransitionsUByte?

The number of daily schedule transitions the thermostat can handle.

Access type: Read

numberOfPresets

val numberOfPresetsUByte?

numberOfScheduleTransitionPerDay

val numberOfScheduleTransitionPerDayUByte?

numberOfScheduleTransitions

val numberOfScheduleTransitionsUByte?

numberOfSchedules

val numberOfSchedulesUByte?

numberOfWeeklyTransitions

val numberOfWeeklyTransitionsUByte?

The number of weekly schedule transitions the thermostat can handle.

Access type: Read

occupancy

val occupancyUByte?

This specifies whether the heated or cooled space is occupied or not, as measured locally or remotely (over the network). If bit 0 = 1, the space is occupied, else it is unoccupied. All other bits are reserved.

Access type: Read

occupiedCoolingSetpoint

val occupiedCoolingSetpointShort?

The cooling mode setpoint when the room is occupied.

Access type: Write

occupiedHeatingSetpoint

val occupiedHeatingSetpointShort?

The heating mode setpoint when the room is occupied.

Access type: Write

occupiedSetback

val occupiedSetbackUByte?

The amount that the thermostat will allow the localTemperature attribute to float above the occupiedCoolingSetpoint (in other words, occupiedCoolingSetpoint + occupiedSetback ) or below the occupiedHeatingSetpoint (in other words, occupiedHeatingSetpoint - occupiedSetback ) before initiating a state change to bring the temperature back to the user's desired setpoint. This is sometimes also referred to as the 'span'. The purpose of this is to allow remote configuration of the span between the desired setpoint and the measured temperature to help prevent over-cycling and reduce energy bills, though this may result in lower comfort on the part of some users. A null value indicates the attribute is unused.

Access type: Write

occupiedSetbackMax

val occupiedSetbackMaxUByte?

The maximum value that the user can set the occupiedSetback to. A null value indicates the attribute is unused.

Access type: Read

occupiedSetbackMin

val occupiedSetbackMinUByte?

The minimum value that the user can set the occupiedSetback to. A null value indicates the attribute is unused.

Access type: Read

outdoorTemperature

val outdoorTemperatureShort?

piCoolingDemand

val piCoolingDemandUByte?

The level of cooling demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent. This value is 0 when the thermostat is in 'off' or 'heating' mode.

Access type: Read

piHeatingDemand

val piHeatingDemandUByte?

The level of heating demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent. This value is 0 when the thermostat is in 'off' or 'cooling' mode.

Access type: Read

presetsSchedulesEditable

val presetsSchedulesEditableBoolean?

remoteSensing

val remoteSensingThermostatTrait.RemoteSensingBitmap?

This bitmap indicates when the local temperature, outdoor temperature and occupancy are being sensed by remote networked sensors, rather than internal sensors. A bit set to 1 indicates remote sensing of the relevant value. For more details, see the Matter Specification.

Access type: Write

setpointChangeAmount

val setpointChangeAmountShort?

The delta between the current active occupiedCoolingSetpoint or occupiedHeatingSetpoint and the previous active setpoint. A null value indicates that the previous setpoint was unknown.

Access type: Read

setpointChangeSource

val setpointChangeSourceThermostatTrait.SetpointChangeSourceEnum?

The source of the current active occupiedCoolingSetpoint or occupiedHeatingSetpoint (in other words, who or what determined the current setpoint). This enables service providers to determine whether changes to setpoints were initiated due to occupant comfort, scheduled programming, or some other source, such as an electric utility or service provider. Because automation services may initiate frequent setpoint changes, this attribute clearly differentiates the source of setpoint changes made at the thermostat. May be one of the following:

  • 0 — Manual - The setpoint was set manually, by a user-initiated setpoint change via the thermostat.
  • 1 — Schedule - The setpoint was set through a schedule or internal programming-initiated change.
  • 2 — External - The setpoint was set externally (for example through a DRLC cluster command).

Access type: Read

setpointChangeSourceTimestamp

val setpointChangeSourceTimestampUInt?

The time in UTC at which the ThermostatTrait.Attributes.setpointChangeSourceAmount change was recorded.

Access type: Read

setpointHoldExpiryTimestamp

val setpointHoldExpiryTimestampUInt?

startOfWeek

val startOfWeekThermostatTrait.StartOfWeekEnum?

The day of the week that this thermostat considers to be the start of week for weekly setpoint scheduling.

  • 0 — Sunday
  • 1 — Monday
  • 2 — Tuesday
  • 3 — Wednesday
  • 4 — Thursday
  • 5 — Friday
  • 6 — Saturday

Access type: Read

systemMode

val systemModeThermostatTrait.SystemModeEnum?

The current operating mode of the thermostat. Valid values are defined by ThermostatTrait.Attributes.SystemModeEnum.

Access type: Write

temperatureSetpointHold

val temperatureSetpointHoldThermostatTrait.TemperatureSetpointHoldEnum?

The temperature hold status on the thermostat. Valid values:

  • 0 — SetpointHoldOff - Follow the scheduling program.
  • 1 — SetpointHoldOn - Maintain the current setpoint, regardless of schedule transitions.

Access type: Write

temperatureSetpointHoldDuration

val temperatureSetpointHoldDurationUShort?

This sets the period in minutes for which a setpoint hold is active. A null value indicates the field is unused. All other values are reserved.

Access type: Write

thermostatProgrammingOperationMode

val thermostatProgrammingOperationModeThermostatTrait.ProgrammingOperationModeBitmap?

This bitmap determines the operational state of the thermostat's programming. For complete details, see the Matter Specification.

Access type: Write

thermostatRunningMode

val thermostatRunningModeThermostatTrait.ThermostatRunningModeEnum?

The running mode of the thermostat. This attribute uses the ThermostatTrait.Attributes.ThermostatRunningModeEnum values. This attribute is intended to provide additional information when the thermostat is in auto mode.

Access type: Read

thermostatRunningState

val thermostatRunningStateThermostatTrait.RelayStateBitmap?

The current relay state of the heat, cool, and fan relays.

Access type: Read

unoccupiedCoolingSetpoint

val unoccupiedCoolingSetpointShort?

The cooling mode setpoint when the room is unoccupied.

Access type: Write

unoccupiedHeatingSetpoint

val unoccupiedHeatingSetpointShort?

The heating mode setpoint when the room is unoccupied.

Access type: Write

unoccupiedSetback

val unoccupiedSetbackUByte?

The amount that the thermostat server will allow the localTemperature attribute to float above the ThermostatTrait.Attributes.unoccupiedCoolingSetback setpoint (in other words, ThermostatTrait.Attributes.unoccupiedCoolingSetback + unoccupiedSetback ) or below the ThermostatTrait.Attributes.unoccupiedHeatingSetback setpoint (in other words, ThermostatTrait.Attributes.unoccupiedHeatingSetback - unoccupiedSetback ) before initiating a state change to bring the temperature back to the user's desired setpoint. This attribute is sometimes also referred to as the 'span'. The purpose of this attribute is to allow remote configuration of the span between the desired setpoint and the measured temperature to help prevent over-cycling and reduce energy bills, though this may result in lower comfort on the part of some users. A null value indicates the attribute is unused.

Access type: Write

unoccupiedSetbackMax

val unoccupiedSetbackMaxUByte?

The maximum value that the user can set the unoccupiedSetback to. A null value indicates the attribute is unused.

Access type: Read

unoccupiedSetbackMin

val unoccupiedSetbackMinUByte?

The minimum value that the user can set the unoccupiedSetback to. A null value indicates the attribute is unused.

Access type: Read