This defines conformance for a root node endpoint (see System Model specification). This endpoint is akin to a "read me first" endpoint that describes itself and the other endpoints that make up the node.

• Device types with Endpoint scope shall NOT be supported on the same endpoint as this device type.

• Clusters with an Application role shall NOT be supported on the same endpoint as this device type.

• Other device types with Node scope may be supported on the same endpoint as this device type.

MatterSpecification.v13.Device § 2.1

interface RootEndpoint {
    behaviors: {
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    };
    defaults: StateOf<{
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }>;
    deviceClass: DeviceClassification;
    deviceRevision: number;
    deviceType: DeviceTypeId;
    name: "RootNode";
    requirements: typeof RootRequirements;
    set(defaults: InputStateOf<{
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }>): With<For<{
        behaviors: {
            parts: typeof PartsBehavior;
        } & {
            index: typeof IndexBehavior;
        } & {
            basicInformation: typeof BasicInformationServer;
        } & {
            accessControl: typeof AccessControlServer;
        } & {
            groupKeyManagement: typeof GroupKeyManagementServer;
        } & {
            generalCommissioning: typeof GeneralCommissioningServer;
        } & {
            administratorCommissioning: typeof AdministratorCommissioningServer;
        } & {
            operationalCredentials: typeof OperationalCredentialsServer;
        } & {
            generalDiagnostics: typeof GeneralDiagnosticsServer;
        };
        deviceClass: Node;
        deviceRevision: 2;
        deviceType: 22;
        name: "RootNode";
        requirements: typeof RootRequirements;
    }>, {
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }>;
    with<const BL>(...behaviors: BL): With<For<{
        behaviors: {
            parts: typeof PartsBehavior;
        } & {
            index: typeof IndexBehavior;
        } & {
            basicInformation: typeof BasicInformationServer;
        } & {
            accessControl: typeof AccessControlServer;
        } & {
            groupKeyManagement: typeof GroupKeyManagementServer;
        } & {
            generalCommissioning: typeof GeneralCommissioningServer;
        } & {
            administratorCommissioning: typeof AdministratorCommissioningServer;
        } & {
            operationalCredentials: typeof OperationalCredentialsServer;
        } & {
            generalDiagnostics: typeof GeneralDiagnosticsServer;
        };
        deviceClass: Node;
        deviceRevision: 2;
        deviceType: 22;
        name: "RootNode";
        requirements: typeof RootRequirements;
    }>, With<{
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }, BL>>;
}

Hierarchy (view full)

Properties

behaviors: {
    parts: typeof PartsBehavior;
} & {
    index: typeof IndexBehavior;
} & {
    basicInformation: typeof BasicInformationServer;
} & {
    accessControl: typeof AccessControlServer;
} & {
    groupKeyManagement: typeof GroupKeyManagementServer;
} & {
    generalCommissioning: typeof GeneralCommissioningServer;
} & {
    administratorCommissioning: typeof AdministratorCommissioningServer;
} & {
    operationalCredentials: typeof OperationalCredentialsServer;
} & {
    generalDiagnostics: typeof GeneralDiagnosticsServer;
}
defaults: StateOf<{
    parts: typeof PartsBehavior;
} & {
    index: typeof IndexBehavior;
} & {
    basicInformation: typeof BasicInformationServer;
} & {
    accessControl: typeof AccessControlServer;
} & {
    groupKeyManagement: typeof GroupKeyManagementServer;
} & {
    generalCommissioning: typeof GeneralCommissioningServer;
} & {
    administratorCommissioning: typeof AdministratorCommissioningServer;
} & {
    operationalCredentials: typeof OperationalCredentialsServer;
} & {
    generalDiagnostics: typeof GeneralDiagnosticsServer;
}>

Access default state values.

deviceRevision: number
deviceType: DeviceTypeId
name
requirements: typeof RootRequirements

Methods

  • Define an endpoint like this one with different defaults. Only updates values present in the input object.

    Parameters

    • defaults: InputStateOf<{
          parts: typeof PartsBehavior;
      } & {
          index: typeof IndexBehavior;
      } & {
          basicInformation: typeof BasicInformationServer;
      } & {
          accessControl: typeof AccessControlServer;
      } & {
          groupKeyManagement: typeof GroupKeyManagementServer;
      } & {
          generalCommissioning: typeof GeneralCommissioningServer;
      } & {
          administratorCommissioning: typeof AdministratorCommissioningServer;
      } & {
          operationalCredentials: typeof OperationalCredentialsServer;
      } & {
          generalDiagnostics: typeof GeneralDiagnosticsServer;
      }>

    Returns With<For<{
        behaviors: {
            parts: typeof PartsBehavior;
        } & {
            index: typeof IndexBehavior;
        } & {
            basicInformation: typeof BasicInformationServer;
        } & {
            accessControl: typeof AccessControlServer;
        } & {
            groupKeyManagement: typeof GroupKeyManagementServer;
        } & {
            generalCommissioning: typeof GeneralCommissioningServer;
        } & {
            administratorCommissioning: typeof AdministratorCommissioningServer;
        } & {
            operationalCredentials: typeof OperationalCredentialsServer;
        } & {
            generalDiagnostics: typeof GeneralDiagnosticsServer;
        };
        deviceClass: Node;
        deviceRevision: 2;
        deviceType: 22;
        name: "RootNode";
        requirements: typeof RootRequirements;
    }>, {
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }>

  • Define an endpoint like this one with additional and/or replacement server behaviors.

    Type Parameters

    • const BL extends List

    Parameters

    • Rest...behaviors: BL

    Returns With<For<{
        behaviors: {
            parts: typeof PartsBehavior;
        } & {
            index: typeof IndexBehavior;
        } & {
            basicInformation: typeof BasicInformationServer;
        } & {
            accessControl: typeof AccessControlServer;
        } & {
            groupKeyManagement: typeof GroupKeyManagementServer;
        } & {
            generalCommissioning: typeof GeneralCommissioningServer;
        } & {
            administratorCommissioning: typeof AdministratorCommissioningServer;
        } & {
            operationalCredentials: typeof OperationalCredentialsServer;
        } & {
            generalDiagnostics: typeof GeneralDiagnosticsServer;
        };
        deviceClass: Node;
        deviceRevision: 2;
        deviceType: 22;
        name: "RootNode";
        requirements: typeof RootRequirements;
    }>, With<{
        parts: typeof PartsBehavior;
    } & {
        index: typeof IndexBehavior;
    } & {
        basicInformation: typeof BasicInformationServer;
    } & {
        accessControl: typeof AccessControlServer;
    } & {
        groupKeyManagement: typeof GroupKeyManagementServer;
    } & {
        generalCommissioning: typeof GeneralCommissioningServer;
    } & {
        administratorCommissioning: typeof AdministratorCommissioningServer;
    } & {
        operationalCredentials: typeof OperationalCredentialsServer;
    } & {
        generalDiagnostics: typeof GeneralDiagnosticsServer;
    }, BL>>