class Matter::Cluster::TemperatureMeasurementCluster

Overview

Temperature Measurement Cluster (0x0402)

Provides an interface to temperature measurement functionality, including configuration and provision of notifications of temperature measurements.

Temperature values are expressed in hundredths of degrees Celsius (0.01°C). For example, 2550 represents 25.50°C.

Specification: Matter 1.4 § 2.3

Defined in:

matter/cluster/temperature_measurement_cluster.cr

Constant Summary

ATTR_MAX_MEASURED_VALUE = 2_u32
ATTR_MEASURED_VALUE = 0_u32

Attributes

ATTR_MIN_MEASURED_VALUE = 1_u32
ATTR_TOLERANCE = 3_u32
CLUSTER_ID = 1026_u32
MAX_TEMPERATURE = 32767_i16
MIN_TEMPERATURE = -27315_i16

Temperature limits (in 0.01°C)

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Matter::Cluster::Base

attributes : Array(AttributeMetadata) attributes, cluster_id : DataType::ClusterId cluster_id, cluster_id=(cluster_id : DataType::ClusterId) cluster_id=, commands : Array(CommandMetadata) commands, data_version : UInt32 data_version, data_version=(data_version : UInt32) data_version=, endpoint_id : DataType::EndpointNumber endpoint_id, endpoint_id=(endpoint_id : DataType::EndpointNumber) endpoint_id=, events : Array(EventMetadata) events, get_attribute_metadata(attribute_id : UInt32) : AttributeMetadata | Nil get_attribute_metadata, get_command_metadata(command_id : UInt32) : CommandMetadata | Nil get_command_metadata, invoke_command(command_id : UInt32, fields : Bytes = Bytes.new(0)) : InteractionModel::Status | Bytes invoke_command, name : String name, read_attribute(attribute_id : UInt32) : InteractionModel::Status | Bytes read_attribute, write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status write_attribute

Constructor methods inherited from class Matter::Cluster::Base

new(endpoint_id : DataType::EndpointNumber, cluster_id : DataType::ClusterId) new

Constructor Detail

def self.new(endpoint_id : DataType::EndpointNumber, measured_value : Int16 | Nil = nil, min_measured_value : Int16 = MIN_TEMPERATURE, max_measured_value : Int16 = MAX_TEMPERATURE, tolerance : UInt16 | Nil = nil) #

[View source]

Class Method Detail

def self.cluster_id #

Temperature Measurement Cluster (0x0402)

Provides an interface to temperature measurement functionality, including configuration and provision of notifications of temperature measurements.

Temperature values are expressed in hundredths of degrees Celsius (0.01°C). For example, 2550 represents 25.50°C.

Specification: Matter 1.4 § 2.3


[View source]
def self.from_celsius(value : Float64) : Int16 #

Convert from Celsius (Float) to 0.01°C (Int16)


[View source]
def self.from_fahrenheit(value : Float64) : Int16 #

Convert from Fahrenheit (Float) to 0.01°C (Int16)


[View source]
def self.to_celsius(value : Int16) : Float64 #

Convert from 0.01°C to Celsius (Float)


[View source]
def self.to_fahrenheit(value : Int16) : Float64 #

Convert from 0.01°C to Fahrenheit (Float)


[View source]

Instance Method Detail

def attributes : Array(AttributeMetadata) #
Description copied from class Matter::Cluster::Base

Get all attribute metadata


[View source]
def commands : Array(CommandMetadata) #
Description copied from class Matter::Cluster::Base

Get all command metadata


[View source]
def max_measured_value : Int16 #

Maximum measurable temperature (in 0.01°C)


[View source]
def max_measured_value=(max_measured_value : Int16) #

Maximum measurable temperature (in 0.01°C)


[View source]
def measured_value : Int16 | Nil #

Current measured temperature (in 0.01°C), or nil if unknown


[View source]
def measured_value=(measured_value : Int16 | Nil) #

Current measured temperature (in 0.01°C), or nil if unknown


[View source]
def min_measured_value : Int16 #

Minimum measurable temperature (in 0.01°C)


[View source]
def min_measured_value=(min_measured_value : Int16) #

Minimum measurable temperature (in 0.01°C)


[View source]
def name : String #
Description copied from class Matter::Cluster::Base

Get cluster name


[View source]
def on_temperature_changed(&block : Int16 | Nil, Int16 | Nil -> Nil) #

[View source]
def read_attribute(attribute_id : UInt32) : Bytes | InteractionModel::Status #
Description copied from class Matter::Cluster::Base

Read an attribute value


[View source]
def tolerance : UInt16 | Nil #

Measurement tolerance (in 0.01°C), optional


[View source]
def tolerance=(tolerance : UInt16 | Nil) #

Measurement tolerance (in 0.01°C), optional


[View source]
def update_temperature(value : Int16 | Nil) #

Update the measured temperature value


[View source]