This cluster provides an interface to the setpoint temperature on devices such as washers, refrigerators, and water heaters. The setpoint temperature is the temperature to which a device using this cluster would attempt to control to. This cluster does not provide access to the actual or physical temperature associated with any device using this cluster. Access to the physical temperature associated with a device using this cluster would be provided by other clusters as part of that devices device type definition.

The values and constraints of the attributes communicated to clients SHOULD match the controls on any physical interface on a device implementing this server. For example, the value of the Step attribute SHOULD match the incremental value by which the temperature setpoint can be changed on the physical device.

Per the Matter specification you cannot use TemperatureControlCluster without enabling certain feature combinations. You must use the with factory method to obtain a working cluster.

MatterSpecification.v13.Cluster § 8.2

interface Cluster {
    id: ClusterId;
    name: string;
    with: (<const SelectionT>(...selection: SelectionT) => Of<Of<{
        commands: {
            setTemperature: Command<TypeFromFields<{
                targetTemperature: OptionalFieldType<number>;
                targetTemperatureLevel: OptionalFieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    maxTemperature: FixedAttribute<number, any>;
                    minTemperature: FixedAttribute<number, any>;
                    temperatureSetpoint: Attribute<number, any>;
                };
            };
            flags: {
                temperatureNumber: true;
            };
        }, {
            component: {
                attributes: {
                    step: FixedAttribute<number, any>;
                };
            };
            flags: {
                temperatureStep: true;
            };
        }, {
            component: {
                attributes: {
                    selectedTemperatureLevel: Attribute<number, any>;
                    supportedTemperatureLevels: Attribute<string[], any>;
                };
            };
            flags: {
                temperatureLevel: true;
            };
        }, {
            component: false;
            flags: {
                temperatureNumber: false;
                temperatureStep: true;
            };
        }, {
            component: false;
            flags: {
                temperatureLevel: true;
                temperatureNumber: true;
            };
        }, {
            component: false;
            flags: {
                temperatureLevel: false;
                temperatureNumber: false;
            };
        }];
        features: {
            temperatureLevel: BitFlag;
            temperatureNumber: BitFlag;
            temperatureStep: BitFlag;
        };
        id: 86;
        name: "TemperatureControl";
        revision: 1;
    }>, SelectionT>);
}

Hierarchy (view full)

Properties

Properties

name: string
with: (<const SelectionT>(...selection: SelectionT) => Of<Of<{
    commands: {
        setTemperature: Command<TypeFromFields<{
            targetTemperature: OptionalFieldType<number>;
            targetTemperatureLevel: OptionalFieldType<number>;
        }>, void, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                maxTemperature: FixedAttribute<number, any>;
                minTemperature: FixedAttribute<number, any>;
                temperatureSetpoint: Attribute<number, any>;
            };
        };
        flags: {
            temperatureNumber: true;
        };
    }, {
        component: {
            attributes: {
                step: FixedAttribute<number, any>;
            };
        };
        flags: {
            temperatureStep: true;
        };
    }, {
        component: {
            attributes: {
                selectedTemperatureLevel: Attribute<number, any>;
                supportedTemperatureLevels: Attribute<string[], any>;
            };
        };
        flags: {
            temperatureLevel: true;
        };
    }, {
        component: false;
        flags: {
            temperatureNumber: false;
            temperatureStep: true;
        };
    }, {
        component: false;
        flags: {
            temperatureLevel: true;
            temperatureNumber: true;
        };
    }, {
        component: false;
        flags: {
            temperatureLevel: false;
            temperatureNumber: false;
        };
    }];
    features: {
        temperatureLevel: BitFlag;
        temperatureNumber: BitFlag;
        temperatureStep: BitFlag;
    };
    id: 86;
    name: "TemperatureControl";
    revision: 1;
}>, SelectionT>)

Type declaration

    • <const SelectionT>(...selection): Of<Of<{
          commands: {
              setTemperature: Command<TypeFromFields<{
                  targetTemperature: OptionalFieldType<number>;
                  targetTemperatureLevel: OptionalFieldType<number>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  attributes: {
                      maxTemperature: FixedAttribute<number, any>;
                      minTemperature: FixedAttribute<number, any>;
                      temperatureSetpoint: Attribute<number, any>;
                  };
              };
              flags: {
                  temperatureNumber: true;
              };
          }, {
              component: {
                  attributes: {
                      step: FixedAttribute<number, any>;
                  };
              };
              flags: {
                  temperatureStep: true;
              };
          }, {
              component: {
                  attributes: {
                      selectedTemperatureLevel: Attribute<number, any>;
                      supportedTemperatureLevels: Attribute<string[], any>;
                  };
              };
              flags: {
                  temperatureLevel: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureNumber: false;
                  temperatureStep: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureLevel: true;
                  temperatureNumber: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureLevel: false;
                  temperatureNumber: false;
              };
          }];
          features: {
              temperatureLevel: BitFlag;
              temperatureNumber: BitFlag;
              temperatureStep: BitFlag;
          };
          id: 86;
          name: "TemperatureControl";
          revision: 1;
      }>, SelectionT>
    • Select features using ClusterComposer.compose.

      Type Parameters

      • const SelectionT extends FeatureSelection<Of<{
            commands: {
                setTemperature: Command<TypeFromFields<{
                    targetTemperature: OptionalFieldType<number>;
                    targetTemperatureLevel: OptionalFieldType<number>;
                }>, void, any>;
            };
            extensions: readonly [{
                component: {
                    attributes: {
                        maxTemperature: FixedAttribute<number, any>;
                        minTemperature: FixedAttribute<number, any>;
                        temperatureSetpoint: Attribute<number, any>;
                    };
                };
                flags: {
                    temperatureNumber: true;
                };
            }, {
                component: {
                    attributes: {
                        step: FixedAttribute<number, any>;
                    };
                };
                flags: {
                    temperatureStep: true;
                };
            }, {
                component: {
                    attributes: {
                        selectedTemperatureLevel: Attribute<number, any>;
                        supportedTemperatureLevels: Attribute<string[], any>;
                    };
                };
                flags: {
                    temperatureLevel: true;
                };
            }, {
                component: false;
                flags: {
                    temperatureNumber: false;
                    temperatureStep: true;
                };
            }, {
                component: false;
                flags: {
                    temperatureLevel: true;
                    temperatureNumber: true;
                };
            }, {
                component: false;
                flags: {
                    temperatureLevel: false;
                    temperatureNumber: false;
                };
            }];
            features: {
                temperatureLevel: BitFlag;
                temperatureNumber: BitFlag;
                temperatureStep: BitFlag;
            };
            id: 86;
            name: "TemperatureControl";
            revision: 1;
        }>>

      Parameters

      Returns Of<Of<{
          commands: {
              setTemperature: Command<TypeFromFields<{
                  targetTemperature: OptionalFieldType<number>;
                  targetTemperatureLevel: OptionalFieldType<number>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  attributes: {
                      maxTemperature: FixedAttribute<number, any>;
                      minTemperature: FixedAttribute<number, any>;
                      temperatureSetpoint: Attribute<number, any>;
                  };
              };
              flags: {
                  temperatureNumber: true;
              };
          }, {
              component: {
                  attributes: {
                      step: FixedAttribute<number, any>;
                  };
              };
              flags: {
                  temperatureStep: true;
              };
          }, {
              component: {
                  attributes: {
                      selectedTemperatureLevel: Attribute<number, any>;
                      supportedTemperatureLevels: Attribute<string[], any>;
                  };
              };
              flags: {
                  temperatureLevel: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureNumber: false;
                  temperatureStep: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureLevel: true;
                  temperatureNumber: true;
              };
          }, {
              component: false;
              flags: {
                  temperatureLevel: false;
                  temperatureNumber: false;
              };
          }];
          features: {
              temperatureLevel: BitFlag;
              temperatureNumber: BitFlag;
              temperatureStep: BitFlag;
          };
          id: 86;
          name: "TemperatureControl";
          revision: 1;
      }>, SelectionT>