This is the default server implementation of ElectricalEnergyMeasurementBehavior.

The Matter specification requires the ElectricalEnergyMeasurement cluster to support features we do not enable by default. You should use ElectricalEnergyMeasurementServer.with to specialize the class for the features your implementation supports.

Hierarchy

  • ElectricalEnergyMeasurementServerBase
    • ElectricalEnergyMeasurementServerLogic

Constructors

Properties

[reference]: Datasource<StateType>
agent: Agent
cluster: never

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<ClusterEvents<ElectricalEnergyMeasurement.Complete, Type<Of<{
    attributes: {
        accuracy: FixedAttribute<TypeFromFields<{
            accuracyRanges: FieldType<(...)>;
            maxMeasuredValue: FieldType<(...)>;
            measured: FieldType<(...)>;
            measurementType: FieldType<(...)>;
            minMeasuredValue: FieldType<(...)>;
        }>, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                cumulativeEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            importedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            exportedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            importedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            exportedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyReset: OptionalAttribute<(...), (...)>;
            };
            events: {
                cumulativeEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
        };
    }, {
        component: {
            events: {
                periodicEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            periodicEnergy: true;
        };
    }, {
        component: false;
        flags: {
            exportedEnergy: false;
            importedEnergy: false;
        };
    }, {
        component: false;
        flags: {
            cumulativeEnergy: false;
            periodicEnergy: false;
        };
    }];
    features: {
        cumulativeEnergy: BitFlag;
        exportedEnergy: BitFlag;
        importedEnergy: BitFlag;
        periodicEnergy: BitFlag;
    };
    id: 145;
    name: "ElectricalEnergyMeasurement";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}>>,
    | "cumulativeEnergyMeasured"
    | "periodicEnergyMeasured"
    | "accuracy$Changing"
    | "accuracy$Changed"
    | "cumulativeEnergyImported$Changing"
    | "cumulativeEnergyExported$Changing"
    | "periodicEnergyImported$Changing"
    | "periodicEnergyExported$Changing"
    | "cumulativeEnergyReset$Changing"
    | "cumulativeEnergyImported$Changed"
    | "cumulativeEnergyExported$Changed"
    | "periodicEnergyImported$Changed"
    | "periodicEnergyExported$Changed"
    | "cumulativeEnergyReset$Changed"> & {
    accuracy$Changing: ClusterEvents.AttributeObservable<FixedAttribute<TypeFromFields<{
        accuracyRanges: FieldType<TypeFromFields<{
            fixedMax: OptionalFieldType<(...)>;
            fixedMin: OptionalFieldType<(...)>;
            fixedTypical: OptionalFieldType<(...)>;
            percentMax: OptionalFieldType<(...)>;
            percentMin: OptionalFieldType<(...)>;
            percentTypical: OptionalFieldType<(...)>;
            rangeMax: FieldType<(...)>;
            rangeMin: FieldType<(...)>;
        }>[]>;
        maxMeasuredValue: FieldType<number | bigint>;
        measured: FieldType<boolean>;
        measurementType: FieldType<MeasurementType>;
        minMeasuredValue: FieldType<number | bigint>;
    }>, any>>;
} & {
    cumulativeEnergyExported$Changing: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            cumulativeEnergy: boolean;
            exportedEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    cumulativeEnergyImported$Changing: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            cumulativeEnergy: boolean;
            importedEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    cumulativeEnergyReset$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | TypeFromFields<{
        exportedResetSystime: OptionalFieldType<(...) | (...) | (...)>;
        exportedResetTimestamp: OptionalFieldType<(...) | (...)>;
        importedResetSystime: OptionalFieldType<(...) | (...) | (...)>;
        importedResetTimestamp: OptionalFieldType<(...) | (...)>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | ConditionalFeatureList<BitSchema>;
        optional: true;
        optionalIf: [] | [{
            cumulativeEnergy: boolean;
        }];
    }>;
    periodicEnergyExported$Changing: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            exportedEnergy: boolean;
            periodicEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    periodicEnergyImported$Changing: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            importedEnergy: boolean;
            periodicEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
} & {
    accuracy$Changed: ClusterEvents.AttributeObservable<FixedAttribute<TypeFromFields<{
        accuracyRanges: FieldType<TypeFromFields<{
            fixedMax: OptionalFieldType<(...)>;
            fixedMin: OptionalFieldType<(...)>;
            fixedTypical: OptionalFieldType<(...)>;
            percentMax: OptionalFieldType<(...)>;
            percentMin: OptionalFieldType<(...)>;
            percentTypical: OptionalFieldType<(...)>;
            rangeMax: FieldType<(...)>;
            rangeMin: FieldType<(...)>;
        }>[]>;
        maxMeasuredValue: FieldType<number | bigint>;
        measured: FieldType<boolean>;
        measurementType: FieldType<MeasurementType>;
        minMeasuredValue: FieldType<number | bigint>;
    }>, any>>;
} & {
    cumulativeEnergyExported$Changed: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            cumulativeEnergy: boolean;
            exportedEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    cumulativeEnergyImported$Changed: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            cumulativeEnergy: boolean;
            importedEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    cumulativeEnergyReset$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | TypeFromFields<{
        exportedResetSystime: OptionalFieldType<(...) | (...) | (...)>;
        exportedResetTimestamp: OptionalFieldType<(...) | (...)>;
        importedResetSystime: OptionalFieldType<(...) | (...) | (...)>;
        importedResetTimestamp: OptionalFieldType<(...) | (...)>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | ConditionalFeatureList<BitSchema>;
        optional: true;
        optionalIf: [] | [{
            cumulativeEnergy: boolean;
        }];
    }>;
    periodicEnergyExported$Changed: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            exportedEnergy: boolean;
            periodicEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    periodicEnergyImported$Changed: undefined | ClusterEvents.AttributeObservable<Attribute<null | TypeFromFields<{
        endSystime: OptionalFieldType<(...) | (...)>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<(...) | (...)>;
        startSystime: OptionalFieldType<(...) | (...)>;
        startTimestamp: OptionalFieldType<number>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            importedEnergy: boolean;
            periodicEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
} & {} & {
    cumulativeEnergyMeasured?: ClusterEvents.EventObservable<Event<TypeFromFields<{
        energyExported: OptionalFieldType<TypeFromFields<{
            endSystime: ...;
            endTimestamp: ...;
            energy: ...;
            startSystime: ...;
            startTimestamp: ...;
        }>>;
        energyImported: OptionalFieldType<TypeFromFields<{
            endSystime: ...;
            endTimestamp: ...;
            energy: ...;
            startSystime: ...;
            startTimestamp: ...;
        }>>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            cumulativeEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
    periodicEnergyMeasured?: ClusterEvents.EventObservable<Event<TypeFromFields<{
        energyExported: OptionalFieldType<TypeFromFields<{
            endSystime: ...;
            endTimestamp: ...;
            energy: ...;
            startSystime: ...;
            startTimestamp: ...;
        }>>;
        energyImported: OptionalFieldType<TypeFromFields<{
            endSystime: ...;
            endTimestamp: ...;
            energy: ...;
            startSystime: ...;
            startTimestamp: ...;
        }>>;
    }>, any> & {
        isConditional: true;
        mandatoryIf: [] | [{
            periodicEnergy: boolean;
        }];
        optional: true;
        optionalIf: [] | ConditionalFeatureList<BitSchema>;
    }>;
}

Access the behavior's events.

features: TypeFromBitSchema<{
    cumulativeEnergy: BitFlag;
    exportedEnergy: BitFlag;
    importedEnergy: BitFlag;
    periodicEnergy: BitFlag;
}> & TypeFromBitSchema<{
    cumulativeEnergy: BitFlag;
    exportedEnergy: BitFlag;
    importedEnergy: BitFlag;
    periodicEnergy: BitFlag;
}>

Supported features as a flag object.

session: SecureSession
state: Omit<ClusterState.Type<ElectricalEnergyMeasurement.Complete, Type<Of<{
    attributes: {
        accuracy: FixedAttribute<TypeFromFields<{
            accuracyRanges: FieldType<(...)>;
            maxMeasuredValue: FieldType<(...)>;
            measured: FieldType<(...)>;
            measurementType: FieldType<(...)>;
            minMeasuredValue: FieldType<(...)>;
        }>, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                cumulativeEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            importedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            exportedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            importedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            exportedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyReset: OptionalAttribute<(...), (...)>;
            };
            events: {
                cumulativeEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
        };
    }, {
        component: {
            events: {
                periodicEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            periodicEnergy: true;
        };
    }, {
        component: false;
        flags: {
            exportedEnergy: false;
            importedEnergy: false;
        };
    }, {
        component: false;
        flags: {
            cumulativeEnergy: false;
            periodicEnergy: false;
        };
    }];
    features: {
        cumulativeEnergy: BitFlag;
        exportedEnergy: BitFlag;
        importedEnergy: BitFlag;
        periodicEnergy: BitFlag;
    };
    id: 145;
    name: "ElectricalEnergyMeasurement";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}>>,
    | "accuracy"
    | "cumulativeEnergyImported"
    | "cumulativeEnergyExported"
    | "periodicEnergyImported"
    | "periodicEnergyExported"
    | "cumulativeEnergyReset"> & {} & {
    cumulativeEnergyExported?: null | TypeFromFields<{
        endSystime: OptionalFieldType<number | bigint>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<number | bigint>;
        startSystime: OptionalFieldType<number | bigint>;
        startTimestamp: OptionalFieldType<number>;
    }>;
    cumulativeEnergyImported?: null | TypeFromFields<{
        endSystime: OptionalFieldType<number | bigint>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<number | bigint>;
        startSystime: OptionalFieldType<number | bigint>;
        startTimestamp: OptionalFieldType<number>;
    }>;
    cumulativeEnergyReset?: null | TypeFromFields<{
        exportedResetSystime: OptionalFieldType<null | number | bigint>;
        exportedResetTimestamp: OptionalFieldType<null | number>;
        importedResetSystime: OptionalFieldType<null | number | bigint>;
        importedResetTimestamp: OptionalFieldType<null | number>;
    }>;
    periodicEnergyExported?: null | TypeFromFields<{
        endSystime: OptionalFieldType<number | bigint>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<number | bigint>;
        startSystime: OptionalFieldType<number | bigint>;
        startTimestamp: OptionalFieldType<number>;
    }>;
    periodicEnergyImported?: null | TypeFromFields<{
        endSystime: OptionalFieldType<number | bigint>;
        endTimestamp: OptionalFieldType<number>;
        energy: FieldType<number | bigint>;
        startSystime: OptionalFieldType<number | bigint>;
        startTimestamp: OptionalFieldType<number>;
    }>;
} & {
    accuracy: TypeFromFields<{
        accuracyRanges: FieldType<TypeFromFields<{
            fixedMax: OptionalFieldType<number | bigint>;
            fixedMin: OptionalFieldType<number | bigint>;
            fixedTypical: OptionalFieldType<number | bigint>;
            percentMax: OptionalFieldType<number>;
            percentMin: OptionalFieldType<number>;
            percentTypical: OptionalFieldType<number>;
            rangeMax: FieldType<number | bigint>;
            rangeMin: FieldType<number | bigint>;
        }>[]>;
        maxMeasuredValue: FieldType<number | bigint>;
        measured: FieldType<boolean>;
        measurementType: FieldType<MeasurementType>;
        minMeasuredValue: FieldType<number | bigint>;
    }>;
} & {}

Access the behavior's state.

Type declaration

Base cluster state include all attribute values but may be extended by subclasses.

defaults: ClusterState.Type<WithFeatures<ElectricalEnergyMeasurement.Complete, readonly [CumulativeEnergy, PeriodicEnergy, ImportedEnergy, ExportedEnergy]>, Type<ElectricalEnergyMeasurement.Complete, Type<Of<{
    attributes: {
        accuracy: FixedAttribute<TypeFromFields<{
            accuracyRanges: FieldType<(...)[]>;
            maxMeasuredValue: FieldType<(...) | (...)>;
            measured: FieldType<boolean>;
            measurementType: FieldType<MeasurementType>;
            minMeasuredValue: FieldType<(...) | (...)>;
        }>, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                cumulativeEnergyImported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            importedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyExported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            exportedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyImported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            importedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyExported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            exportedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyReset: OptionalAttribute<(...) | (...), any>;
            };
            events: {
                cumulativeEnergyMeasured: Event<TypeFromFields<(...)>, any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
        };
    }, {
        component: {
            events: {
                periodicEnergyMeasured: Event<TypeFromFields<(...)>, any>;
            };
        };
        flags: {
            periodicEnergy: true;
        };
    }, {
        component: false;
        flags: {
            exportedEnergy: false;
            importedEnergy: false;
        };
    }, {
        component: false;
        flags: {
            cumulativeEnergy: false;
            periodicEnergy: false;
        };
    }];
    features: {
        cumulativeEnergy: BitFlag;
        exportedEnergy: BitFlag;
        importedEnergy: BitFlag;
        periodicEnergy: BitFlag;
    };
    id: 145;
    name: "ElectricalEnergyMeasurement";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}>, {
    components: never[];
}>>
dependencies?: Iterable<Type, any, any>
early: boolean
Events: ClusterEvents.Type<WithFeatures<ElectricalEnergyMeasurement.Complete, readonly [CumulativeEnergy, PeriodicEnergy, ImportedEnergy, ExportedEnergy]>, Type<ElectricalEnergyMeasurement.Complete, Type<Of<{
    attributes: {
        accuracy: FixedAttribute<TypeFromFields<{
            accuracyRanges: FieldType<(...)[]>;
            maxMeasuredValue: FieldType<(...) | (...)>;
            measured: FieldType<boolean>;
            measurementType: FieldType<MeasurementType>;
            minMeasuredValue: FieldType<(...) | (...)>;
        }>, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                cumulativeEnergyImported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            importedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyExported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            exportedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyImported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            importedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyExported: Attribute<(...) | (...), any>;
            };
        };
        flags: {
            exportedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyReset: OptionalAttribute<(...) | (...), any>;
            };
            events: {
                cumulativeEnergyMeasured: Event<TypeFromFields<(...)>, any>;
            };
        };
        flags: {
            cumulativeEnergy: true;
        };
    }, {
        component: {
            events: {
                periodicEnergyMeasured: Event<TypeFromFields<(...)>, any>;
            };
        };
        flags: {
            periodicEnergy: true;
        };
    }, {
        component: false;
        flags: {
            exportedEnergy: false;
            importedEnergy: false;
        };
    }, {
        component: false;
        flags: {
            cumulativeEnergy: false;
            periodicEnergy: false;
        };
    }];
    features: {
        cumulativeEnergy: BitFlag;
        exportedEnergy: BitFlag;
        importedEnergy: BitFlag;
        periodicEnergy: BitFlag;
    };
    id: 145;
    name: "ElectricalEnergyMeasurement";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}>, {
    components: never[];
}>>
id

The behavior ID for ClusterBehaviors is the name of the cluster.

Interface: {
    components: never[];
}
Internal: (new () => {})
name: string
schema?: Schema
State: (new () => ClusterState.Type<WithFeatures<ElectricalEnergyMeasurement.Complete, readonly [CumulativeEnergy, PeriodicEnergy, ImportedEnergy, ExportedEnergy]>, Type<ElectricalEnergyMeasurement.Complete, Type<Of<{
    attributes: {
        accuracy: FixedAttribute<TypeFromFields<{
            accuracyRanges: FieldType<(...)>;
            maxMeasuredValue: FieldType<(...)>;
            measured: FieldType<(...)>;
            measurementType: FieldType<(...)>;
            minMeasuredValue: FieldType<(...)>;
        }>, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                cumulativeEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            importedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
            exportedEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyImported: Attribute<(...), (...)>;
            };
        };
        flags: {
            importedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                periodicEnergyExported: Attribute<(...), (...)>;
            };
        };
        flags: {
            exportedEnergy: true;
            periodicEnergy: true;
        };
    }, {
        component: {
            attributes: {
                cumulativeEnergyReset: OptionalAttribute<(...), (...)>;
            };
            events: {
                cumulativeEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            cumulativeEnergy: true;
        };
    }, {
        component: {
            events: {
                periodicEnergyMeasured: Event<(...), (...)>;
            };
        };
        flags: {
            periodicEnergy: true;
        };
    }, {
        component: false;
        flags: {
            exportedEnergy: false;
            importedEnergy: false;
        };
    }, {
        component: false;
        flags: {
            cumulativeEnergy: false;
            periodicEnergy: false;
        };
    }];
    features: {
        cumulativeEnergy: BitFlag;
        exportedEnergy: BitFlag;
        importedEnergy: BitFlag;
        periodicEnergy: BitFlag;
    };
    id: 145;
    name: "ElectricalEnergyMeasurement";
    revision: 1;
}>, typeof ClusterBehavior, {
    components: never[];
}>, {
    components: never[];
}>>)
supervisor: RootSupervisor
supports: ((other: Type) => boolean)

Type declaration

    • (other): boolean
    • Does this behavior support functionality of a specific implementation?

      Parameters

      Returns boolean

Methods

  • Create a generic callback function that has the same properties as a Reactor.

    Like a reactor, the callback's "this" will be bound to an active Behavior instance. Because of this: The reactor MUST be a real JS function - arrow functions will not work!

    Type Parameters

    • A extends any[]
    • R

    Parameters

    Returns ((...args: A) => undefined | R)

      • (...args): undefined | R
      • Parameters

        • Rest...args: A

        Returns undefined | R

  • Behaviors are ephemeral and should not perform initialization in their constructor. They can override this method instead.

    This method may be synchronous or asyncronous. If asynchronous, the behavior will not be available for external use until initialization completes.

    Parameters

    • Optional_options: {}

      Returns MaybePromise

    • Install a Reactor.

      Important: The reactor MUST be a real JS function - arrow functions will not work!

      Type Parameters

      Parameters

      Returns void