This cluster supports all AdministratorCommissioning features. It may support illegal feature combinations.

If you use this cluster you must manually specify which features are active and ensure the set of active features is legal per the Matter specification.

interface Complete {
    attributes: Merge<Merge<{
        adminFabricIndex: Attribute<null | FabricIndex, any>;
        adminVendorId: Attribute<null | VendorId, any>;
        windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
    }, GlobalAttributes<{
        basic: BitFlag;
    }>>, GlobalAttributes<{
        basic: BitFlag;
    }>>;
    base: undefined;
    commands: {
        openBasicCommissioningWindow: Command<TypeFromFields<{
            commissioningTimeout: FieldType<number>;
        }>, void, any> & {
            isConditional: true;
            mandatoryIf: [] | [{
                basic: boolean;
            }];
            optional: true;
            optionalIf: [] | ConditionalFeatureList<BitSchema>;
        };
        openCommissioningWindow: Command<TypeFromFields<{
            commissioningTimeout: FieldType<number>;
            discriminator: FieldType<number>;
            iterations: FieldType<number>;
            pakePasscodeVerifier: FieldType<Uint8Array>;
            salt: FieldType<Uint8Array>;
        }>, void, any>;
        revokeCommissioning: Command<void, void, any>;
    };
    events: {};
    extensions: undefined;
    features: {
        basic: BitFlag;
    };
    id: Branded<Branded<60, "ClusterId">, "ClusterId">;
    name: "AdministratorCommissioning";
    revision: 1;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<Merge<{
    adminFabricIndex: Attribute<null | FabricIndex, any>;
    adminVendorId: Attribute<null | VendorId, any>;
    windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
}, GlobalAttributes<{
    basic: BitFlag;
}>>, GlobalAttributes<{
    basic: BitFlag;
}>>
base: undefined
commands: {
    openBasicCommissioningWindow: Command<TypeFromFields<{
        commissioningTimeout: FieldType<number>;
    }>, void, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            basic: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    };
    openCommissioningWindow: Command<TypeFromFields<{
        commissioningTimeout: FieldType<number>;
        discriminator: FieldType<number>;
        iterations: FieldType<number>;
        pakePasscodeVerifier: FieldType<Uint8Array>;
        salt: FieldType<Uint8Array>;
    }>, void, any>;
    revokeCommissioning: Command<void, void, any>;
}

Type declaration

  • ReadonlyopenBasicCommissioningWindow: Command<TypeFromFields<{
        commissioningTimeout: FieldType<number>;
    }>, void, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            basic: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }
  • ReadonlyopenCommissioningWindow: Command<TypeFromFields<{
        commissioningTimeout: FieldType<number>;
        discriminator: FieldType<number>;
        iterations: FieldType<number>;
        pakePasscodeVerifier: FieldType<Uint8Array>;
        salt: FieldType<Uint8Array>;
    }>, void, any>

    This command is used by a current Administrator to instruct a Node to go into commissioning mode. The Enhanced Commissioning Method specifies a window of time during which an already commissioned Node accepts PASE sessions. The current Administrator MUST specify a timeout value for the duration of OCW.

    When OCW expires or commissioning completes, the Node shall remove the Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The commissioning into a new Fabric completes when the Node successfully receives a CommissioningComplete command, see Section 5.5, “Commissioning Flows”.

    The parameters for OpenCommissioningWindow command are as follows:

    A current Administrator may invoke this command to put a node in commissioning mode for the next Administrator. On completion, the command shall return a cluster specific status code from the Section 11.19.6, “Status Codes” below reflecting success or reasons for failure of the operation. The new Administrator shall discover the Node on the IP network using DNS-based Service Discovery (DNS-SD) for commissioning.

    If any format or validity errors related to the PAKEPasscodeVerifier, Iterations or Salt arguments arise, this command shall fail with a cluster specific status code of PAKEParameterError.

    If a commissioning window is already currently open, this command shall fail with a cluster specific status code of Busy.

    If the fail-safe timer is currently armed, this command shall fail with a cluster specific status code of Busy, since it is likely that concurrent commissioning operations from multiple separate Commissioners are about to take place.

    In case of any other parameter error, this command shall fail with a status code of COMMAND_INVALID.

    MatterSpecification.v13.Core § 11.19.8.1

  • ReadonlyrevokeCommissioning: Command<void, void, any>

    This command is used by a current Administrator to instruct a Node to revoke any active Open Commissioning Window or Open Basic Commissioning Window command. This is an idempotent command and the Node shall (for ECM) delete the temporary PAKEPasscodeVerifier and associated data, and stop publishing the DNS-SD record associated with the Open Commissioning Window or Open Basic Commissioning Window command, see Section 4.3.1, “Commissionable Node Discovery”.

    If no commissioning window was open at time of receipt, this command shall fail with a cluster specific status code of WindowNotOpen.

    If the commissioning window was open and the fail-safe was armed when this command is received, the device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section 11.10.6.2.2, “Behavior on expiry of Fail-Safe timer”.

    MatterSpecification.v13.Core § 11.19.8.3

events: {}
extensions: undefined
features: {
    basic: BitFlag;
}

Type declaration

  • Readonlybasic: BitFlag

    Basic

    Node supports Basic Commissioning Method.

id: Branded<Branded<60, "ClusterId">, "ClusterId">
name
revision
supportedFeatures: {}
unknown

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: Merge<{
              adminFabricIndex: Attribute<null | FabricIndex, any>;
              adminVendorId: Attribute<null | VendorId, any>;
              windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
          }, GlobalAttributes<{
              basic: BitFlag;
          }>>;
          commands: {
              openBasicCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      basic: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              openCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
                  discriminator: FieldType<number>;
                  iterations: FieldType<number>;
                  pakePasscodeVerifier: FieldType<Uint8Array>;
                  salt: FieldType<Uint8Array>;
              }>, void, any>;
              revokeCommissioning: Command<void, void, any>;
          };
          features: {
              basic: BitFlag;
          };
          id: Branded<60, "ClusterId">;
          name: "AdministratorCommissioning";
          revision: 1;
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: Merge<{
              adminFabricIndex: Attribute<null | FabricIndex, any>;
              adminVendorId: Attribute<null | VendorId, any>;
              windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
          }, GlobalAttributes<{
              basic: BitFlag;
          }>>;
          commands: {
              openBasicCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      basic: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              openCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
                  discriminator: FieldType<number>;
                  iterations: FieldType<number>;
                  pakePasscodeVerifier: FieldType<Uint8Array>;
                  salt: FieldType<Uint8Array>;
              }>, void, any>;
              revokeCommissioning: Command<void, void, any>;
          };
          features: {
              basic: BitFlag;
          };
          id: Branded<60, "ClusterId">;
          name: "AdministratorCommissioning";
          revision: 1;
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          adminFabricIndex: null | number;
          adminVendorId: null | number;
          windowStatus: number;
      }

    Parameters

    Returns WithValues<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: Merge<{
              adminFabricIndex: Attribute<null | FabricIndex, any>;
              adminVendorId: Attribute<null | VendorId, any>;
              windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
          }, GlobalAttributes<{
              basic: BitFlag;
          }>>;
          commands: {
              openBasicCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      basic: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              openCommissioningWindow: Command<TypeFromFields<{
                  commissioningTimeout: FieldType<number>;
                  discriminator: FieldType<number>;
                  iterations: FieldType<number>;
                  pakePasscodeVerifier: FieldType<Uint8Array>;
                  salt: FieldType<Uint8Array>;
              }>, void, any>;
              revokeCommissioning: Command<void, void, any>;
          };
          features: {
              basic: BitFlag;
          };
          id: Branded<60, "ClusterId">;
          name: "AdministratorCommissioning";
          revision: 1;
      }>>

    Parameters

    Returns Of<Of<{
        attributes: Merge<{
            adminFabricIndex: Attribute<null | FabricIndex, any>;
            adminVendorId: Attribute<null | VendorId, any>;
            windowStatus: Attribute<AdministratorCommissioning.CommissioningWindowStatus, any>;
        }, GlobalAttributes<{
            basic: BitFlag;
        }>>;
        commands: {
            openBasicCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    basic: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            openCommissioningWindow: Command<TypeFromFields<{
                commissioningTimeout: FieldType<number>;
                discriminator: FieldType<number>;
                iterations: FieldType<number>;
                pakePasscodeVerifier: FieldType<Uint8Array>;
                salt: FieldType<Uint8Array>;
            }>, void, any>;
            revokeCommissioning: Command<void, void, any>;
        };
        features: {
            basic: BitFlag;
        };
        id: Branded<60, "ClusterId">;
        name: "AdministratorCommissioning";
        revision: 1;
    }>, SelectionT>