This cluster supports all AudioOutput 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<{
        currentOutput: Attribute<number, any>;
        outputList: Attribute<TypeFromFields<{
            index: FieldType<number>;
            name: FieldType<string>;
            outputType: FieldType<AudioOutput.OutputType>;
        }>[], any>;
    }, GlobalAttributes<{
        nameUpdates: BitFlag;
    }>>, GlobalAttributes<{
        nameUpdates: BitFlag;
    }>>;
    base: undefined;
    commands: {
        renameOutput: Command<TypeFromFields<{
            index: FieldType<number>;
            name: FieldType<string>;
        }>, void, any> & {
            isConditional: true;
            mandatoryIf: [] | [{
                nameUpdates: boolean;
            }];
            optional: true;
            optionalIf: [] | ConditionalFeatureList<BitSchema>;
        };
        selectOutput: Command<TypeFromFields<{
            index: FieldType<number>;
        }>, void, any>;
    };
    events: {};
    extensions: undefined;
    features: {
        nameUpdates: BitFlag;
    };
    id: Branded<Branded<1291, "ClusterId">, "ClusterId">;
    name: "AudioOutput";
    revision: 1;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<Merge<{
    currentOutput: Attribute<number, any>;
    outputList: Attribute<TypeFromFields<{
        index: FieldType<number>;
        name: FieldType<string>;
        outputType: FieldType<AudioOutput.OutputType>;
    }>[], any>;
}, GlobalAttributes<{
    nameUpdates: BitFlag;
}>>, GlobalAttributes<{
    nameUpdates: BitFlag;
}>>
base: undefined
commands: {
    renameOutput: Command<TypeFromFields<{
        index: FieldType<number>;
        name: FieldType<string>;
    }>, void, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            nameUpdates: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    };
    selectOutput: Command<TypeFromFields<{
        index: FieldType<number>;
    }>, void, any>;
}

Type declaration

  • ReadonlyrenameOutput: Command<TypeFromFields<{
        index: FieldType<number>;
        name: FieldType<string>;
    }>, void, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            nameUpdates: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }
  • ReadonlyselectOutput: Command<TypeFromFields<{
        index: FieldType<number>;
    }>, void, any>

    Upon receipt, this shall change the output on the device to the output at a specific index in the Output List.

    Note that when the current output is set to an output of type HDMI, adjustments to volume via a Speaker endpoint on the same node may cause HDMI volume up/down commands to be sent to the given HDMI output.

    MatterSpecification.v13.Cluster § 6.5.7.1

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

Type declaration

  • ReadonlynameUpdates: BitFlag

    NameUpdates

    Supports updates to output names

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

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: Merge<{
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          }, GlobalAttributes<{
              nameUpdates: BitFlag;
          }>>;
          commands: {
              renameOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      nameUpdates: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          features: {
              nameUpdates: BitFlag;
          };
          id: Branded<1291, "ClusterId">;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: Merge<{
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          }, GlobalAttributes<{
              nameUpdates: BitFlag;
          }>>;
          commands: {
              renameOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      nameUpdates: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          features: {
              nameUpdates: BitFlag;
          };
          id: Branded<1291, "ClusterId">;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          currentOutput: number;
          outputList: {
              index: number;
              name: string;
              outputType: number;
          }[];
      }

    Parameters

    Returns WithValues<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: Merge<{
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          }, GlobalAttributes<{
              nameUpdates: BitFlag;
          }>>;
          commands: {
              renameOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
              }>, void, any> & {
                  isConditional: true;
                  mandatoryIf: [] | [{
                      nameUpdates: boolean;
                  }];
                  optional: true;
                  optionalIf: [] | ConditionalFeatureList<BitSchema>;
              };
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          features: {
              nameUpdates: BitFlag;
          };
          id: Branded<1291, "ClusterId">;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns Of<Of<{
        attributes: Merge<{
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        }, GlobalAttributes<{
            nameUpdates: BitFlag;
        }>>;
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any> & {
                isConditional: true;
                mandatoryIf: [] | [{
                    nameUpdates: boolean;
                }];
                optional: true;
                optionalIf: [] | ConditionalFeatureList<BitSchema>;
            };
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        features: {
            nameUpdates: BitFlag;
        };
        id: Branded<1291, "ClusterId">;
        name: "AudioOutput";
        revision: 1;
    }>, SelectionT>