struct Attributes
Attributes for the ThermostatTrait
.
-
A list of the attribute IDs of the attributes supported by the cluster instance. Nullable: false.
Declaration
Swift
@TraitAttribute var attributeList: [UInt32]? { get }
-
The current temperature. The value may be local or remote, depending on the value of
ThermostatTrait/Attributes/RemoteSensing
. Nullable: true.Declaration
Swift
@TraitAttribute var localTemperature: Int16? { get }
-
The outdoor temperature, as measured locally or remotely (over the network). Nullable: true.
Declaration
Swift
@TraitAttribute var outdoorTemperature: Int16? { get }
-
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. Nullable: false.Declaration
Swift
@TraitAttribute var occupancy: Matter.ThermostatTrait.OccupancyBitmap? { get }
-
The absolute minimum level that the heating setpoint may be set to. This is a limitation imposed by the manufacturer. Nullable: false.
Declaration
Swift
@TraitAttribute var absMinHeatSetpointLimit: Int16? { get }
-
The absolute maximum level that the heating setpoint may be set to. This is a limitation imposed by the manufacturer. Nullable: false.
Declaration
Swift
@TraitAttribute var absMaxHeatSetpointLimit: Int16? { get }
-
The absolute minimum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer. Nullable: false.
Declaration
Swift
@TraitAttribute var absMinCoolSetpointLimit: Int16? { get }
-
The absolute maximum level that the cooling setpoint may be set to. This is a limitation imposed by the manufacturer. Nullable: false.
Declaration
Swift
@TraitAttribute var absMaxCoolSetpointLimit: Int16? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var piCoolingDemand: UInt8? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var piHeatingDemand: UInt8? { get }
-
The HVAC system type controlled by the thermostat. Each bit represents a type of system configuration. Nullable: false.
Declaration
Swift
@TraitAttribute var hvacSystemTypeConfiguration: Matter.ThermostatTrait.HvacSystemTypeBitmap? { get }
-
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. Nullable: false.Declaration
Swift
@TraitAttribute var localTemperatureCalibration: Int8? { get }
-
The cooling mode setpoint when the room is occupied. Nullable: false.
Declaration
Swift
@TraitAttribute var occupiedCoolingSetpoint: Int16? { get }
-
The heating mode setpoint when the room is occupied. Nullable: false.
Declaration
Swift
@TraitAttribute var occupiedHeatingSetpoint: Int16? { get }
-
The cooling mode setpoint when the room is unoccupied. Nullable: false.
Declaration
Swift
@TraitAttribute var unoccupiedCoolingSetpoint: Int16? { get }
-
The heating mode setpoint when the room is unoccupied. Nullable: false.
Declaration
Swift
@TraitAttribute var unoccupiedHeatingSetpoint: Int16? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var minHeatSetpointLimit: Int16? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var maxHeatSetpointLimit: Int16? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var minCoolSetpointLimit: Int16? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var maxCoolSetpointLimit: Int16? { get }
-
On devices which support the auto feature, this specifies the minimum difference between the heat setpoint and the cool setpoint. Nullable: false.
Declaration
Swift
@TraitAttribute var minSetpointDeadBand: Int8? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var remoteSensing: Matter.ThermostatTrait.RemoteSensingBitmap? { get }
-
The possible system modes that the thermostat can operate in. Valid modes are defined by
ThermostatTrait/Attributes/ControlSequenceOfOperationEnum
. Nullable: false.Declaration
Swift
@TraitAttribute var controlSequenceOfOperation: Matter.ThermostatTrait.ControlSequenceOfOperationEnum? { get }
-
The current operating mode of the thermostat. Valid values are defined by
ThermostatTrait/Attributes/SystemModeEnum
. Nullable: false.Declaration
Swift
@TraitAttribute var systemMode: Matter.ThermostatTrait.SystemModeEnum? { get }
-
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. Nullable: false.Declaration
Swift
@TraitAttribute var thermostatRunningMode: Matter.ThermostatTrait.ThermostatRunningModeEnum? { get }
-
The day of the week that this thermostat considers to be the start of week for weekly setpoint scheduling. Nullable: false.
Declaration
Swift
@TraitAttribute var startOfWeek: Matter.ThermostatTrait.StartOfWeekEnum? { get }
-
The number of weekly schedule transitions the thermostat can handle. Nullable: false.
Declaration
Swift
@TraitAttribute var numberOfWeeklyTransitions: UInt8? { get }
-
The number of daily schedule transitions the thermostat can handle. Nullable: false.
Declaration
Swift
@TraitAttribute var numberOfDailyTransitions: UInt8? { get }
-
The temperature hold status on the thermostat. Nullable: false.
Declaration
Swift
@TraitAttribute var temperatureSetpointHold: Matter.ThermostatTrait.TemperatureSetpointHoldEnum? { get }
-
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. Nullable: true.
Declaration
Swift
@TraitAttribute var temperatureSetpointHoldDuration: UInt16? { get }
-
The operational state of the thermostat’s programming. For complete details, see the Matter Specification. Nullable: false.
Declaration
Swift
@TraitAttribute var thermostatProgrammingOperationMode: Matter.ThermostatTrait.ProgrammingOperationModeBitmap? { get }
-
The current relay state of the heat, cool, and fan relays. Nullable: false.
Declaration
Swift
@TraitAttribute var thermostatRunningState: Matter.ThermostatTrait.RelayStateBitmap? { get }
-
The source of the current active
occupiedCoolingSetpoint
oroccupiedHeatingSetpoint
(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. Nullable: false.Declaration
Swift
@TraitAttribute var setpointChangeSource: Matter.ThermostatTrait.SetpointChangeSourceEnum? { get }
-
The delta between the current active
occupiedCoolingSetpoint
oroccupiedHeatingSetpoint
and the previous active setpoint. A null value indicates that the previous setpoint was unknown. Nullable: true.Declaration
Swift
@TraitAttribute var setpointChangeAmount: Int16? { get }
-
The UTC time at which the
setpointChangeSource
change was recorded. Nullable: false.Declaration
Swift
@TraitAttribute var setpointChangeSourceTimestamp: UInt32? { get }
-
The amount that the thermostat will allow the
localTemperature
attribute to float above theoccupiedCoolingSetpoint
(in other words,occupiedCoolingSetpoint
+occupiedSetback
) or below theoccupiedHeatingSetpoint
(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. Nullable: true.Declaration
Swift
@TraitAttribute var occupiedSetback: UInt8? { get }
-
The minimum value that the user can set the
occupiedSetback
to. A null value indicates the attribute is unused. Nullable: true.Declaration
Swift
@TraitAttribute var occupiedSetbackMin: UInt8? { get }
-
The maximum value that the user can set the
occupiedSetback
to. A null value indicates the attribute is unused. Nullable: true.Declaration
Swift
@TraitAttribute var occupiedSetbackMax: UInt8? { get }
-
The amount that the thermostat server will allow the
localTemperature
attribute to float above theThermostatTrait/Attributes/unoccupiedCoolingSetback
setpoint (in other words,ThermostatTrait/Attributes/unoccupiedCoolingSetback
+ThermostatTrait/Attributes/unoccupiedSetback
) or below theThermostatTrait/Attributes/unoccupiedHeatingSetback
setpoint (in other words,ThermostatTrait/Attributes/unoccupiedHeatingSetback
-ThermostatTrait/Attributes/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. Nullable: true.Declaration
Swift
@TraitAttribute var unoccupiedSetback: UInt8? { get }
-
The minimum value that the user can set the
unoccupiedSetback
to. A null value indicates the attribute is unused. Nullable: true.Declaration
Swift
@TraitAttribute var unoccupiedSetbackMin: UInt8? { get }
-
The maximum value that the user can set the
unoccupiedSetback
to. A null value indicates the attribute is unused. Nullable: true.Declaration
Swift
@TraitAttribute var unoccupiedSetbackMax: UInt8? { get }
-
The delta between the
localTemperature
attribute andoccupiedHeatingSetpoint
orunoccupiedHeatingSetpoint
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. Nullable: false.Declaration
Swift
@TraitAttribute var emergencyHeatDelta: UInt8? { get }
-
The type of mini split AC in terms of how cooling and heating is accomplished by the device. Nullable: false.
Declaration
Swift
@TraitAttribute var acType: Matter.ThermostatTrait.ACTypeEnum? { get }
-
The capacity of the mini split AC as expressed by
ThermostatTrait/Attributes/ACCapacityformat
. Nullable: false.Declaration
Swift
@TraitAttribute var acCapacity: UInt16? { get }
-
Type of refrigerant used within the mini split AC. Nullable: false.
Declaration
Swift
@TraitAttribute var acRefrigerantType: Matter.ThermostatTrait.ACRefrigerantTypeEnum? { get }
-
The type of compressor used within the mini split AC. Nullable: false.
Declaration
Swift
@TraitAttribute var acCompressorType: Matter.ThermostatTrait.ACCompressorTypeEnum? { get }
-
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. Nullable: false.
Declaration
Swift
@TraitAttribute var acErrorCode: Matter.ThermostatTrait.ACErrorCodeBitmap? { get }
-
The position of the louver on the AC. Nullable: false.
Declaration
Swift
@TraitAttribute var acLouverPosition: Matter.ThermostatTrait.ACLouverPositionEnum? { get }
-
The temperature of the AC coil, as measured locally or remotely (over the network). Nullable: true.
Declaration
Swift
@TraitAttribute var acCoilTemperature: Int16? { get }
-
The format for
ThermostatTrait/Attributes/ACCapacity
. Nullable: false.Declaration
Swift
@TraitAttribute var acCapacityformat: Matter.ThermostatTrait.ACCapacityFormatEnum? { get }
-
Types of setpoint presets available. Nullable: false.
Declaration
Swift
@TraitAttribute var presetTypes: [Matter.ThermostatTrait.PresetTypeStruct]? { get }
-
Types of schedule available. Nullable: false.
Declaration
Swift
@TraitAttribute var scheduleTypes: [Matter.ThermostatTrait.ScheduleTypeStruct]? { get }
-
The number of presets the thermostat can handle. Nullable: false.
Declaration
Swift
@TraitAttribute var numberOfPresets: UInt8? { get }
-
The number of schedules the thermostat can handle. Nullable: false.
Declaration
Swift
@TraitAttribute var numberOfSchedules: UInt8? { get }
-
The number of schedule transitions the thermostat can handle. Nullable: false.
Declaration
Swift
@TraitAttribute var numberOfScheduleTransitions: UInt8? { get }
-
The number of schedule transitions per day the thermostat can handle. Nullable: true.
Declaration
Swift
@TraitAttribute var numberOfScheduleTransitionPerDay: UInt8? { get }
-
The active preset. Nullable: true.
Declaration
Swift
@TraitAttribute var activePresetHandle: Data? { get }
-
The active schedule. Nullable: true.
Declaration
Swift
@TraitAttribute var activeScheduleHandle: Data? { get }
-
Setpoint presets. Nullable: false.
Declaration
Swift
@TraitAttribute var presets: [Matter.ThermostatTrait.PresetStruct]? { get }
-
Schedules. Nullable: false.
Declaration
Swift
@TraitAttribute var schedules: [Matter.ThermostatTrait.ScheduleStruct]? { get }
-
The UTC time at which the
ThermostatTrait/Attributes/setpointHold
expires. Nullable: true.Declaration
Swift
@TraitAttribute var setpointHoldExpiryTimestamp: UInt32? { get }
-
A list of server-generated commands (server to client) which are supported by this cluster server instance. Nullable: false.
Declaration
Swift
@TraitAttribute var generatedCommandList: [UInt32]? { get }
-
A list of client-generated commands which are supported by this cluster server instance.
Nullable: false.
Declaration
Swift
@TraitAttribute var acceptedCommandList: [UInt32]? { get }
-
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). Nullable: false.
Declaration
Swift
@TraitAttribute var featureMap: Matter.ThermostatTrait.Feature? { get }
-
The revision of the server cluster specification supported by the cluster instance. Nullable: false.
Declaration
Swift
@TraitAttribute var clusterRevision: UInt16? { get }
-
The trait identifier.
Declaration
Swift
static var identifier: String { get }
-
Writes this object to the given
TraitEncoder
. ThrowsHomeError.encodingFailed
if the data could not be encoded.Declaration
Swift
func encode(with encoder: TraitEncoder) throws
-
Returns a Boolean value indicating whether two values are equal.
Equality is the inverse of inequality. For any values
a
andb
,a == b
implies thata != b
isfalse
.Declaration
Swift
static func == (lhs: Matter.ThermostatTrait.Attributes, rhs: Matter.ThermostatTrait.Attributes) -> Bool
Parameters
lhs
A value to compare.
rhs
Another value to compare.
-
Hashes the essential components of this value by feeding them into the given hasher.
Implement this method to conform to the
Hashable
protocol. The components used for hashing must be the same as the components compared in your type’s==
operator implementation. Callhasher.combine(_:)
with each of these components.Important
In your implementation of
hash(into:)
, don’t callfinalize()
on thehasher
instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.Declaration
Swift
func hash(into hasher: inout Hasher)