A Thermostat device is capable of having either built-in or separate sensors for temperature, humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling unit (for example, an indoor air handler) or is capable of including a mechanism to control a heating or cooling unit directly.

ThermostatDevice requires Thermostat cluster but Thermostat is not added by default because you must select the features your device supports. You can add manually using ThermostatDevice.with().

MatterSpecification.v13.Device § 9.1

interface ThermostatDevice {
    behaviors: {
        identify: typeof IdentifyServer;
    };
    defaults: StateOf<{
        identify: typeof IdentifyServer;
    }>;
    deviceClass: DeviceClassification;
    deviceRevision: number;
    deviceType: DeviceTypeId;
    name: "Thermostat";
    requirements: typeof ThermostatRequirements;
    set(defaults: InputStateOf<{
        identify: typeof IdentifyServer;
    }>): With<For<{
        behaviors: {
            identify: typeof IdentifyServer;
        };
        deviceRevision: 3;
        deviceType: 769;
        name: "Thermostat";
        requirements: typeof ThermostatRequirements;
    }>, {
        identify: typeof IdentifyServer;
    }>;
    with<const BL>(...behaviors: BL): With<For<{
        behaviors: {
            identify: typeof IdentifyServer;
        };
        deviceRevision: 3;
        deviceType: 769;
        name: "Thermostat";
        requirements: typeof ThermostatRequirements;
    }>, With<{
        identify: typeof IdentifyServer;
    }, BL>>;
}

Hierarchy (view full)

Properties

behaviors: {
    identify: typeof IdentifyServer;
}
defaults: StateOf<{
    identify: typeof IdentifyServer;
}>

Access default state values.

deviceRevision: number
deviceType: DeviceTypeId
name
requirements: typeof ThermostatRequirements

Methods

  • Define an endpoint like this one with different defaults. Only updates values present in the input object.

    Parameters

    • defaults: InputStateOf<{
          identify: typeof IdentifyServer;
      }>

    Returns With<For<{
        behaviors: {
            identify: typeof IdentifyServer;
        };
        deviceRevision: 3;
        deviceType: 769;
        name: "Thermostat";
        requirements: typeof ThermostatRequirements;
    }>, {
        identify: typeof IdentifyServer;
    }>

  • Define an endpoint like this one with additional and/or replacement server behaviors.

    Type Parameters

    • const BL extends List

    Parameters

    • Rest...behaviors: BL

    Returns With<For<{
        behaviors: {
            identify: typeof IdentifyServer;
        };
        deviceRevision: 3;
        deviceType: 769;
        name: "Thermostat";
        requirements: typeof ThermostatRequirements;
    }>, With<{
        identify: typeof IdentifyServer;
    }, BL>>