struct HomeDevice
extension HomeDevice : Equatable, Hashable, HomeObject, HomeObjectImpl, Identifiable, ObjectDataRepresentable, Sendable
A single smart home device.
-
Instance-level accessor for an object’s HomeObjectType.
Declaration
Swift
let objectType: HomeObjectType
-
Per-Home-unique identifier for this object.
Declaration
Swift
let id: String
-
Undocumented
Declaration
Swift
var name: String { get }
-
The structure this device is assigned to,
nil
if unassigned.Declaration
Swift
var structureID: String? { get }
-
The room this device is assigned to,
nil
if unassigned.Declaration
Swift
var roomID: String? { get }
-
Undocumented
Declaration
Swift
let types: DeviceTypeController
-
Whether this device is backed by Matter.
Declaration
Swift
let isMatterDevice: Bool
-
Information about the connectivity of this device.
This is calculated based on the connectivity of its underlying components.
Declaration
Swift
var sourceConnectivity: SourceConnectivity
-
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: HomeDevice, rhs: HomeDevice) -> 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)
-
Change the device name to the given value
Declaration
Swift
func setName(_ name: String) async throws -> HomeDevice
Parameters
name
The new name for the device.
Return Value
The updated device.