HomeDevice

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
  • id

    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 and b, a == b implies that a != b is false.

    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. 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)
  • 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.