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

1"""Humidity characteristic implementation.""" 

2 

3from __future__ import annotations 

4 

5from ...types.gatt_enums import ValueType 

6from ...types.units import PercentageUnit 

7from ..constants import PERCENTAGE_MAX 

8from .base import BaseCharacteristic 

9from .templates import ScaledUint16Template 

10 

11 

12class HumidityCharacteristic(BaseCharacteristic): 

13 """Humidity characteristic (0x2A6F). 

14 

15 org.bluetooth.characteristic.humidity 

16 

17 Humidity measurement characteristic. 

18 """ 

19 

20 _template = ScaledUint16Template.from_letter_method(M=1, d=-2, b=0) 

21 

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 

25 

26 # Template configuration 

27 resolution: float = 0.01 # 0.01% resolution 

28 max_value: int | float | None = PERCENTAGE_MAX # Humidity max 100%