Skip to content
AF

Temperature Measurement (0x2A1C): byte layout

GATT characteristic · org.bluetooth.characteristic.temperature_measurement · read from the Bluetooth SIG’s repository on 2026-10-17 · commit 408f4a0 (2026-10-14)

Temperature Measurement is Bluetooth GATT characteristic 0x2A1C, org.bluetooth.characteristic.temperature_measurement in the Bluetooth SIG's assigned numbers. The SIG's GATT Specification Supplement file lays its value out as 5 fields: Flags, Temperature Measurement Value (Celsius), Temperature Measurement Value (Fahrenheit), Time Stamp and Temperature Type. The first, Flags, is a boolean[8]; 4 of the others are present only when a bit of it is set as the field's text states, so after the first of those, a field's offset depends on which bits are set.

UUID
0x2A1C
Identifier
org.bluetooth.characteristic.temperature_measurement
The SIG’s description
The Temperature Measurement characteristic is used to represent data related to a temperature measurement.The structure of this characteristic is defined below.
Service the SIG’s files tie it to
None: no file in the repository lists this characteristic under a service.
Referenced by
Intermediate Temperature
Source file
gss/org.bluetooth.characteristic.temperature_measurement.yaml

Byte layout: 5 fields

In the order the SIG’s structure lists them. Type and size are as published; sizes count octets except where a struct is marked as sized in bits. The offset is printed only where every earlier field has a fixed size; where an earlier field can be absent or vary, the cell names what it depends on. “Present when” is read from the field’s own “Present if” line, shown in full in the field notes below.

OffsetFieldTypeSizePresent whenUnit
0Flagsboolean[8]1Always (fixed size)—
1Temperature Measurement Value (Celsius)medfloat320 or 4Bit 0 of Flags is 0Celsius temperature (degree Celsius)org.bluetooth.unit.thermodynamic_temperature.degree_celsius
Depends on Flags (bit 0)Temperature Measurement Value (Fahrenheit)medfloat320 or 4Bit 0 of Flags is 1thermodynamic temperature (degree Fahrenheit)org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit
Depends on Flags (bit 0)Time Stampstruct0 or 7Bit 1 of Flags is 1—
Depends on Flags (bits 0 and 1)Temperature Typeuint80 or 1Bit 2 of Flags is 1—

Field notes

Each field’s text in the SIG’s file, line by line.

Flags boolean[8] · 1
See Flags.
Temperature Measurement Value (Celsius) medfloat32 · 0 or 4
This field contains a measurement value.Unit: org.bluetooth.unit.thermodynamic_temperature.degree_celsius.Present if bit 0 of Flags field is set to 0
Temperature Measurement Value (Fahrenheit) medfloat32 · 0 or 4
This field contains a measurement value.Unit: org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit.Present if bit 0 of Flags field is set to 1
Time Stamp struct · 0 or 7
Refer to Date Time characteristic in Date Time (0x2A08).Present if bit 1 of Flags field is set to 1
Temperature Type uint8 · 0 or 1
The format of this field is the same as the format of the Temperature Type characteristic in Temperature Type (0x2A1D).Present if bit 2 of Flags field is set to 1

Flags and value tables

The definitions the SIG’s file gives for its fields, every row as published. On a flags table the last column lists the fields whose “Present if” line names that bit.

Flags

The bits of this field are defined below.

BitDescriptionFields its condition names
0Temperature Units Flag0 = Temperature Measurement Value in units of Celsius1 = Temperature Measurement Value in units of FahrenheitTemperature Measurement Value (Celsius) when 0Temperature Measurement Value (Fahrenheit) when 1
1Time Stamp Flag0 = Time Stamp field not present1 = Time Stamp field presentTime Stamp when 1
2Temperature Type Flag0 = Temperature Type field not present1 = Temperature Type field presentTemperature Type when 1
3–7Reserved for Future Use—

Guides on this site

The metric Temperature Measurement carries, on every platform this site covers — each type quoted in its platform's own words:

No guide on this site names 0x2A1C yet. The connected-devices guides cover pairing, subscribing and testing for the device types they do name.

Questions

What is the UUID of the Temperature Measurement characteristic?
0x2A1C. The Bluetooth SIG's characteristic_uuids.yaml lists Temperature Measurement as 0x2A1C with the identifier org.bluetooth.characteristic.temperature_measurement. No file in the SIG's repository ties it to a service: the repository lists service and characteristic UUIDs separately. Intermediate Temperature refers to it in its own structure.
Which Temperature Measurement fields are optional?
4 of its 5 fields have a published size that can be zero: Temperature Measurement Value (Celsius) (0 or 4; Present if bit 0 of Flags field is set to 0); Temperature Measurement Value (Fahrenheit) (0 or 4; Present if bit 0 of Flags field is set to 1); Time Stamp (0 or 7; Present if bit 1 of Flags field is set to 1); Temperature Type (0 or 1; Present if bit 2 of Flags field is set to 1). Flags (1) has a fixed size.
What units does Temperature Measurement use?
The SIG's text names a unit for 2 of the 5 fields: Temperature Measurement Value (Celsius): Celsius temperature (degree Celsius) (org.bluetooth.unit.thermodynamic_temperature.degree_celsius); Temperature Measurement Value (Fahrenheit): thermodynamic temperature (degree Fahrenheit) (org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit).
What do the bits of the Temperature Measurement Flags field mean?
The SIG defines them as: bit 0, Temperature Units Flag; 0 = Temperature Measurement Value in units of Celsius; 1 = Temperature Measurement Value in units of Fahrenheit (Temperature Measurement Value (Celsius) when 0, Temperature Measurement Value (Fahrenheit) when 1); bit 1, Time Stamp Flag; 0 = Time Stamp field not present; 1 = Time Stamp field present (Time Stamp when 1); bit 2, Temperature Type Flag; 0 = Temperature Type field not present; 1 = Temperature Type field present (Temperature Type when 1). The remaining bits are reserved for future use.

Source

Read on 2026-10-17 from gss/org.bluetooth.characteristic.temperature_measurement.yaml and assigned_numbers/uuids/characteristic_uuids.yaml in the Bluetooth SIG’s public repository (branch main, commit 408f4a0, committed 2026-10-14), by scripts/fetch-bluetooth-gatt.mjs. The file’s notice says it is proprietary to Bluetooth SIG, that furnishing it grants no licence, and that it is subject to change without notice; it is © Bluetooth SIG, Inc., and its text is quoted here for identification. Generated by AIFitnessAPI, which is not affiliated with Bluetooth SIG; the SIG’s file remains the authority. The full notice and the conventions used on these pages are on the reference hub.

← All Bluetooth GATT characteristics