Coverage for src/bluetooth_sig/gatt/characteristics/humidity.py: 100%
12 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-30 00:10 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-30 00:10 +0000
1"""Humidity characteristic implementation."""
3from __future__ import annotations
5from ...types.gatt_enums import ValueType
6from ...types.units import PercentageUnit
7from ..constants import PERCENTAGE_MAX
8from .base import BaseCharacteristic
9from .templates import ScaledUint16Template
12class HumidityCharacteristic(BaseCharacteristic):
13 """Humidity characteristic (0x2A6F).
15 org.bluetooth.characteristic.humidity
17 Humidity measurement characteristic.
18 """
20 _template = ScaledUint16Template.from_letter_method(M=1, d=-2, b=0)
22 # Override YAML int type since decode_value returns float
23 _manual_value_type: ValueType | str | None = ValueType.FLOAT
24 _manual_unit: str | None = PercentageUnit.PERCENT.value # Override template's "units" default
26 # Template configuration
27 resolution: float = 0.01 # 0.01% resolution
28 max_value: int | float | None = PERCENTAGE_MAX # Humidity max 100%