struct ThermostatTraitThis trait provides an interface to the functionality of a thermostat.
-
No supported events for
ThermostatTrait.Declaration
Swift
static let supportedEventTypes: [any Event.Type] -
List of the commands that are supported by
ThermostatTrait.Declaration
Swift
static let supportedCommandTypes: [any Command.Type] -
The trait identifier.
Declaration
Swift
static let identifier: String -
Metadata about this
Trait.Declaration
Swift
let metadata: TraitMetadata -
List of attributes for the
ThermostatTrait.Declaration
Swift
let attributes: Matter.ThermostatTrait.Attributes -
Creates a new Trait instance using data read from the given
TraitDecoder.Throws
HomeError.parseErrorwhen parsing fails.Declaration
Swift
init(decoder: TraitDecoder, interactionProxy: (any InteractionProxy)?, metadata: TraitMetadata) throwsParameters
decoderThe raw data representing this Trait.
interactionProxyProxy to the Interaction Client.
metadataMetadata about this Trait.
-
Writes this object to the given
TraitEncoder. ThrowsHomeError.encodingFailedif the data could not be encoded.Declaration
Swift
func encode(with encoder: TraitEncoder) throws -
This API provides the ability to invalidate state retrieved through subscriptions to the target device in the cases where state is not being reported correctly, either intentionally (e.g attributes in Matter traits with the “C” quality) or unintentionally due to poor implementations.
When successful, this API will result in a forced read of the convening scope as specified by the sub-class and return the result through existing Trait subscriptions if present and active.
This API is to be used sparingly as it can impact the performance and battery life of the target device. As such, this API may be throttled by the platform. Callers SHALL be prepared to deal with
HomeErrors thrown by this call.Declaration
Swift
func forceRead() async throws -
Attributes for the
ThermostatTrait.Declaration
Swift
struct Attributes -
Returns a Boolean value indicating whether two values are equal.
Equality is the inverse of inequality. For any values
aandb,a == bimplies thata != bisfalse.Parameters
lhsA value to compare.
rhsAnother value to compare.
-
Hashes the essential components of this value by feeding them into the given hasher.
Implement this method to conform to the
Hashableprotocol. 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 thehasherinstance 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) -
A schedule transition.
Declaration
Swift
struct ScheduleTransitionStruct -
A schedule.
Declaration
Swift
struct ScheduleStruct -
A preset.
Declaration
Swift
struct PresetStruct -
A preset type.
Declaration
Swift
struct PresetTypeStruct -
A schedule type.
Declaration
Swift
struct ScheduleTypeStruct -
A single transition in a thermostat schedule.
Declaration
Swift
struct WeeklyScheduleTransitionStruct -
Whether the device supports the
setpointRaiseLowercommand for this trait.Declaration
Swift
var supportsSetpointRaiseLowerCommand: Bool { get } -
Change the setpoint for the current thermostat mode.
Declaration
Swift
func setpointRaiseLower(mode: Matter.ThermostatTrait.SetpointRaiseLowerModeEnum, amount: Int8) async throwsParameters
modeThe setpoint(s) to be adjusted. Valid values are defined by
SetpointRaiseLowerModeEnum.amountThe amount (possibly negative) that should be added to the setpoint(s), in steps of 0.1°C.
-
The batchable version of setpointRaiseLower command above.
See also
setpointRaiseLowerDeclaration
Swift
func setpointRaiseLowerBatchable(mode: Matter.ThermostatTrait.SetpointRaiseLowerModeEnum, amount: Int8) throws -> BatchableCommand<Void> -
Whether the device supports the
setWeeklySchedulecommand for this trait.Declaration
Swift
var supportsSetWeeklyScheduleCommand: Bool { get } -
This method is deprecated in the Matter specification and is not supported.
Declaration
Swift
func setWeeklySchedule(numberOfTransitionsForSequence: UInt8, dayOfWeekForSequence: Matter.ThermostatTrait.ScheduleDayOfWeekBitmap, modeForSequence: Matter.ThermostatTrait.ScheduleModeBitmap, transitions: [Matter.ThermostatTrait.WeeklyScheduleTransitionStruct]) async throwsParameters
numberOfTransitionsForSequenceThe number of individual transitions to expect for this sequence of commands.
dayOfWeekForSequenceThe day(s) of the week to which all the transitions within the payload of the command should be associated. The bitmap values conform to those defined in
ScheduleDayOfWeekBitmap.modeForSequenceHow the app decodes the
coolSetpointandheatSetpointfields of each transition. The bitmap values confirm to those defined inScheduleModeBitmap.transitionsThe list of setpoint transitions used to update the specified daily schedules. Each setpoint transition is represented by a
WeeklyScheduleTransitionStruct. -
setWeeklyScheduleBatchable(numberOfTransitionsForSequence:dayOfWeekForSequence:modeForSequence:transitions:)
The batchable version of setWeeklySchedule command above.
See also
setWeeklyScheduleDeclaration
Swift
func setWeeklyScheduleBatchable(numberOfTransitionsForSequence: UInt8, dayOfWeekForSequence: Matter.ThermostatTrait.ScheduleDayOfWeekBitmap, modeForSequence: Matter.ThermostatTrait.ScheduleModeBitmap, transitions: [Matter.ThermostatTrait.WeeklyScheduleTransitionStruct]) throws -> BatchableCommand<Void> -
Whether the device supports the
getWeeklySchedulecommand for this trait.Declaration
Swift
var supportsGetWeeklyScheduleCommand: Bool { get } -
This method is deprecated in the Matter specification and is not supported.
Declaration
Swift
func getWeeklySchedule(daysToReturn: Matter.ThermostatTrait.ScheduleDayOfWeekBitmap, modeToReturn: Matter.ThermostatTrait.ScheduleModeBitmap) async throws -> Matter.ThermostatTrait.GetWeeklyScheduleCommandResponseParameters
daysToReturnThe number of days the client would like to return the set point values for. It can be any combination of single days or the entire week.
modeToReturnIndicates the mode the client would like to return the set point values for. It can be any combination of modes.
Return Value
The weekly schedule, with the same payload as
setWeeklySchedule. -
The batchable version of getWeeklySchedule command above.
See also
getWeeklyScheduleDeclaration
Swift
func getWeeklyScheduleBatchable(daysToReturn: Matter.ThermostatTrait.ScheduleDayOfWeekBitmap, modeToReturn: Matter.ThermostatTrait.ScheduleModeBitmap) throws -> BatchableCommand<Matter.ThermostatTrait.GetWeeklyScheduleCommandResponse> -
Whether the device supports the
clearWeeklySchedulecommand for this trait.Declaration
Swift
var supportsClearWeeklyScheduleCommand: Bool { get } -
This method is deprecated in the Matter specification and is not supported.
Declaration
Swift
func clearWeeklySchedule() async throws -
The batchable version of clearWeeklySchedule command above.
See also
clearWeeklyScheduleDeclaration
Swift
func clearWeeklyScheduleBatchable() throws -> BatchableCommand<Void> -
Whether the device supports the
setActiveScheduleRequestcommand for this trait.Declaration
Swift
var supportsSetActiveScheduleRequestCommand: Bool { get } -
The batchable version of setActiveScheduleRequest command above.
See also
setActiveScheduleRequestDeclaration
Swift
func setActiveScheduleRequestBatchable(scheduleHandle: Data) throws -> BatchableCommand<Void> -
Whether the device supports the
setActivePresetRequestcommand for this trait.Declaration
Swift
var supportsSetActivePresetRequestCommand: Bool { get } -
The batchable version of setActivePresetRequest command above.
See also
setActivePresetRequestDeclaration
Swift
func setActivePresetRequestBatchable(presetHandle: Data?) throws -> BatchableCommand<Void> -
Whether the device supports the
atomicRequestcommand for this trait.Declaration
Swift
var supportsAtomicRequestCommand: Bool { get } -
Begin, commit, or cancel an atomic write.
Declaration
Swift
func atomicRequest(requestType: Matter.ThermostatTrait.AtomicRequestTypeEnum, attributeRequests: [UInt32], optionalArgsProvider: ((Matter.ThermostatTrait.AtomicRequestCommand.OptionalArgs) -> Void)? = nil) async throws -> Matter.ThermostatTrait.AtomicRequestCommandResponse -
The batchable version of atomicRequest command above.
See also
atomicRequestDeclaration
Swift
func atomicRequestBatchable(requestType: Matter.ThermostatTrait.AtomicRequestTypeEnum, attributeRequests: [UInt32], optionalArgsProvider: ((Matter.ThermostatTrait.AtomicRequestCommand.OptionalArgs) -> Void)? = nil) throws -> BatchableCommand<Matter.ThermostatTrait.AtomicRequestCommandResponse> -
Unit of measurement used for the AC capacity.
Declaration
Swift
enum ACCapacityFormatEnum -
Types of compressor.
Declaration
Swift
enum ACCompressorTypeEnum -
The positions a louver may be in.
Declaration
Swift
enum ACLouverPositionEnum -
Types of refrigerant.
Declaration
Swift
enum ACRefrigerantTypeEnum -
Types of Air Conditioner features.
Declaration
Swift
enum ACTypeEnum -
The system modes that the thermostat can operate in.
Declaration
Swift
enum ControlSequenceOfOperationEnum -
Preset Scenarios.
Declaration
Swift
enum PresetScenarioEnum -
Possible sources of a given setpoint.
Declaration
Swift
enum SetpointChangeSourceEnum -
Specifies which setpoint is to be adjusted.
Declaration
Swift
enum SetpointRaiseLowerModeEnum -
Days of the week that may be designated the first day of the week.
Declaration
Swift
enum StartOfWeekEnum -
The current operating mode of the thermostat.
Declaration
Swift
enum SystemModeEnum -
Temperature setpoint hold statuses.
Declaration
Swift
enum TemperatureSetpointHoldEnum -
The running mode of the thermostat. Intended to provide additional information when the thermostat is in auto mode.
Declaration
Swift
enum ThermostatRunningModeEnum -
Types of atomic requests.
Declaration
Swift
enum AtomicRequestTypeEnum -
Thermostat cluster FeatureMap.
Declaration
Swift
struct Feature -
Describes the characteristics of the HVAC system.
Declaration
Swift
struct HvacSystemTypeBitmap -
Indicates the sensed occupancy state.
Declaration
Swift
struct OccupancyBitmap -
Preset type features.
Declaration
Swift
struct PresetTypeFeaturesBitmap -
Thermostat programming operational states.
Declaration
Swift
struct ProgrammingOperationModeBitmap -
Thermostate running states.
Declaration
Swift
struct RelayStateBitmap -
Remote sensing configurations.
Declaration
Swift
struct RemoteSensingBitmap -
Days of the week for scheduling.
Declaration
Swift
struct ScheduleDayOfWeekBitmap -
How the app decodes the setpoint fields of each transition.
Declaration
Swift
struct ScheduleModeBitmap -
Features that may be supported by a Thermostat schedule.
Declaration
Swift
struct ScheduleTypeFeaturesBitmap