interface ThermostatBehavior {
    [reference]: Datasource<StateType>;
    agent: Agent;
    cluster: never;
    context: ActionContext;
    endpoint: Endpoint<Empty>;
    env: Environment;
    events: EventEmitter & Omit<ClusterEvents<Of<{
        attributes: {};
        commands: {};
        events: {};
        id: 0;
        name: "Unknown";
        revision: 0;
    }>, typeof ClusterBehavior>, never> & {
        controlSequenceOfOperation$Changing: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.ControlSequenceOfOperation, any>>;
        localTemperature$Changing: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
        systemMode$Changing: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.SystemMode, any>>;
    } & {
        acCapacity$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
        acCapacityFormat$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<BtUh, any>>;
        acCoilTemperature$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        acCompressorType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcCompressorType, any>>;
        acErrorCode$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            coilSensorFail: BitFlag;
            compressorFail: BitFlag;
            fanFail: BitFlag;
            outdoorSensorFail: BitFlag;
            roomSensorFail: BitFlag;
        }>, any>>;
        acLouverPosition$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcLouverPosition, any>>;
        acRefrigerantType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>>;
        acType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcType, any>>;
        emergencyHeatDelta$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
        outdoorTemperature$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        remoteSensing$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            localTemperature: BitFlag;
            occupancy: BitFlag;
            outdoorTemperature: BitFlag;
        }>, any>>;
        setpointChangeAmount$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        setpointChangeSource$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<Thermostat.SetpointChangeSource, any>>;
        setpointChangeSourceTimestamp$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<number, any>>;
        temperatureSetpointHold$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>>;
        temperatureSetpointHoldDuration$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<null | number, any>>;
        thermostatProgrammingOperationMode$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            autoRecovery: BitFlag;
            economy: BitFlag;
            scheduleActive: BitFlag;
        }>, any>>;
        thermostatRunningState$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
            cool: BitFlag;
            coolStage2: BitFlag;
            fan: BitFlag;
            fanStage2: BitFlag;
            fanStage3: BitFlag;
            heat: BitFlag;
            heatStage2: BitFlag;
        }>, any>>;
    } & {
        controlSequenceOfOperation$Changed: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.ControlSequenceOfOperation, any>>;
        localTemperature$Changed: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
        systemMode$Changed: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.SystemMode, any>>;
    } & {
        acCapacity$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
        acCapacityFormat$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<BtUh, any>>;
        acCoilTemperature$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        acCompressorType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcCompressorType, any>>;
        acErrorCode$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            coilSensorFail: BitFlag;
            compressorFail: BitFlag;
            fanFail: BitFlag;
            outdoorSensorFail: BitFlag;
            roomSensorFail: BitFlag;
        }>, any>>;
        acLouverPosition$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcLouverPosition, any>>;
        acRefrigerantType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>>;
        acType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcType, any>>;
        emergencyHeatDelta$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
        outdoorTemperature$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        remoteSensing$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            localTemperature: BitFlag;
            occupancy: BitFlag;
            outdoorTemperature: BitFlag;
        }>, any>>;
        setpointChangeAmount$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
        setpointChangeSource$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<Thermostat.SetpointChangeSource, any>>;
        setpointChangeSourceTimestamp$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<number, any>>;
        temperatureSetpointHold$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>>;
        temperatureSetpointHoldDuration$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<null | number, any>>;
        thermostatProgrammingOperationMode$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
            autoRecovery: BitFlag;
            economy: BitFlag;
            scheduleActive: BitFlag;
        }>, any>>;
        thermostatRunningState$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
            cool: BitFlag;
            coolStage2: BitFlag;
            fan: BitFlag;
            fanStage2: BitFlag;
            fanStage3: BitFlag;
            heat: BitFlag;
            heatStage2: BitFlag;
        }>, any>>;
    } & {} & {};
    features: TypeFromBitSchema<{}> & TypeFromBitSchema<{
        autoMode: BitFlag;
        cooling: BitFlag;
        heating: BitFlag;
        localTemperatureNotExposed: BitFlag;
        occupancy: BitFlag;
        scheduleConfiguration: BitFlag;
        setback: BitFlag;
    }>;
    session: SecureSession;
    state: Omit<ClusterState.Type<Of<{
        attributes: {};
        commands: {};
        events: {};
        id: 0;
        name: "Unknown";
        revision: 0;
    }>, typeof ClusterBehavior>, never> & {
        controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation;
        localTemperature: null | number;
        systemMode: Thermostat.SystemMode;
    } & {
        acCapacity?: number;
        acCapacityFormat?: BtUh;
        acCoilTemperature?: null | number;
        acCompressorType?: Thermostat.AcCompressorType;
        acErrorCode?: TypeFromPartialBitSchema<{
            coilSensorFail: BitFlag;
            compressorFail: BitFlag;
            fanFail: BitFlag;
            outdoorSensorFail: BitFlag;
            roomSensorFail: BitFlag;
        }>;
        acLouverPosition?: Thermostat.AcLouverPosition;
        acRefrigerantType?: Thermostat.AcRefrigerantType;
        acType?: Thermostat.AcType;
        emergencyHeatDelta?: number;
        outdoorTemperature?: null | number;
        remoteSensing?: TypeFromPartialBitSchema<{
            localTemperature: BitFlag;
            occupancy: BitFlag;
            outdoorTemperature: BitFlag;
        }>;
        setpointChangeAmount?: null | number;
        setpointChangeSource?: Thermostat.SetpointChangeSource;
        setpointChangeSourceTimestamp?: number;
        temperatureSetpointHold?: Thermostat.TemperatureSetpointHold;
        temperatureSetpointHoldDuration?: null | number;
        thermostatProgrammingOperationMode?: TypeFromPartialBitSchema<{
            autoRecovery: BitFlag;
            economy: BitFlag;
            scheduleActive: BitFlag;
        }>;
        thermostatRunningState?: TypeFromPartialBitSchema<{
            cool: BitFlag;
            coolStage2: BitFlag;
            fan: BitFlag;
            fanStage2: BitFlag;
            fanStage3: BitFlag;
            heat: BitFlag;
            heatStage2: BitFlag;
        }>;
    } & {} & {};
    [asyncDispose](): MaybePromise;
    asAdmin(fn: (() => void)): void;
    assertAttributeEnabled<This, K>(this: This, attributeName: K): void;
    callback<A, R>(reactor: Reactor<A, R>, options?: Reactor.Options): ((...args: A) => undefined | R);
    initialize(_options?: {}): MaybePromise;
    reactTo<O>(observable: O, reactor: Reactor<Parameters<O["emit"]>, ReturnType<O["emit"]>>, options?: Reactor.Options): void;
    requireAttributeEnabled<This, K>(this: This, attributeName: K): Exclude<This["state"][K], undefined>;
    setpointRaiseLower(request: Thermostat.SetpointRaiseLowerRequest): MaybePromise;
    toString(): string;
    State: any;
}

Hierarchy (view full)

Properties

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

The implemented cluster.

context: ActionContext
endpoint: Endpoint<Empty>
events: EventEmitter & Omit<ClusterEvents<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior>, never> & {
    controlSequenceOfOperation$Changing: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.ControlSequenceOfOperation, any>>;
    localTemperature$Changing: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
    systemMode$Changing: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.SystemMode, any>>;
} & {
    acCapacity$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
    acCapacityFormat$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<BtUh, any>>;
    acCoilTemperature$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    acCompressorType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcCompressorType, any>>;
    acErrorCode$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        coilSensorFail: BitFlag;
        compressorFail: BitFlag;
        fanFail: BitFlag;
        outdoorSensorFail: BitFlag;
        roomSensorFail: BitFlag;
    }>, any>>;
    acLouverPosition$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcLouverPosition, any>>;
    acRefrigerantType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>>;
    acType$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcType, any>>;
    emergencyHeatDelta$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
    outdoorTemperature$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    remoteSensing$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        localTemperature: BitFlag;
        occupancy: BitFlag;
        outdoorTemperature: BitFlag;
    }>, any>>;
    setpointChangeAmount$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    setpointChangeSource$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<Thermostat.SetpointChangeSource, any>>;
    setpointChangeSourceTimestamp$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<number, any>>;
    temperatureSetpointHold$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>>;
    temperatureSetpointHoldDuration$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<null | number, any>>;
    thermostatProgrammingOperationMode$Changing: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        autoRecovery: BitFlag;
        economy: BitFlag;
        scheduleActive: BitFlag;
    }>, any>>;
    thermostatRunningState$Changing: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
        cool: BitFlag;
        coolStage2: BitFlag;
        fan: BitFlag;
        fanStage2: BitFlag;
        fanStage3: BitFlag;
        heat: BitFlag;
        heatStage2: BitFlag;
    }>, any>>;
} & {
    controlSequenceOfOperation$Changed: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.ControlSequenceOfOperation, any>>;
    localTemperature$Changed: ClusterEvents.AttributeObservable<Attribute<null | number, any>>;
    systemMode$Changed: ClusterEvents.AttributeObservable<WritableAttribute<Thermostat.SystemMode, any>>;
} & {
    acCapacity$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
    acCapacityFormat$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<BtUh, any>>;
    acCoilTemperature$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    acCompressorType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcCompressorType, any>>;
    acErrorCode$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        coilSensorFail: BitFlag;
        compressorFail: BitFlag;
        fanFail: BitFlag;
        outdoorSensorFail: BitFlag;
        roomSensorFail: BitFlag;
    }>, any>>;
    acLouverPosition$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcLouverPosition, any>>;
    acRefrigerantType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcRefrigerantType, any>>;
    acType$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.AcType, any>>;
    emergencyHeatDelta$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<number, any>>;
    outdoorTemperature$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    remoteSensing$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        localTemperature: BitFlag;
        occupancy: BitFlag;
        outdoorTemperature: BitFlag;
    }>, any>>;
    setpointChangeAmount$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<null | number, any>>;
    setpointChangeSource$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<Thermostat.SetpointChangeSource, any>>;
    setpointChangeSourceTimestamp$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<number, any>>;
    temperatureSetpointHold$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<Thermostat.TemperatureSetpointHold, any>>;
    temperatureSetpointHoldDuration$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<null | number, any>>;
    thermostatProgrammingOperationMode$Changed: undefined | ClusterEvents.AttributeObservable<OptionalWritableAttribute<TypeFromPartialBitSchema<{
        autoRecovery: BitFlag;
        economy: BitFlag;
        scheduleActive: BitFlag;
    }>, any>>;
    thermostatRunningState$Changed: undefined | ClusterEvents.AttributeObservable<OptionalAttribute<TypeFromPartialBitSchema<{
        cool: BitFlag;
        coolStage2: BitFlag;
        fan: BitFlag;
        fanStage2: BitFlag;
        fanStage3: BitFlag;
        heat: BitFlag;
        heatStage2: BitFlag;
    }>, any>>;
} & {} & {}

Access the behavior's events.

features: TypeFromBitSchema<{}> & TypeFromBitSchema<{
    autoMode: BitFlag;
    cooling: BitFlag;
    heating: BitFlag;
    localTemperatureNotExposed: BitFlag;
    occupancy: BitFlag;
    scheduleConfiguration: BitFlag;
    setback: BitFlag;
}>

Supported features as a flag object.

session: SecureSession
state: Omit<ClusterState.Type<Of<{
    attributes: {};
    commands: {};
    events: {};
    id: 0;
    name: "Unknown";
    revision: 0;
}>, typeof ClusterBehavior>, never> & {
    controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation;
    localTemperature: null | number;
    systemMode: Thermostat.SystemMode;
} & {
    acCapacity?: number;
    acCapacityFormat?: BtUh;
    acCoilTemperature?: null | number;
    acCompressorType?: Thermostat.AcCompressorType;
    acErrorCode?: TypeFromPartialBitSchema<{
        coilSensorFail: BitFlag;
        compressorFail: BitFlag;
        fanFail: BitFlag;
        outdoorSensorFail: BitFlag;
        roomSensorFail: BitFlag;
    }>;
    acLouverPosition?: Thermostat.AcLouverPosition;
    acRefrigerantType?: Thermostat.AcRefrigerantType;
    acType?: Thermostat.AcType;
    emergencyHeatDelta?: number;
    outdoorTemperature?: null | number;
    remoteSensing?: TypeFromPartialBitSchema<{
        localTemperature: BitFlag;
        occupancy: BitFlag;
        outdoorTemperature: BitFlag;
    }>;
    setpointChangeAmount?: null | number;
    setpointChangeSource?: Thermostat.SetpointChangeSource;
    setpointChangeSourceTimestamp?: number;
    temperatureSetpointHold?: Thermostat.TemperatureSetpointHold;
    temperatureSetpointHoldDuration?: null | number;
    thermostatProgrammingOperationMode?: TypeFromPartialBitSchema<{
        autoRecovery: BitFlag;
        economy: BitFlag;
        scheduleActive: BitFlag;
    }>;
    thermostatRunningState?: TypeFromPartialBitSchema<{
        cool: BitFlag;
        coolStage2: BitFlag;
        fan: BitFlag;
        fanStage2: BitFlag;
        fanStage3: BitFlag;
        heat: BitFlag;
        heatStage2: BitFlag;
    }>;
} & {} & {}

Access the behavior's state.

Type declaration

  • ReadonlycontrolSequenceOfOperation: Thermostat.ControlSequenceOfOperation

    Indicates the overall operating environment of the thermostat, and thus the possible system modes that the thermostat can operate in.

    MatterSpecification.v13.Cluster § 4.3.9.24

  • ReadonlylocalTemperature: null | number

    Indicates the current Calculated Local Temperature, when available.

    • If the LTNE feature is not supported:

    ◦ If the LocalTemperatureCalibration is invalid or currently unavailable, the attribute shall report
      null.
    
    ◦ If the LocalTemperatureCalibration is valid, the attribute shall report that value.
    

    • Otherwise, if the LTNE feature is supported, there is no feedback externally available for the LocalTemperatureCalibration. In that case, the LocalTemperature attribute shall always report null.

    MatterSpecification.v13.Cluster § 4.3.9.3

  • ReadonlysystemMode: Thermostat.SystemMode

    Indicates the current operating mode of the thermostat. Its value shall be limited by the ControlSequenceOfOperation attribute.

    MatterSpecification.v13.Cluster § 4.3.9.25

Type declaration

  • Optional ReadonlyacCapacity?: number

    Indicates capacity of Mini Split AC in terms of the format defined by the ACCapacityFormat attribute

    MatterSpecification.v13.Cluster § 4.3.9.46

  • Optional ReadonlyacCapacityFormat?: BtUh

    Indicates the format for the ACCapacity attribute.

    MatterSpecification.v13.Cluster § 4.3.9.52

  • Optional ReadonlyacCoilTemperature?: null | number

    Indicates the temperature of the AC coil, as measured locally or remotely (over the network).

    MatterSpecification.v13.Cluster § 4.3.9.51

  • Optional ReadonlyacCompressorType?: Thermostat.AcCompressorType

    Indicates the type of compressor used within the Mini Split AC.

    MatterSpecification.v13.Cluster § 4.3.9.48

  • Optional ReadonlyacErrorCode?: TypeFromPartialBitSchema<{
        coilSensorFail: BitFlag;
        compressorFail: BitFlag;
        fanFail: BitFlag;
        outdoorSensorFail: BitFlag;
        roomSensorFail: BitFlag;
    }>

    Indicates the type of errors encountered within the Mini Split AC.

    MatterSpecification.v13.Cluster § 4.3.9.49

  • Optional ReadonlyacLouverPosition?: Thermostat.AcLouverPosition

    Indicates the position of Louver on the AC.

    MatterSpecification.v13.Cluster § 4.3.9.50

  • Optional ReadonlyacRefrigerantType?: Thermostat.AcRefrigerantType

    Indicates type of refrigerant used within the Mini Split AC.

    MatterSpecification.v13.Cluster § 4.3.9.47

  • Optional ReadonlyacType?: Thermostat.AcType

    Indicates the type of Mini Split ACTypeEnum of Mini Split AC is defined depending on how Cooling and Heating condition is achieved by Mini Split AC.

    MatterSpecification.v13.Cluster § 4.3.9.45

  • Optional ReadonlyemergencyHeatDelta?: number

    Indicates the delta between the Calculated Local Temperature and the OccupiedHeatingSetpoint or UnoccupiedHeatingSetpoint attributes at which the Thermostat server will operate in emergency heat mode.

    If the difference between the Calculated Local Temperature and OccupiedCoolingSetpoint or UnoccupiedCoolingSetpoint is greater than or equal to the EmergencyHeatDelta and the Thermostat server’s SystemMode attribute is in a heating-related mode, then the Thermostat server shall immediately switch to the SystemMode attribute value that provides the highest stage of heating (e.g., emergency heat) and continue operating in that running state until the OccupiedHeatingSetpoint value is reached. For example:

    • Calculated Local Temperature = 10.0°C

    • OccupiedHeatingSetpoint = 16.0°C

    • EmergencyHeatDelta = 2.0°C

    ⇒ OccupiedHeatingSetpoint - Calculated Local Temperature ≥? EmergencyHeatDelta

    ⇒ 16°C - 10°C ≥? 2°C

    ⇒ TRUE >>> Thermostat server changes its SystemMode to operate in 2nd stage or emergency heat mode

    The purpose of this attribute is to provide Thermostat clients the ability to configure rapid heating when a setpoint is of a specified amount greater than the measured temperature. This allows the heated space to be quickly heated to the desired level set by the user.

    MatterSpecification.v13.Cluster § 4.3.9.44

  • Optional ReadonlyoutdoorTemperature?: null | number

    Indicates the outdoor temperature, as measured locally or remotely (over the network).

    MatterSpecification.v13.Cluster § 4.3.9.4

  • Optional ReadonlyremoteSensing?: TypeFromPartialBitSchema<{
        localTemperature: BitFlag;
        occupancy: BitFlag;
        outdoorTemperature: BitFlag;
    }>

    Indicates when the local temperature, outdoor temperature and occupancy are being sensed by remote networked sensors, rather than internal sensors.

    If the LTNE feature is present in the server, the LocalTemperature RemoteSensing bit value shall always report a value of 0.

    If the LocalTemperature RemoteSensing bit is written with a value of 1 when the LTNE feature is present, the write shall fail and the server shall report a CONSTRAINT_ERROR.

    MatterSpecification.v13.Cluster § 4.3.9.23

  • Optional ReadonlysetpointChangeAmount?: null | number

    Indicates the delta between the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint and the previous active setpoint. This attribute is meant to accompany the SetpointChangeSource attribute; devices implementing SetpointChangeAmount SHOULD also implement SetpointChangeSource.

    The null value indicates that the previous setpoint was unknown.

    MatterSpecification.v13.Cluster § 4.3.9.36

  • Optional ReadonlysetpointChangeSource?: Thermostat.SetpointChangeSource

    Indicates the source of the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint (i.e., who or what determined the current setpoint).

    This attribute enables service providers to determine whether changes to setpoints were initiated due to occupant comfort, scheduled programming or some other source (e.g., electric utility or other service provider). Because automation services may initiate frequent setpoint changes, this attribute clearly differentiates the source of setpoint changes made at the thermostat.

    MatterSpecification.v13.Cluster § 4.3.9.35

  • Optional ReadonlysetpointChangeSourceTimestamp?: number

    Indicates the time in UTC at which the SetpointChangeAmount attribute change was recorded.

    MatterSpecification.v13.Cluster § 4.3.9.37

  • Optional ReadonlytemperatureSetpointHold?: Thermostat.TemperatureSetpointHold

    Indicates the temperature hold status on the thermostat. If hold status is on, the thermostat SHOULD maintain the temperature setpoint for the current mode until a system mode change. If hold status is off, the thermostat SHOULD follow the setpoint transitions specified by its internal scheduling program. If the thermostat supports setpoint hold for a specific duration, it SHOULD also implement the TemperatureSetpointHoldDuration attribute.

    MatterSpecification.v13.Cluster § 4.3.9.31

  • Optional ReadonlytemperatureSetpointHoldDuration?: null | number

    Indicates the period in minutes for which a setpoint hold is active. Thermostats that support hold for a specified duration SHOULD implement this attribute. The null value indicates the field is unused. All other values are reserved.

    MatterSpecification.v13.Cluster § 4.3.9.32

  • Optional ReadonlythermostatProgrammingOperationMode?: TypeFromPartialBitSchema<{
        autoRecovery: BitFlag;
        economy: BitFlag;
        scheduleActive: BitFlag;
    }>

    Indicates the operational state of the thermostat’s programming. The thermostat shall modify its programming operation when this attribute is modified by a client and update this attribute when its programming operation is modified locally by a user. The thermostat may support more than one active ProgrammingOperationModeBitmap. For example, the thermostat may operate simultaneously in Schedule Programming Mode and Recovery Mode.

    Thermostats which contain a schedule may use this attribute to control how that schedule is used, even if they do not support the ScheduleConfiguration feature.

    When ScheduleActive is not set, the setpoint is altered only by manual up/down changes at the thermostat or remotely, not by internal schedule programming.

    NOTE

    Modifying the ScheduleActive bit does not clear or delete previous weekly schedule programming configurations.

    MatterSpecification.v13.Cluster § 4.3.9.33

  • Optional ReadonlythermostatRunningState?: TypeFromPartialBitSchema<{
        cool: BitFlag;
        coolStage2: BitFlag;
        fan: BitFlag;
        fanStage2: BitFlag;
        fanStage3: BitFlag;
        heat: BitFlag;
        heatStage2: BitFlag;
    }>

    Indicates the current relay state of the heat, cool, and fan relays. Unimplemented outputs shall be treated as if they were Off.

    MatterSpecification.v13.Cluster § 4.3.9.34

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

    • Upon receipt, the attributes for the indicated setpoint(s) shall have the amount specified in the Amount field added to them. If the resulting value is outside the limits imposed by MinCoolSetpointLimit, MaxCoolSetpointLimit, MinHeatSetpointLimit and MaxHeatSetpointLimit, the value is clamped to those limits. This is not considered an error condition.

      Returns MaybePromise

      MatterSpecification.v13.Cluster § 4.3.10.1