Constructor options for a CommissioningServer device Beside the general options it also contains the data for the BasicInformation cluster which is added automatically and allows to override the certificates used for the OperationalCredentials cluster

interface CommissioningServerOptions {
    activeSessionsChangedCallback?: ((fabricIndex: FabricIndex) => void);
    additionalBleAdvertisementData?: Uint8Array;
    basicInformation: {
        productId: number;
        productName: string;
        vendorId: number;
        vendorName: string;
    } | AttributeInitialValues<Merge<{
        capabilityMinima: FixedAttribute<TypeFromFields<{
            caseSessionsPerFabric: FieldType<number>;
            subscriptionsPerFabric: FieldType<number>;
        }>, any>;
        dataModelRevision: FixedAttribute<number, any>;
        hardwareVersion: FixedAttribute<number, any>;
        hardwareVersionString: FixedAttribute<string, any>;
        localConfigDisabled: OptionalWritableAttribute<boolean, any>;
        location: WritableAttribute<string, any>;
        manufacturingDate: OptionalFixedAttribute<string, any>;
        maxPathsPerInvoke: FixedAttribute<number, any>;
        nodeLabel: WritableAttribute<string, any>;
        partNumber: OptionalFixedAttribute<string, any>;
        productAppearance: OptionalFixedAttribute<TypeFromFields<{
            finish: FieldType<BasicInformation.ProductFinish>;
            primaryColor: FieldType<null | BasicInformation.Color>;
        }>, any>;
        productId: FixedAttribute<number, any>;
        productLabel: OptionalFixedAttribute<string, any>;
        productName: FixedAttribute<string, any>;
        productUrl: OptionalFixedAttribute<string, any>;
        reachable: OptionalAttribute<boolean, any>;
        serialNumber: OptionalFixedAttribute<string, any>;
        softwareVersion: FixedAttribute<number, any>;
        softwareVersionString: FixedAttribute<string, any>;
        specificationVersion: FixedAttribute<number, any>;
        uniqueId: OptionalFixedAttribute<string, any>;
        vendorId: FixedAttribute<VendorId, any>;
        vendorName: FixedAttribute<string, any>;
    }, GlobalAttributes<{}>>>;
    certificates?: Definition;
    commissioningChangedCallback?: ((fabricIndex: FabricIndex) => void);
    delayedAnnouncement?: boolean;
    deviceName: string;
    deviceType: number;
    discriminator?: number;
    flowType?: CommissioningFlowType;
    generalCommissioning?: Partial<AttributeInitialValues<Merge<{
        basicCommissioningInfo: FixedAttribute<TypeFromFields<{
            failSafeExpiryLengthSeconds: FieldType<number>;
            maxCumulativeFailsafeSeconds: FieldType<number>;
        }>, any>;
        breadcrumb: WritableAttribute<number | bigint, any>;
        locationCapability: FixedAttribute<GeneralCommissioning.RegulatoryLocationType, any>;
        regulatoryConfig: Attribute<GeneralCommissioning.RegulatoryLocationType, any>;
        supportsConcurrentConnection: FixedAttribute<boolean, any>;
    }, GlobalAttributes<{}>>>> & {
        allowCountryCodeChange?: boolean;
        countryCodeWhitelist?: string[];
    };
    listeningAddressIpv4?: string;
    listeningAddressIpv6?: string;
    nextEndpointId?: number;
    passcode?: number;
    port?: number;
    subscriptionMaxIntervalSeconds?: number;
    subscriptionMinIntervalSeconds?: number;
    subscriptionRandomizationWindowSeconds?: number;
}

Properties

activeSessionsChangedCallback?: ((fabricIndex: FabricIndex) => void)

This callback is called when sessions to the device are established, closed or subscriptions get added or removed. The provided fabricIndex can be used together with getActiveSessionInformation() to get more details about the open sessions and their status.

additionalBleAdvertisementData?: Uint8Array

Optional Vendor specific additional BLE Advertisement data.

basicInformation: {
    productId: number;
    productName: string;
    vendorId: number;
    vendorName: string;
} | AttributeInitialValues<Merge<{
    capabilityMinima: FixedAttribute<TypeFromFields<{
        caseSessionsPerFabric: FieldType<number>;
        subscriptionsPerFabric: FieldType<number>;
    }>, any>;
    dataModelRevision: FixedAttribute<number, any>;
    hardwareVersion: FixedAttribute<number, any>;
    hardwareVersionString: FixedAttribute<string, any>;
    localConfigDisabled: OptionalWritableAttribute<boolean, any>;
    location: WritableAttribute<string, any>;
    manufacturingDate: OptionalFixedAttribute<string, any>;
    maxPathsPerInvoke: FixedAttribute<number, any>;
    nodeLabel: WritableAttribute<string, any>;
    partNumber: OptionalFixedAttribute<string, any>;
    productAppearance: OptionalFixedAttribute<TypeFromFields<{
        finish: FieldType<BasicInformation.ProductFinish>;
        primaryColor: FieldType<null | BasicInformation.Color>;
    }>, any>;
    productId: FixedAttribute<number, any>;
    productLabel: OptionalFixedAttribute<string, any>;
    productName: FixedAttribute<string, any>;
    productUrl: OptionalFixedAttribute<string, any>;
    reachable: OptionalAttribute<boolean, any>;
    serialNumber: OptionalFixedAttribute<string, any>;
    softwareVersion: FixedAttribute<number, any>;
    softwareVersionString: FixedAttribute<string, any>;
    specificationVersion: FixedAttribute<number, any>;
    uniqueId: OptionalFixedAttribute<string, any>;
    vendorId: FixedAttribute<VendorId, any>;
    vendorName: FixedAttribute<string, any>;
}, GlobalAttributes<{}>>>

Device details to be used for the BasicInformation cluster. Some of the values are initialized with defaults if not set here.

certificates?: Definition

Vendor specific certificates to be used for the OperationalCredentials cluster. If not set Test certificates (official Chip tool test Root certificate is used) are generated automatically.

commissioningChangedCallback?: ((fabricIndex: FabricIndex) => void)

This callback is called when the device is commissioned or decommissioned to a fabric/controller. The provided fabricIndex can be used together with getCommissionedFabricInformation() to get more details about the fabric (or if this fabricIndex is missing it was deleted).

delayedAnnouncement?: boolean

Should the device directly be announced automatically by the MatterServer of manually via announce().

deviceName: string

The device name to be used for the BasicInformation cluster.

deviceType: number

The device type to be used for the BasicInformation cluster.

discriminator?: number

The Discriminator to use for initial commissioning.

The Flow type of the Commissioning flow used in announcements.

generalCommissioning?: Partial<AttributeInitialValues<Merge<{
    basicCommissioningInfo: FixedAttribute<TypeFromFields<{
        failSafeExpiryLengthSeconds: FieldType<number>;
        maxCumulativeFailsafeSeconds: FieldType<number>;
    }>, any>;
    breadcrumb: WritableAttribute<number | bigint, any>;
    locationCapability: FixedAttribute<GeneralCommissioning.RegulatoryLocationType, any>;
    regulatoryConfig: Attribute<GeneralCommissioning.RegulatoryLocationType, any>;
    supportsConcurrentConnection: FixedAttribute<boolean, any>;
}, GlobalAttributes<{}>>>> & {
    allowCountryCodeChange?: boolean;
    countryCodeWhitelist?: string[];
}

Optional configuration for the GeneralCommissioning cluster. If not set the default values are used. Use these options to limit the allowed countries for regulatory configuration.

listeningAddressIpv4?: string

IPv4 listener address, defaults to all interfaces.

listeningAddressIpv6?: string

IPv6 listener address, defaults to all interfaces.

nextEndpointId?: number

The next endpoint ID to be assigned to a new endpoint.

passcode?: number

The passcode/pin of the device to use for initial commissioning.

port?: number

Port of the server, normally automatically managed.

subscriptionMaxIntervalSeconds?: number

Optional maximum subscription interval to use for sending subscription reports. It will be used if not too low and inside the range requested by the connected controller.

subscriptionMinIntervalSeconds?: number

Optional minimum subscription interval to use for sending subscription reports. It will be used when other calculated values are smaller than it. Use this to make sure your device hardware can handle the load and to set limits.

subscriptionRandomizationWindowSeconds?: number

Optional subscription randomization window to use for sending subscription reports. This specifies a window in seconds from which a random part is added to the calculated maximum interval to make sure that devices that get powered on in parallel not all send at the same timepoint.