PressureMeasurement Cluster

Cluster ID: 0x0403  |  Endpoint: Typically on Endpoint 1+ (application endpoint)

PressureMeasurement reports the pressure value measured by an atmospheric/barometric pressure sensor. This Cluster is read-only — it has no Commands. The device acts as a Server, passively reporting data, while the App (Client) simply reads or subscribes. Commonly found on weather stations, temperature/humidity/barometer combos, and HVAC systems.

The Unit is kPa, Not hPa!

The unit of MeasuredValue is kPa (kilopascal), not the hPa (hectopascal) commonly used in meteorology. Standard atmospheric pressure ≈ 101.325 kPa = 1013.25 hPa, so the device returns values around 101. To display in hPa, multiply by 10: 101 kPa × 10 = 1010 hPa.

Meaning of null Values

MeasuredValue, MinMeasuredValue, and MaxMeasuredValue are all Nullable. A null return means the sensor data is invalid or a measurement has not yet completed. The App should display "--" rather than 0.

Feature Map

PressureMeasurement defines one optional Feature for providing higher-precision pressure data.

Bit Name Code Description
0 Extended EXT Extended precision — enables high-precision Attributes such as ScaledValue
What Is the EXT Feature For?

The base Attribute MeasuredValue is an int16 type with a unit of kPa, providing only 1 kPa precision. This is too coarse for meteorological applications — weather-related pressure fluctuations are typically only a few hPa (fractions of a kPa). With EXT enabled, the device can provide pressure values at arbitrary precision through ScaledValue + Scale (exponent).

Base Attributes

The following 4 Attributes are supported by all PressureMeasurement devices. Click an Attribute ID to jump to its detailed description.

ID Name Type Access Description
0x00 MeasuredValue int16 / null Read-only Current pressure (unit: kPa), Nullable
0x01 MinMeasuredValue int16 / null Read-only Minimum measurable pressure, Nullable
0x02 MaxMeasuredValue int16 / null Read-only Maximum measurable pressure, Nullable
0x03 Tolerance uint16 Read-only Measurement tolerance (unit: kPa)

MeasuredValue (Current Measured Pressure)

The most recently measured pressure from the sensor, in units of kPa. This is the most important Attribute of the entire Cluster.

  • Type: int16 (signed), Nullable
  • Range: -32767 to 32767 kPa
  • Conversion: hPa = MeasuredValue × 10
Common Values Quick Reference

101 = 101 kPa ≈ standard atmospheric pressure  |  100 = 1000 hPa (low pressure)  |  103 = 1030 hPa (high pressure)  |  70 = 700 hPa (approx. 3000m altitude)

MinMeasuredValue (Minimum Measurable Pressure)

The lowest pressure the sensor can measure, in units of kPa. A value of null indicates the device has not defined a lower limit.

MaxMeasuredValue (Maximum Measurable Pressure)

The highest pressure the sensor can measure, in units of kPa. A value of null indicates the device has not defined an upper limit.

Tolerance (Measurement Tolerance)

The measurement tolerance of the sensor, in units of kPa. For example, a value of 1 means an accuracy of ±1 kPa (±10 hPa). This is an optional Attribute and not all devices report it.

Extended Attributes (EXT Feature)

The following Attributes are only present when the device supports the EXT Feature, providing higher precision than the base kPa integer values.

ID Name Type Access Description
0x10 ScaledValue int16 / null Read-only High-precision pressure value, requires Scale for conversion
0x11 MinScaledValue int16 / null Read-only Minimum value of ScaledValue, Nullable
0x12 MaxScaledValue int16 / null Read-only Maximum value of ScaledValue, Nullable
0x13 ScaledTolerance uint16 Read-only Measurement tolerance for ScaledValue
0x14 Scale int8 Read-only Exponent factor: actual value = ScaledValue × 10Scale kPa

ScaledValue (High-Precision Pressure Value)

The high-precision pressure measurement, which requires the Scale Attribute for conversion:

Actual pressure = ScaledValue × 10Scale kPa

Conversion Example

ScaledValue = 10132, Scale = -1
Actual pressure = 10132 × 10-1 = 1013.2 hPa = 101.32 kPa

ScaledValue = 101325... impossible, int16 max is 32767. So the choice of Scale determines the trade-off between precision and range — Scale = -1 gives 0.1 kPa (1 hPa) precision, Scale = -2 gives 0.01 kPa precision but reduces the range to ±327.67 kPa.

MinScaledValue / MaxScaledValue

The valid range bounds for ScaledValue, corresponding to the Min/Max of the base Attributes. Both are Nullable; null indicates undefined. Conversion is the same as ScaledValue (multiply by 10Scale).

ScaledTolerance (Extended Tolerance)

The measurement tolerance for ScaledValue, converted the same way. For example, ScaledTolerance = 10 with Scale = -1 means an accuracy of ±1 hPa.

Scale (Exponent Factor)

An int8 exponent value that determines the actual precision of the ScaledValue family of Attributes. Common values:

  • 0 — same as the base Attributes, unit kPa, no additional precision
  • -1 — precision 0.1 kPa (= 1 hPa), most commonly used
  • -2 — precision 0.01 kPa (= 0.1 hPa), for high-precision weather stations

Commands

PressureMeasurement is a read-only Server Cluster with no Commands. The device is responsible for collecting pressure data and updating Attributes; the App only needs to Read or Subscribe to obtain data.

Example Data

Reading the PressureMeasurement base Attributes from a weather station device:

{
  // --- PressureMeasurement Cluster (Endpoint 1) ---
  "0x0": 101,         // MeasuredValue = 101 → actual 101 kPa (≈ standard atmospheric pressure)
  "0x1": 30,          // MinMeasuredValue = 30 → 30 kPa
  "0x2": 110,         // MaxMeasuredValue = 110 → 110 kPa
  "0x3": 1            // Tolerance = 1 → ±1 kPa
}

Devices supporting the EXT Feature also return extended Attributes:

{
  // --- Extended precision Attributes (requires EXT Feature) ---
  "0x10": 10132,      // ScaledValue = 10132, Scale = -1 → 10132 × 10⁻¹ = 1013.2 kPa?
                       // No, Scale is for subdivision: 10132 × 10⁻¹ = 1013.2 hPa = 101.32 kPa
  "0x11": 3000,       // MinScaledValue = 3000
  "0x12": 11000,      // MaxScaledValue = 11000
  "0x13": 10,         // ScaledTolerance = 10
  "0x14": -1          // Scale = -1 (exponent)
  // Actual value = ScaledValue × 10^Scale kPa = 10132 × 0.1 = 1013.2 hPa
}

Subscribe to pressure changes — track pressure trends in real time:

{
  // Subscribe to pressure changes (report every 60 seconds to 10 minutes)
  "subscribeRequests": [{
    "attributePath": {
      "endpointId": 1,
      "clusterId": "0x0403",
      "attributeId": "0x00"        // MeasuredValue
    },
    "minIntervalFloor": 60,        // Report at least every 60 seconds
    "maxIntervalCeiling": 600      // Report at most every 10 minutes
  }]
}
Unit Conversion Code Reference

Key logic for processing device return values:

{`// Base Attribute: MeasuredValue in kPa
val rawKpa: Int? = 101               // Nullable
val hPa = rawKpa?.let { it * 10.0 }  // → 1010.0 hPa
val display = hPa?.let { "%.0f hPa".format(it) } ?: "--"

// EXT extended Attributes: ScaledValue + Scale
val scaled: Int? = 10132
val scale: Int = -1
val actualKpa = scaled?.let { it * Math.pow(10.0, scale.toDouble()) }  // → 1013.2 hPa
val displayExt = actualKpa?.let { "%.1f hPa".format(it) } ?: "--"`}

Common Scenarios

Scenario 1: Weather Station — Pressure Trend Monitoring
  1. Check if the device's FeatureMap includes EXT (bit 0); if so, prefer ScaledValue for high-precision data
  2. Subscribe to pressure changes and record historical data to plot trend graphs
  3. A sustained pressure drop (> 3 hPa in 3 hours) typically indicates worsening weather; push a notification
  4. Display in hPa (meteorological convention); for base Attributes, simply use MeasuredValue × 10
Scenario 2: Altitude Estimation
  1. Use the relationship between pressure and altitude for a rough estimation (barometric altimetry)
  2. International Standard Atmosphere approximation: Altitude(m) ≈ 44330 × (1 - (P/P₀)^0.1903), P₀ = 101.325 kPa
  3. Accuracy is significantly affected by temperature, humidity, and weather systems — use as a reference only
  4. Use the EXT extended Attributes for more accurate pressure values to improve altitude estimation
Scenario 3: HVAC Pressure Monitoring
  1. Cleanrooms, laboratories, and similar environments require monitoring of indoor/outdoor pressure differentials
  2. Subscribe to MeasuredValue and set positive/negative pressure thresholds
  3. Trigger an alarm or automatically adjust the fresh air system when the pressure differential is abnormal
  4. Combine with TemperatureMeasurement (0x0402) and RelativeHumidityMeasurement (0x0405) for comprehensive environmental monitoring