Attributes

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 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. Nullable: false.

    Declaration

    Swift

    @TraitAttribute
    var setpointChangeSource: Matter.ThermostatTrait.SetpointChangeSourceEnum? { get }
  • The delta between the current active occupiedCoolingSetpoint or occupiedHeatingSetpoint 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 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. 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 the ThermostatTrait/Attributes/unoccupiedCoolingSetback setpoint (in other words, ThermostatTrait/Attributes/unoccupiedCoolingSetback + ThermostatTrait/Attributes/unoccupiedSetback ) or below the ThermostatTrait/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 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. 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. Throws HomeError.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 and b, a == b implies that a != b is false.

    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. Call hasher.combine(_:) with each of these components.

    Important

    In your implementation of hash(into:), don’t call finalize() on the hasher 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)