interface BridgedDeviceBasicInformationBehavior {
    [reference]: Datasource<StateType>;
    agent: Agent;
    cluster: never;
    context: ActionContext;
    endpoint: Endpoint<Empty>;
    env: Environment;
    events: EventEmitter & Omit<Events, never> & {
        reachable$Changing: ClusterEvents.AttributeObservable<Attribute<boolean, any>>;
    } & {
        hardwareVersion$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
        hardwareVersionString$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        manufacturingDate$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        nodeLabel$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<string, any>>;
        partNumber$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productAppearance$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<TypeFromFields<{
            finish: FieldType<BasicInformation.ProductFinish>;
            primaryColor: FieldType<null | BasicInformation.Color>;
        }>, any>>;
        productLabel$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productName$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productUrl$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        serialNumber$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        softwareVersion$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
        softwareVersionString$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        uniqueId$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        vendorId$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<VendorId, any>>;
        vendorName$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    } & {
        reachable$Changed: ClusterEvents.AttributeObservable<Attribute<boolean, any>>;
    } & {
        hardwareVersion$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
        hardwareVersionString$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        manufacturingDate$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        nodeLabel$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<string, any>>;
        partNumber$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productAppearance$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<TypeFromFields<{
            finish: FieldType<BasicInformation.ProductFinish>;
            primaryColor: FieldType<null | BasicInformation.Color>;
        }>, any>>;
        productLabel$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productName$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        productUrl$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        serialNumber$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        softwareVersion$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
        softwareVersionString$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        uniqueId$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
        vendorId$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<VendorId, any>>;
        vendorName$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    } & {
        reachableChanged: ClusterEvents.EventObservable<Event<TypeFromFields<{
            reachableNewValue: FieldType<boolean>;
        }>, any>>;
    } & {
        leave?: ClusterEvents.EventObservable<OptionalEvent<void, any>>;
        shutDown?: ClusterEvents.EventObservable<OptionalEvent<void, any>>;
        startUp?: ClusterEvents.EventObservable<OptionalEvent<TypeFromFields<{
            softwareVersion: FieldType<number>;
        }>, any>>;
    };
    features: TypeFromBitSchema<{}>;
    session: SecureSession;
    state: Omit<{}, never> & {
        reachable: boolean;
    } & {
        nodeLabel?: string;
    } & {} & {
        hardwareVersion?: number;
        hardwareVersionString?: string;
        manufacturingDate?: string;
        partNumber?: string;
        productAppearance?: TypeFromFields<{
            finish: FieldType<BasicInformation.ProductFinish>;
            primaryColor: FieldType<null | BasicInformation.Color>;
        }>;
        productLabel?: string;
        productName?: string;
        productUrl?: string;
        serialNumber?: string;
        softwareVersion?: number;
        softwareVersionString?: string;
        uniqueId?: string;
        vendorId?: VendorId;
        vendorName?: string;
    };
    [asyncDispose](): MaybePromise;
    asAdmin(fn: (() => void)): void;
    assertAttributeEnabled<This, K>(this: This, attributeName: K): void;
    callback<A, R>(reactor: Reactor<A, R>, options?: Reactor.Options): ((...args: A) => undefined | R);
    initialize(_options?: {}): MaybePromise;
    reactTo<O>(observable: O, reactor: Reactor<Parameters<O["emit"]>, ReturnType<O["emit"]>>, options?: Reactor.Options): void;
    requireAttributeEnabled<This, K>(this: This, attributeName: K): Exclude<This["state"][K], undefined>;
    toString(): string;
    State: any;
}

Hierarchy (view full)

Properties

[reference]: Datasource<StateType>
agent: Agent
cluster: never

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<Events, never> & {
    reachable$Changing: ClusterEvents.AttributeObservable<Attribute<boolean, any>>;
} & {
    hardwareVersion$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
    hardwareVersionString$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    manufacturingDate$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    nodeLabel$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<string, any>>;
    partNumber$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productAppearance$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<TypeFromFields<{
        finish: FieldType<BasicInformation.ProductFinish>;
        primaryColor: FieldType<null | BasicInformation.Color>;
    }>, any>>;
    productLabel$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productName$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productUrl$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    serialNumber$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    softwareVersion$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
    softwareVersionString$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    uniqueId$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    vendorId$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<VendorId, any>>;
    vendorName$Changing: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
} & {
    reachable$Changed: ClusterEvents.AttributeObservable<Attribute<boolean, any>>;
} & {
    hardwareVersion$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
    hardwareVersionString$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    manufacturingDate$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    nodeLabel$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<string, any>>;
    partNumber$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productAppearance$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<TypeFromFields<{
        finish: FieldType<BasicInformation.ProductFinish>;
        primaryColor: FieldType<null | BasicInformation.Color>;
    }>, any>>;
    productLabel$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productName$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    productUrl$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    serialNumber$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    softwareVersion$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<number, any>>;
    softwareVersionString$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    uniqueId$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
    vendorId$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<VendorId, any>>;
    vendorName$Changed: undefined | ClusterEvents.AttributeObservable<OptionalFixedAttribute<string, any>>;
} & {
    reachableChanged: ClusterEvents.EventObservable<Event<TypeFromFields<{
        reachableNewValue: FieldType<boolean>;
    }>, any>>;
} & {
    leave?: ClusterEvents.EventObservable<OptionalEvent<void, any>>;
    shutDown?: ClusterEvents.EventObservable<OptionalEvent<void, any>>;
    startUp?: ClusterEvents.EventObservable<OptionalEvent<TypeFromFields<{
        softwareVersion: FieldType<number>;
    }>, any>>;
}

Access the behavior's events.

Type declaration

  • ReadonlyreachableChanged: ClusterEvents.EventObservable<Event<TypeFromFields<{
        reachableNewValue: FieldType<boolean>;
    }>, any>>

    This event shall be generated when there is a change in the Reachable attribute. Its purpose is to provide an indication towards interested parties that the reachability of a bridged device (over the non-Matter network) has changed, so they may take appropriate action.

    After (re)start of a bridge this event may be generated.

    MatterSpecification.v13.Core § 9.13.5.2

Type declaration

  • Optional Readonlyleave?: ClusterEvents.EventObservable<OptionalEvent<void, any>>

    The Leave event SHOULD be generated by the bridge when it detects that the associated device has left the non-Matter network.

    NOTE

    The FabricIndex field has the X conformance, indicating it shall NOT be present. This event, in the context of Bridged Device Basic Information cluster, has no usable fields, but the original Basic Information cluster’s field definition is kept for completeness.

    MatterSpecification.v13.Core § 9.13.5.1

  • Optional ReadonlyshutDown?: ClusterEvents.EventObservable<OptionalEvent<void, any>>

    MatterSpecification.v13.Core § 9.13.5

  • Optional ReadonlystartUp?: ClusterEvents.EventObservable<OptionalEvent<TypeFromFields<{
        softwareVersion: FieldType<number>;
    }>, any>>

    MatterSpecification.v13.Core § 9.13.5

features: TypeFromBitSchema<{}>

Supported features as a flag object.

session: SecureSession
state: Omit<{}, never> & {
    reachable: boolean;
} & {
    nodeLabel?: string;
} & {} & {
    hardwareVersion?: number;
    hardwareVersionString?: string;
    manufacturingDate?: string;
    partNumber?: string;
    productAppearance?: TypeFromFields<{
        finish: FieldType<BasicInformation.ProductFinish>;
        primaryColor: FieldType<null | BasicInformation.Color>;
    }>;
    productLabel?: string;
    productName?: string;
    productUrl?: string;
    serialNumber?: string;
    softwareVersion?: number;
    softwareVersionString?: string;
    uniqueId?: string;
    vendorId?: VendorId;
    vendorName?: string;
}

Access the behavior's state.

Type declaration

  • Readonlyreachable: boolean

    MatterSpecification.v13.Core § 9.13.4

Type declaration

  • Optional ReadonlynodeLabel?: string

    MatterSpecification.v13.Core § 9.13.4

Type declaration

  • Optional ReadonlyhardwareVersion?: number

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyhardwareVersionString?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlymanufacturingDate?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlypartNumber?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyproductAppearance?: TypeFromFields<{
        finish: FieldType<BasicInformation.ProductFinish>;
        primaryColor: FieldType<null | BasicInformation.Color>;
    }>

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyproductLabel?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyproductName?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyproductUrl?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyserialNumber?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlysoftwareVersion?: number

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlysoftwareVersionString?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyuniqueId?: string

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyvendorId?: VendorId

    MatterSpecification.v13.Core § 9.13.4

  • Optional ReadonlyvendorName?: string

    MatterSpecification.v13.Core § 9.13.4

Methods

  • Release resources. This is the public API for releasing application resources held by behaviors in internal state.

    Returns MaybePromise

  • Execute logic with elevated privileges.

    The provided function executes with privileges escalated to offline mode. This is not commonly necessary.

    Elevated logic effectively ignores ACLs so should be used with care.

    Note that interactions with the behavior will remain elevated until the synchronous completion of this call. You should only elevate privileges for synchronous logic.

    Parameters

    • fn: (() => void)

      the elevated logic

        • (): void
        • Returns void

    Returns void

  • Type Parameters

    • This extends Behavior
    • K extends string | number | symbol

    Parameters

    • this: This
    • attributeName: K

    Returns void

  • Create a generic callback function that has the same properties as a Reactor.

    Like a reactor, the callback's "this" will be bound to an active Behavior instance. Because of this: The reactor MUST be a real JS function - arrow functions will not work!

    Type Parameters

    • A extends any[]
    • R

    Parameters

    Returns ((...args: A) => undefined | R)

      • (...args): undefined | R
      • Parameters

        • Rest...args: A

        Returns undefined | R

  • Behaviors are ephemeral and should not perform initialization in their constructor. They can override this method instead.

    This method may be synchronous or asyncronous. If asynchronous, the behavior will not be available for external use until initialization completes.

    Parameters

    • Optional_options: {}

      Returns MaybePromise

    • Install a Reactor.

      Important: The reactor MUST be a real JS function - arrow functions will not work!

      Type Parameters

      Parameters

      Returns void

    • Type Parameters

      • This extends Behavior
      • K extends string | number | symbol

      Parameters

      • this: This
      • attributeName: K

      Returns Exclude<This["state"][K], undefined>

    • Description used in diagnostic messages.

      Returns string