This is the default server implementation of Pm10ConcentrationMeasurementBehavior.

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

Hierarchy (view full)

Constructors

Properties

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

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<Events, never> & {
    measurementMedium$Changing: ClusterEvents.AttributeObservable<FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>>;
} & {} & {
    measurementMedium$Changed: ClusterEvents.AttributeObservable<FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>>;
} & {} & {} & {}

Access the behavior's events.

features: TypeFromBitSchema<{
    averageMeasurement: BitFlag;
    criticalLevel: BitFlag;
    levelIndication: BitFlag;
    mediumLevel: BitFlag;
    numericMeasurement: BitFlag;
    peakMeasurement: BitFlag;
}>

Supported features as a flag object.

session: SecureSession
state: Omit<{}, never> & {} & {} & {
    measurementMedium: ConcentrationMeasurement.MeasurementMedium;
} & {}

Access the behavior's state.

cluster: Of<{
    attributes: {
        measurementMedium: FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                maxMeasuredValue: Attribute<null | number, any>;
                measuredValue: Attribute<null | number, any>;
                measurementUnit: FixedAttribute<ConcentrationMeasurement.MeasurementUnit, any>;
                minMeasuredValue: Attribute<null | number, any>;
                uncertainty: OptionalAttribute<number, any>;
            };
        };
        flags: {
            numericMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                peakMeasuredValue: Attribute<null | number, any>;
                peakMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            peakMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                averageMeasuredValue: Attribute<null | number, any>;
                averageMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            averageMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                levelValue: Attribute<ConcentrationMeasurement.LevelValue, any>;
            };
        };
        flags: {
            levelIndication: true;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            mediumLevel: true;
        };
    }, {
        component: false;
        flags: {
            criticalLevel: true;
            levelIndication: false;
        };
    }, {
        component: false;
        flags: {
            numericMeasurement: false;
            peakMeasurement: true;
        };
    }, {
        component: false;
        flags: {
            averageMeasurement: true;
            numericMeasurement: false;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            numericMeasurement: false;
        };
    }];
    features: {
        averageMeasurement: BitFlag;
        criticalLevel: BitFlag;
        levelIndication: BitFlag;
        mediumLevel: BitFlag;
        numericMeasurement: BitFlag;
        peakMeasurement: BitFlag;
    };
    id: 1069;
    name: "Pm10ConcentrationMeasurement";
    revision: 3;
}>

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

defaults: ClusterState.Type<Of<{
    attributes: {
        measurementMedium: FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                maxMeasuredValue: Attribute<null | number, any>;
                measuredValue: Attribute<null | number, any>;
                measurementUnit: FixedAttribute<ConcentrationMeasurement.MeasurementUnit, any>;
                minMeasuredValue: Attribute<null | number, any>;
                uncertainty: OptionalAttribute<number, any>;
            };
        };
        flags: {
            numericMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                peakMeasuredValue: Attribute<null | number, any>;
                peakMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            peakMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                averageMeasuredValue: Attribute<null | number, any>;
                averageMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            averageMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                levelValue: Attribute<ConcentrationMeasurement.LevelValue, any>;
            };
        };
        flags: {
            levelIndication: true;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            mediumLevel: true;
        };
    }, {
        component: false;
        flags: {
            criticalLevel: true;
            levelIndication: false;
        };
    }, {
        component: false;
        flags: {
            numericMeasurement: false;
            peakMeasurement: true;
        };
    }, {
        component: false;
        flags: {
            averageMeasurement: true;
            numericMeasurement: false;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            numericMeasurement: false;
        };
    }];
    features: {
        averageMeasurement: BitFlag;
        criticalLevel: BitFlag;
        levelIndication: BitFlag;
        mediumLevel: BitFlag;
        numericMeasurement: BitFlag;
        peakMeasurement: BitFlag;
    };
    id: 1069;
    name: "Pm10ConcentrationMeasurement";
    revision: 3;
}>, typeof ClusterBehavior>
dependencies?: Iterable<Type, any, any>
early: boolean
Events: ClusterEvents.Type<Of<{
    attributes: {
        measurementMedium: FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                maxMeasuredValue: Attribute<null | number, any>;
                measuredValue: Attribute<null | number, any>;
                measurementUnit: FixedAttribute<ConcentrationMeasurement.MeasurementUnit, any>;
                minMeasuredValue: Attribute<null | number, any>;
                uncertainty: OptionalAttribute<number, any>;
            };
        };
        flags: {
            numericMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                peakMeasuredValue: Attribute<null | number, any>;
                peakMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            peakMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                averageMeasuredValue: Attribute<null | number, any>;
                averageMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            averageMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                levelValue: Attribute<ConcentrationMeasurement.LevelValue, any>;
            };
        };
        flags: {
            levelIndication: true;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            mediumLevel: true;
        };
    }, {
        component: false;
        flags: {
            criticalLevel: true;
            levelIndication: false;
        };
    }, {
        component: false;
        flags: {
            numericMeasurement: false;
            peakMeasurement: true;
        };
    }, {
        component: false;
        flags: {
            averageMeasurement: true;
            numericMeasurement: false;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            numericMeasurement: false;
        };
    }];
    features: {
        averageMeasurement: BitFlag;
        criticalLevel: BitFlag;
        levelIndication: BitFlag;
        mediumLevel: BitFlag;
        numericMeasurement: BitFlag;
        peakMeasurement: BitFlag;
    };
    id: 1069;
    name: "Pm10ConcentrationMeasurement";
    revision: 3;
}>, typeof ClusterBehavior>
ExtensionInterface: {}
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<Of<{
    attributes: {
        measurementMedium: FixedAttribute<ConcentrationMeasurement.MeasurementMedium, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                maxMeasuredValue: Attribute<null | number, any>;
                measuredValue: Attribute<null | number, any>;
                measurementUnit: FixedAttribute<ConcentrationMeasurement.MeasurementUnit, any>;
                minMeasuredValue: Attribute<null | number, any>;
                uncertainty: OptionalAttribute<number, any>;
            };
        };
        flags: {
            numericMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                peakMeasuredValue: Attribute<null | number, any>;
                peakMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            peakMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                averageMeasuredValue: Attribute<null | number, any>;
                averageMeasuredValueWindow: Attribute<number, any>;
            };
        };
        flags: {
            averageMeasurement: true;
        };
    }, {
        component: {
            attributes: {
                levelValue: Attribute<ConcentrationMeasurement.LevelValue, any>;
            };
        };
        flags: {
            levelIndication: true;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            mediumLevel: true;
        };
    }, {
        component: false;
        flags: {
            criticalLevel: true;
            levelIndication: false;
        };
    }, {
        component: false;
        flags: {
            numericMeasurement: false;
            peakMeasurement: true;
        };
    }, {
        component: false;
        flags: {
            averageMeasurement: true;
            numericMeasurement: false;
        };
    }, {
        component: false;
        flags: {
            levelIndication: false;
            numericMeasurement: false;
        };
    }];
    features: {
        averageMeasurement: BitFlag;
        criticalLevel: BitFlag;
        levelIndication: BitFlag;
        mediumLevel: BitFlag;
        numericMeasurement: BitFlag;
        peakMeasurement: BitFlag;
    };
    id: 1069;
    name: "Pm10ConcentrationMeasurement";
    revision: 3;
}>, typeof ClusterBehavior>)
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