struct HomeDeviceextension HomeDevice : Equatable, Hashable, HomeObject, HomeObjectImpl, Identifiable, ObjectDataRepresentable, SendableA single smart home device.
- 
                  
                  Instance-level accessor for an object’s HomeObjectType. DeclarationSwift let objectType: HomeObjectType
- 
                  
                  Per-Home-unique identifier for this object. DeclarationSwift let id: String
- 
                  
                  Undocumented DeclarationSwift var name: String { get }
- 
                  
                  The structure this device is assigned to, nilif unassigned.DeclarationSwift var structureID: String? { get }
- 
                  
                  The room this device is assigned to, nilif unassigned.DeclarationSwift var roomID: String? { get }
- 
                  
                  Undocumented DeclarationSwift let types: DeviceTypeController
- 
                  
                  Whether this device is backed by Matter. DeclarationSwift let isMatterDevice: Bool
- 
                  
                  Information about the connectivity of this device. This is calculated based on the connectivity of its underlying components. DeclarationSwift var sourceConnectivity: SourceConnectivity
- 
                  
                  Returns a Boolean value indicating whether two values are equal. Equality is the inverse of inequality. For any values aandb,a == bimplies thata != bisfalse.DeclarationSwift static func == (lhs: HomeDevice, rhs: HomeDevice) -> BoolParameterslhsA 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.DeclarationSwift func hash(into hasher: inout Hasher)
- 
                  
                  Change the device name to the given value DeclarationSwift func setName(_ name: String) async throws -> HomeDeviceParametersnameThe new name for the device. Return ValueThe updated device. 
- 
                  
                  Undocumented DeclarationSwift enum DecommissionEligibilityextension HomeDevice.DecommissionEligibility : Equatable, Hashable, Sendable
- 
                  
                  Undocumented DeclarationSwift enum DecommissionSideEffectextension HomeDevice.DecommissionSideEffect : Equatable, Hashable, Sendable
- 
                  
                  Undocumented DeclarationSwift enum DecommissionIneligibleReasonextension HomeDevice.DecommissionIneligibleReason : Equatable, Hashable, Sendable
- 
                  
                  Whether the device can be decommissioned. DeclarationSwift var decommissionEligibility: HomeDevice.DecommissionEligibility { get async throws }
- 
                  
                  Initiates the decommissioning process for this device. The return value will reflect the result of the decommissioning process: - If this is a plain matter device, it will contain a single device ID.
- If this is a bridge, it will contain the IDs of all the bridged devices, as well as the bridge device ID. Note that in the case of bridges, the decommissioning operation is atomic, either all devices are decommissioned, or none are.
- If this device is one of multiple logical devices derived from a single physical device, it will contain the IDs of all the decommissioned HomeDevices. 
 Throws HomeError, which will have aDecommissionErrorsubtype if a domain specific error occurs.DeclarationSwift func decommission() async throws -> Set<String>