Base: {
    attributes: {
        enabled: Attribute<boolean, any>;
    };
    commands: {
        disable: Command<void, void, any>;
        enable: Command<void, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                onDemandRatings: Attribute<TypeFromFields<{
                    ratingName: FieldType<string>;
                    ratingNameDesc: OptionalFieldType<string>;
                }>[], any>;
                onDemandRatingThreshold: Attribute<string, any>;
            };
            commands: {
                setOnDemandRatingThreshold: Command<TypeFromFields<{
                    rating: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            onDemandContentRating: true;
        };
    }, {
        component: {
            attributes: {
                scheduledContentRatings: Attribute<TypeFromFields<{
                    ratingName: FieldType<string>;
                    ratingNameDesc: OptionalFieldType<string>;
                }>[], any>;
                scheduledContentRatingThreshold: Attribute<string, any>;
            };
            commands: {
                setScheduledContentRatingThreshold: Command<TypeFromFields<{
                    rating: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            scheduledContentRating: true;
        };
    }, {
        component: {
            attributes: {
                remainingScreenTime: Attribute<number, any>;
                screenDailyTime: Attribute<number, any>;
            };
            commands: {
                addBonusTime: Command<TypeFromFields<{
                    bonusTime: FieldType<number>;
                    pinCode: OptionalFieldType<string>;
                }>, void, any>;
                setScreenDailyTime: Command<TypeFromFields<{
                    screenTime: FieldType<number>;
                }>, void, any>;
            };
            events: {
                remainingScreenTimeExpired: Event<void, any>;
            };
        };
        flags: {
            screenTime: true;
        };
    }, {
        component: {
            attributes: {
                blockUnrated: Attribute<boolean, any>;
            };
            commands: {
                blockUnratedContent: Command<void, void, any>;
                unblockUnratedContent: Command<void, void, any>;
            };
        };
        flags: {
            blockUnrated: true;
        };
    }, {
        component: {
            attributes: {
                blockChannelList: Attribute<TypeFromFields<{
                    blockChannelIndex: FieldType<(...) | (...)>;
                    identifier: OptionalFieldType<string>;
                    majorNumber: FieldType<number>;
                    minorNumber: FieldType<number>;
                }>[], any>;
            };
            commands: {
                addBlockChannels: Command<TypeFromFields<{
                    channels: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
                removeBlockChannels: Command<TypeFromFields<{
                    channelIndexes: FieldType<number[]>;
                }>, void, any>;
            };
        };
        flags: {
            blockChannels: true;
        };
    }, {
        component: {
            attributes: {
                blockApplicationList: Attribute<TypeFromFields<{
                    applicationId: FieldType<string>;
                    catalogVendorId: FieldType<number>;
                }>[], any>;
            };
            commands: {
                addBlockApplications: Command<TypeFromFields<{
                    applications: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
                removeBlockApplications: Command<TypeFromFields<{
                    applications: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
            };
        };
        flags: {
            blockApplications: true;
        };
    }, {
        component: {
            attributes: {
                blockContentTimeWindow: Attribute<TypeFromFields<{
                    dayOfWeek: FieldType<ContentControl.DayOfWeek>;
                    timePeriod: FieldType<(...)[]>;
                    timeWindowIndex: FieldType<(...) | (...)>;
                }>[], any>;
            };
            commands: {
                removeBlockContentTimeWindow: Command<TypeFromFields<{
                    timeWindowIndexes: FieldType<number[]>;
                }>, void, any>;
                setBlockContentTimeWindow: Command<TypeFromFields<{
                    timeWindow: FieldType<TypeFromFields<{
                        dayOfWeek: ...;
                        timePeriod: ...;
                        timeWindowIndex: ...;
                    }>>;
                }>, void, any>;
            };
            events: {
                enteringBlockContentTimeWindow: Event<void, any>;
            };
        };
        flags: {
            blockContentTimeWindow: true;
        };
    }, {
        component: {
            commands: {
                resetPin: Command<void, TypeFromFields<{
                    pinCode: FieldType<string>;
                }>, any>;
                updatePin: Command<TypeFromFields<{
                    newPin: FieldType<string>;
                    oldPin: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            pinManagement: true;
        };
    }];
    features: {
        blockApplications: BitFlag;
        blockChannels: BitFlag;
        blockContentTimeWindow: BitFlag;
        blockUnrated: BitFlag;
        onDemandContentRating: BitFlag;
        pinManagement: BitFlag;
        scheduledContentRating: BitFlag;
        screenTime: BitFlag;
    };
    id: 1295;
    name: "ContentControl";
    revision: 1;
} = ...

These elements and properties are present in all ContentControl clusters.

Type declaration

  • Readonlyattributes: {
        enabled: Attribute<boolean, any>;
    }
    • Readonlyenabled: Attribute<boolean, any>

      Indicates whether the Content Control feature implemented on a media device is turned off (FALSE) or turned on (TRUE).

      MatterSpecification.v13.Cluster § 6.13.7.1

  • Readonlycommands: {
        disable: Command<void, void, any>;
        enable: Command<void, void, any>;
    }
    • Readonlydisable: Command<void, void, any>

      The purpose of this command is to turn off the Content Control feature on a media device.

      On receipt of the Disable command, the media device shall set the Enabled attribute to FALSE.

      MatterSpecification.v13.Cluster § 6.13.8.5

    • Readonlyenable: Command<void, void, any>

      The purpose of this command is to turn on the Content Control feature on a media device.

      Upon receipt of the Enable command, the media device shall set the Enabled attribute to TRUE.

      MatterSpecification.v13.Cluster § 6.13.8.4

  • Readonlyextensions: readonly [{
        component: {
            attributes: {
                onDemandRatings: Attribute<TypeFromFields<{
                    ratingName: FieldType<string>;
                    ratingNameDesc: OptionalFieldType<string>;
                }>[], any>;
                onDemandRatingThreshold: Attribute<string, any>;
            };
            commands: {
                setOnDemandRatingThreshold: Command<TypeFromFields<{
                    rating: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            onDemandContentRating: true;
        };
    }, {
        component: {
            attributes: {
                scheduledContentRatings: Attribute<TypeFromFields<{
                    ratingName: FieldType<string>;
                    ratingNameDesc: OptionalFieldType<string>;
                }>[], any>;
                scheduledContentRatingThreshold: Attribute<string, any>;
            };
            commands: {
                setScheduledContentRatingThreshold: Command<TypeFromFields<{
                    rating: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            scheduledContentRating: true;
        };
    }, {
        component: {
            attributes: {
                remainingScreenTime: Attribute<number, any>;
                screenDailyTime: Attribute<number, any>;
            };
            commands: {
                addBonusTime: Command<TypeFromFields<{
                    bonusTime: FieldType<number>;
                    pinCode: OptionalFieldType<string>;
                }>, void, any>;
                setScreenDailyTime: Command<TypeFromFields<{
                    screenTime: FieldType<number>;
                }>, void, any>;
            };
            events: {
                remainingScreenTimeExpired: Event<void, any>;
            };
        };
        flags: {
            screenTime: true;
        };
    }, {
        component: {
            attributes: {
                blockUnrated: Attribute<boolean, any>;
            };
            commands: {
                blockUnratedContent: Command<void, void, any>;
                unblockUnratedContent: Command<void, void, any>;
            };
        };
        flags: {
            blockUnrated: true;
        };
    }, {
        component: {
            attributes: {
                blockChannelList: Attribute<TypeFromFields<{
                    blockChannelIndex: FieldType<(...) | (...)>;
                    identifier: OptionalFieldType<string>;
                    majorNumber: FieldType<number>;
                    minorNumber: FieldType<number>;
                }>[], any>;
            };
            commands: {
                addBlockChannels: Command<TypeFromFields<{
                    channels: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
                removeBlockChannels: Command<TypeFromFields<{
                    channelIndexes: FieldType<number[]>;
                }>, void, any>;
            };
        };
        flags: {
            blockChannels: true;
        };
    }, {
        component: {
            attributes: {
                blockApplicationList: Attribute<TypeFromFields<{
                    applicationId: FieldType<string>;
                    catalogVendorId: FieldType<number>;
                }>[], any>;
            };
            commands: {
                addBlockApplications: Command<TypeFromFields<{
                    applications: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
                removeBlockApplications: Command<TypeFromFields<{
                    applications: FieldType<TypeFromFields<(...)>[]>;
                }>, void, any>;
            };
        };
        flags: {
            blockApplications: true;
        };
    }, {
        component: {
            attributes: {
                blockContentTimeWindow: Attribute<TypeFromFields<{
                    dayOfWeek: FieldType<ContentControl.DayOfWeek>;
                    timePeriod: FieldType<(...)[]>;
                    timeWindowIndex: FieldType<(...) | (...)>;
                }>[], any>;
            };
            commands: {
                removeBlockContentTimeWindow: Command<TypeFromFields<{
                    timeWindowIndexes: FieldType<number[]>;
                }>, void, any>;
                setBlockContentTimeWindow: Command<TypeFromFields<{
                    timeWindow: FieldType<TypeFromFields<{
                        dayOfWeek: ...;
                        timePeriod: ...;
                        timeWindowIndex: ...;
                    }>>;
                }>, void, any>;
            };
            events: {
                enteringBlockContentTimeWindow: Event<void, any>;
            };
        };
        flags: {
            blockContentTimeWindow: true;
        };
    }, {
        component: {
            commands: {
                resetPin: Command<void, TypeFromFields<{
                    pinCode: FieldType<string>;
                }>, any>;
                updatePin: Command<TypeFromFields<{
                    newPin: FieldType<string>;
                    oldPin: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            pinManagement: true;
        };
    }]

    This metadata controls which ContentControlCluster elements matter.js activates for specific feature combinations.

  • Readonlyfeatures: {
        blockApplications: BitFlag;
        blockChannels: BitFlag;
        blockContentTimeWindow: BitFlag;
        blockUnrated: BitFlag;
        onDemandContentRating: BitFlag;
        pinManagement: BitFlag;
        scheduledContentRating: BitFlag;
        screenTime: BitFlag;
    }
    • ReadonlyblockApplications: BitFlag

      BlockApplications

      Supports managing a set of applications that are prohibited.

    • ReadonlyblockChannels: BitFlag

      BlockChannels

      Supports managing a set of channels that are prohibited.

    • ReadonlyblockContentTimeWindow: BitFlag

      BlockContentTimeWindow

      Supports managing content controls based upon setting time window in which all contents and applications SHALL be blocked.

    • ReadonlyblockUnrated: BitFlag

      BlockUnrated

      Supports managing content controls for unrated content.

    • ReadonlyonDemandContentRating: BitFlag

      OnDemandContentRating

      Supports managing content controls based upon rating threshold for on demand content.

    • ReadonlypinManagement: BitFlag

      PinManagement

      Supports managing a PIN code which is used for restricting access to configuration of this feature.

    • ReadonlyscheduledContentRating: BitFlag

      ScheduledContentRating

      Supports managing content controls based upon rating threshold for scheduled content.

    • ReadonlyscreenTime: BitFlag

      ScreenTime

      Supports managing screen time limits.

  • Readonlyid: 1295
  • Readonlyname: "ContentControl"
  • Readonlyrevision: 1