Coverage for src/bluetooth_sig/gatt/services/environmental_sensing.py: 100%
6 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"""Environmental Sensing Service implementation."""
3from __future__ import annotations
5from typing import ClassVar
7from ..characteristics.registry import CharacteristicName
8from .base import BaseGattService
11class EnvironmentalSensingService(BaseGattService):
12 """Environmental Sensing Service implementation (0x181A).
14 Used for environmental monitoring devices including weather stations,
15 air quality sensors, and comprehensive environmental monitoring systems.
16 Supports a wide range of environmental measurements including:
17 - Traditional weather measurements (temperature, humidity, pressure)
18 - Air quality metrics (gas concentrations, particulate matter)
19 - Advanced environmental conditions (wind, elevation, trends)
21 Contains comprehensive characteristics for environmental sensing including:
22 - Temperature - Optional
23 - Humidity - Optional
24 - Pressure - Optional
25 - Dew Point - Optional
26 - Heat Index - Optional
27 - Wind Chill - Optional
28 - True Wind Speed - Optional
29 - True Wind Direction - Optional
30 - Apparent Wind Speed - Optional
31 - Apparent Wind Direction - Optional
32 - CO2 Concentration - Optional
33 - VOC Concentration - Optional
34 - Non-Methane VOC Concentration - Optional
35 - Ammonia Concentration - Optional
36 - Methane Concentration - Optional
37 - Nitrogen Dioxide Concentration - Optional
38 - Ozone Concentration - Optional
39 - PM1 Concentration - Optional
40 - PM2.5 Concentration - Optional
41 - PM10 Concentration - Optional
42 - Sulfur Dioxide Concentration - Optional
43 - Elevation - Optional
44 - Barometric Pressure Trend - Optional
45 - Pollen Concentration - Optional
46 - Rainfall - Optional
47 """
49 # All characteristics are optional in this service
50 service_characteristics: ClassVar[dict[CharacteristicName, bool]] = {
51 # Traditional environmental sensors
52 CharacteristicName.TEMPERATURE: False,
53 CharacteristicName.HUMIDITY: False,
54 CharacteristicName.PRESSURE: False,
55 CharacteristicName.DEW_POINT: False,
56 CharacteristicName.HEAT_INDEX: False,
57 CharacteristicName.WIND_CHILL: False,
58 CharacteristicName.TRUE_WIND_SPEED: False,
59 CharacteristicName.TRUE_WIND_DIRECTION: False,
60 CharacteristicName.APPARENT_WIND_SPEED: False,
61 CharacteristicName.APPARENT_WIND_DIRECTION: False,
62 # Gas sensor characteristics for air quality monitoring
63 CharacteristicName.CO2_CONCENTRATION: False,
64 CharacteristicName.VOC_CONCENTRATION: False,
65 CharacteristicName.NON_METHANE_VOC_CONCENTRATION: False,
66 CharacteristicName.AMMONIA_CONCENTRATION: False,
67 CharacteristicName.METHANE_CONCENTRATION: False,
68 CharacteristicName.NITROGEN_DIOXIDE_CONCENTRATION: False,
69 CharacteristicName.OZONE_CONCENTRATION: False,
70 CharacteristicName.PM1_CONCENTRATION: False,
71 CharacteristicName.PM25_CONCENTRATION: False,
72 CharacteristicName.PM10_CONCENTRATION: False,
73 CharacteristicName.SULFUR_DIOXIDE_CONCENTRATION: False,
74 # Environmental condition characteristics
75 CharacteristicName.ELEVATION: False,
76 CharacteristicName.BAROMETRIC_PRESSURE_TREND: False,
77 CharacteristicName.POLLEN_CONCENTRATION: False,
78 CharacteristicName.RAINFALL: False,
79 }