struct MessagesTraitThis trait provides an interface for passing messages that a device can present to the user.
-
List of the event types that are supported by
MessagesTrait.Declaration
Swift
static let supportedEventTypes: [any Event.Type] -
List of the commands that are supported by
MessagesTrait.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
MessagesTrait.Declaration
Swift
let attributes: Matter.MessagesTrait.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
MessagesTrait.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 possible response to a message.
Declaration
Swift
struct MessageResponseOptionStruct -
Information about a single message.
Declaration
Swift
struct MessageStruct -
This event is sent when a message is added to the
messagesattribute.Declaration
Swift
struct MessageQueuedEvent -
This event is sent when a message is presented to the user.
Declaration
Swift
struct MessagePresentedEvent -
This event is sent when the message is confirmed by the user or when the duration of the message has elapsed without confirmation.
Declaration
Swift
struct MessageCompleteEvent -
Whether the device supports the
presentMessagesRequestcommand for this trait.Declaration
Swift
var supportsPresentMessagesRequestCommand: Bool { get } -
presentMessagesRequest(messageID:priority:messageControl:startTime:duration:messageText:optionalArgsProvider:)
Appends the message in the passed fields to the
messagesattribute. If appending the message would cause the number of messages to be greater than the capacity of the list, the device will not append any message tomessages, and will return a status code ofRESOURCE_EXHAUSTED.Declaration
Swift
func presentMessagesRequest(messageID: Data, priority: Matter.MessagesTrait.MessagePriorityEnum, messageControl: Matter.MessagesTrait.MessageControlBitmap, startTime: UInt32?, duration: UInt64?, messageText: String, optionalArgsProvider: ((Matter.MessagesTrait.PresentMessagesRequestCommand.OptionalArgs) -> Void)? = nil) async throwsParameters
priorityThe priority level for this message.
messageControlThe control information related to the message.
startTimeThe time, in UTC, at which the message becomes available to be presented. A null value indicates that the message is available immediately.
durationThe amount of time, in milliseconds, after the
startTimeduring which the message is available to be presented. A null value means that thedurationtime remains the same until it’s actively changed.messageTextA string that contains the message to be presented to the user.
-
presentMessagesRequestBatchable(messageID:priority:messageControl:startTime:duration:messageText:optionalArgsProvider:)
The batchable version of presentMessagesRequest command above.
See also
presentMessagesRequestDeclaration
Swift
func presentMessagesRequestBatchable(messageID: Data, priority: Matter.MessagesTrait.MessagePriorityEnum, messageControl: Matter.MessagesTrait.MessageControlBitmap, startTime: UInt32?, duration: UInt64?, messageText: String, optionalArgsProvider: ((Matter.MessagesTrait.PresentMessagesRequestCommand.OptionalArgs) -> Void)? = nil) throws -> BatchableCommand<Void> -
Whether the device supports the
cancelMessagesRequestcommand for this trait.Declaration
Swift
var supportsCancelMessagesRequestCommand: Bool { get } -
Cancels the messages in the passed fields.
Declaration
Swift
func cancelMessagesRequest(messageIDs: [Data]) async throws -
The batchable version of cancelMessagesRequest command above.
See also
cancelMessagesRequestDeclaration
Swift
func cancelMessagesRequestBatchable(messageIDs: [Data]) throws -> BatchableCommand<Void> -
A display device may include this preference in the
MessageCompleteevent as a hint to clients about how to handle future similar messages for the user.Declaration
Swift
enum FutureMessagePreferenceEnum -
Priority should be used to determine which messages to show when the number of eligible messages is larger than the device’s capacity to present them.
Declaration
Swift
enum MessagePriorityEnum -
Messages cluster FeatureMap.
Declaration
Swift
struct Feature -
Control information related to a message.
Declaration
Swift
struct MessageControlBitmap