Base: {
    attributes: {
        description: FixedAttribute<string, any>;
        endpointList: Attribute<EndpointNumber[], any>;
        order: Attribute<number, any>;
        status: Attribute<PowerSource.PowerSourceStatus, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                activeWiredFaults: OptionalAttribute<PowerSource.WiredFault[], any>;
                wiredAssessedCurrent: OptionalAttribute<number | null, any>;
                wiredAssessedInputFrequency: OptionalAttribute<number | null, any>;
                wiredAssessedInputVoltage: OptionalAttribute<number | null, any>;
                wiredCurrentType: FixedAttribute<PowerSource.WiredCurrentType, any>;
                wiredMaximumCurrent: OptionalFixedAttribute<number, any>;
                wiredNominalVoltage: OptionalFixedAttribute<number, any>;
                wiredPresent: OptionalAttribute<boolean, any>;
            };
            events: {
                wiredFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            wired: true;
        };
    }, {
        component: {
            attributes: {
                activeBatFaults: OptionalAttribute<PowerSource.BatFault[], any>;
                batChargeLevel: Attribute<PowerSource.BatChargeLevel, any>;
                batPercentRemaining: OptionalAttribute<number | null, any>;
                batPresent: OptionalAttribute<boolean, any>;
                batReplaceability: FixedAttribute<PowerSource.BatReplaceability, any>;
                batReplacementNeeded: Attribute<boolean, any>;
                batTimeRemaining: OptionalAttribute<number | null, any>;
                batVoltage: OptionalAttribute<number | null, any>;
            };
            events: {
                batFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            battery: true;
        };
    }, {
        component: {
            attributes: {
                batAnsiDesignation: OptionalFixedAttribute<string, any>;
                batApprovedChemistry: OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
                batCommonDesignation: OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
                batIecDesignation: OptionalFixedAttribute<string, any>;
                batQuantity: FixedAttribute<number, any>;
                batReplacementDescription: FixedAttribute<string, any>;
            };
        };
        flags: {
            replaceable: true;
        };
    }, {
        component: {
            attributes: {
                batCapacity: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            replaceable: true;
        };
    }, {
        component: {
            attributes: {
                batCapacity: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            rechargeable: true;
        };
    }, {
        component: {
            attributes: {
                activeBatChargeFaults: OptionalAttribute<PowerSource.BatChargeFault[], any>;
                batChargeState: Attribute<PowerSource.BatChargeState, any>;
                batChargingCurrent: OptionalAttribute<number | null, any>;
                batFunctionalWhileCharging: Attribute<boolean, any>;
                batTimeToFullCharge: OptionalAttribute<number | null, any>;
            };
            events: {
                batChargeFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            rechargeable: true;
        };
    }, {
        component: false;
        flags: {
            battery: false;
            rechargeable: true;
        };
    }, {
        component: false;
        flags: {
            battery: false;
            replaceable: true;
        };
    }];
    features: {
        battery: BitFlag;
        rechargeable: BitFlag;
        replaceable: BitFlag;
        wired: BitFlag;
    };
    id: 47;
    name: "PowerSource";
    revision: 2;
}

These elements and properties are present in all PowerSource clusters.

Type declaration

  • Readonlyattributes: {
        description: FixedAttribute<string, any>;
        endpointList: Attribute<EndpointNumber[], any>;
        order: Attribute<number, any>;
        status: Attribute<PowerSource.PowerSourceStatus, any>;
    }
    • Readonlydescription: FixedAttribute<string, any>

      This attribute shall provide a user-facing description of this source, used to distinguish it from other power sources, e.g. "DC Power", "Primary Battery" or "Battery back-up". This attribute shall NOT be used to convey information such as battery form factor, or chemistry.

      MatterSpecification.v13.Core § 11.7.7.3

    • ReadonlyendpointList: Attribute<EndpointNumber[], any>

      Indicates a list of endpoints that are powered by the source defined by this cluster. Multiple instances of this cluster may list the same endpoint, because it is possible for power for an endpoint to come from multiple sources. In that case the Order attribute indicates their priority.

      For each power source on a node, there shall only be one instance of this cluster.

      A cluster instance with an empty list shall indicate that the power source is for the entire node, which includes all endpoints.

      A cluster instance with a non-empty list shall include the endpoint, upon which the cluster instance resides.

      The above rules allow that some endpoints can have an unknown power source, and therefore would not be indicated by any instance of this cluster.

      Empty list examples

      Typically, there is one power source for the node. Also common is mains power for the node with battery backup power for the node. In both these common cases, for each cluster instance described, the list is empty.

      Populated list example

      A node has a mains power source with Order as 0 (zero), but some application endpoints (not all) have a battery back up source with Order as 1, which means this list is empty for the Power Source cluster associated with the mains power, because it indicates the entire node, but the Power Source cluster instance associated with the battery backup would list the endpoints that have a battery backup.

      MatterSpecification.v13.Core § 11.7.7.32

    • Readonlyorder: Attribute<number, any>

      Indicates the relative preference with which the Node will select this source to provide power. A source with a lower order shall be selected by the Node to provide power before any other source with a higher order, if the lower order source is available (see Status).

      Note, Order is read-only and therefore NOT intended to allow clients control over power source selection.

      MatterSpecification.v13.Core § 11.7.7.2

    • Readonlystatus: Attribute<PowerSource.PowerSourceStatus, any>

      Indicates the participation of this power source in providing power to the Node as specified in PowerSourceStatusEnum.

      MatterSpecification.v13.Core § 11.7.7.1

  • Readonlyextensions: readonly [{
        component: {
            attributes: {
                activeWiredFaults: OptionalAttribute<PowerSource.WiredFault[], any>;
                wiredAssessedCurrent: OptionalAttribute<number | null, any>;
                wiredAssessedInputFrequency: OptionalAttribute<number | null, any>;
                wiredAssessedInputVoltage: OptionalAttribute<number | null, any>;
                wiredCurrentType: FixedAttribute<PowerSource.WiredCurrentType, any>;
                wiredMaximumCurrent: OptionalFixedAttribute<number, any>;
                wiredNominalVoltage: OptionalFixedAttribute<number, any>;
                wiredPresent: OptionalAttribute<boolean, any>;
            };
            events: {
                wiredFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            wired: true;
        };
    }, {
        component: {
            attributes: {
                activeBatFaults: OptionalAttribute<PowerSource.BatFault[], any>;
                batChargeLevel: Attribute<PowerSource.BatChargeLevel, any>;
                batPercentRemaining: OptionalAttribute<number | null, any>;
                batPresent: OptionalAttribute<boolean, any>;
                batReplaceability: FixedAttribute<PowerSource.BatReplaceability, any>;
                batReplacementNeeded: Attribute<boolean, any>;
                batTimeRemaining: OptionalAttribute<number | null, any>;
                batVoltage: OptionalAttribute<number | null, any>;
            };
            events: {
                batFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            battery: true;
        };
    }, {
        component: {
            attributes: {
                batAnsiDesignation: OptionalFixedAttribute<string, any>;
                batApprovedChemistry: OptionalFixedAttribute<PowerSource.BatApprovedChemistry, any>;
                batCommonDesignation: OptionalFixedAttribute<PowerSource.BatCommonDesignation, any>;
                batIecDesignation: OptionalFixedAttribute<string, any>;
                batQuantity: FixedAttribute<number, any>;
                batReplacementDescription: FixedAttribute<string, any>;
            };
        };
        flags: {
            replaceable: true;
        };
    }, {
        component: {
            attributes: {
                batCapacity: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            replaceable: true;
        };
    }, {
        component: {
            attributes: {
                batCapacity: OptionalFixedAttribute<number, any>;
            };
        };
        flags: {
            rechargeable: true;
        };
    }, {
        component: {
            attributes: {
                activeBatChargeFaults: OptionalAttribute<PowerSource.BatChargeFault[], any>;
                batChargeState: Attribute<PowerSource.BatChargeState, any>;
                batChargingCurrent: OptionalAttribute<number | null, any>;
                batFunctionalWhileCharging: Attribute<boolean, any>;
                batTimeToFullCharge: OptionalAttribute<number | null, any>;
            };
            events: {
                batChargeFaultChange: OptionalEvent<TypeFromFields, any>;
            };
        };
        flags: {
            rechargeable: true;
        };
    }, {
        component: false;
        flags: {
            battery: false;
            rechargeable: true;
        };
    }, {
        component: false;
        flags: {
            battery: false;
            replaceable: true;
        };
    }]

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

  • Readonlyfeatures: {
        battery: BitFlag;
        rechargeable: BitFlag;
        replaceable: BitFlag;
        wired: BitFlag;
    }
    • Readonlybattery: BitFlag

      Battery

      A battery power source

    • Readonlyrechargeable: BitFlag

      Rechargeable

      A rechargeable battery power source

    • Readonlyreplaceable: BitFlag

      Replaceable

      A replaceable battery power source

    • Readonlywired: BitFlag

      Wired

      A wired power source

  • Readonlyid: 47
  • Readonlyname: "PowerSource"
  • Readonlyrevision: 2