131 lines
3.7 KiB
Python
131 lines
3.7 KiB
Python
"""Constants for Nettigo Air Monitor integration."""
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
from typing import Final
|
|
|
|
from homeassistant.const import (
|
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
DEVICE_CLASS_HUMIDITY,
|
|
DEVICE_CLASS_PRESSURE,
|
|
DEVICE_CLASS_SIGNAL_STRENGTH,
|
|
DEVICE_CLASS_TEMPERATURE,
|
|
PERCENTAGE,
|
|
PRESSURE_HPA,
|
|
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
|
TEMP_CELSIUS,
|
|
)
|
|
|
|
from .model import SensorDescription
|
|
|
|
DEFAULT_NAME: Final = "Nettigo Air Monitor"
|
|
DEFAULT_UPDATE_INTERVAL: Final = timedelta(minutes=6)
|
|
DOMAIN: Final = "nam"
|
|
MANUFACTURER: Final = "Nettigo"
|
|
|
|
SUFFIX_P1: Final = "_p1"
|
|
SUFFIX_P2: Final = "_p2"
|
|
|
|
AIR_QUALITY_SENSORS: Final[dict[str, str]] = {"sds": "SDS011", "sps30": "SPS30"}
|
|
|
|
SENSORS: Final[dict[str, SensorDescription]] = {
|
|
"bme280_humidity": {
|
|
"label": f"{DEFAULT_NAME} BME280 Humidity",
|
|
"unit": PERCENTAGE,
|
|
"device_class": DEVICE_CLASS_HUMIDITY,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"bme280_pressure": {
|
|
"label": f"{DEFAULT_NAME} BME280 Pressure",
|
|
"unit": PRESSURE_HPA,
|
|
"device_class": DEVICE_CLASS_PRESSURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"bme280_temperature": {
|
|
"label": f"{DEFAULT_NAME} BME280 Temperature",
|
|
"unit": TEMP_CELSIUS,
|
|
"device_class": DEVICE_CLASS_TEMPERATURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"bmp280_pressure": {
|
|
"label": f"{DEFAULT_NAME} BMP280 Pressure",
|
|
"unit": PRESSURE_HPA,
|
|
"device_class": DEVICE_CLASS_PRESSURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"bmp280_temperature": {
|
|
"label": f"{DEFAULT_NAME} BMP280 Temperature",
|
|
"unit": TEMP_CELSIUS,
|
|
"device_class": DEVICE_CLASS_TEMPERATURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"heca_humidity": {
|
|
"label": f"{DEFAULT_NAME} HECA Humidity",
|
|
"unit": PERCENTAGE,
|
|
"device_class": DEVICE_CLASS_HUMIDITY,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"heca_temperature": {
|
|
"label": f"{DEFAULT_NAME} HECA Temperature",
|
|
"unit": TEMP_CELSIUS,
|
|
"device_class": DEVICE_CLASS_TEMPERATURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"sht3x_humidity": {
|
|
"label": f"{DEFAULT_NAME} SHT3X Humidity",
|
|
"unit": PERCENTAGE,
|
|
"device_class": DEVICE_CLASS_HUMIDITY,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"sht3x_temperature": {
|
|
"label": f"{DEFAULT_NAME} SHT3X Temperature",
|
|
"unit": TEMP_CELSIUS,
|
|
"device_class": DEVICE_CLASS_TEMPERATURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"sps30_p0": {
|
|
"label": f"{DEFAULT_NAME} SPS30 Particulate Matter 1.0",
|
|
"unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
"device_class": None,
|
|
"icon": "mdi:blur",
|
|
"enabled": True,
|
|
},
|
|
"sps30_p4": {
|
|
"label": f"{DEFAULT_NAME} SPS30 Particulate Matter 4.0",
|
|
"unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
|
"device_class": None,
|
|
"icon": "mdi:blur",
|
|
"enabled": True,
|
|
},
|
|
"humidity": {
|
|
"label": f"{DEFAULT_NAME} DHT22 Humidity",
|
|
"unit": PERCENTAGE,
|
|
"device_class": DEVICE_CLASS_HUMIDITY,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
"signal": {
|
|
"label": f"{DEFAULT_NAME} Signal Strength",
|
|
"unit": SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
|
"device_class": DEVICE_CLASS_SIGNAL_STRENGTH,
|
|
"icon": None,
|
|
"enabled": False,
|
|
},
|
|
"temperature": {
|
|
"label": f"{DEFAULT_NAME} DHT22 Temperature",
|
|
"unit": TEMP_CELSIUS,
|
|
"device_class": DEVICE_CLASS_TEMPERATURE,
|
|
"icon": None,
|
|
"enabled": True,
|
|
},
|
|
}
|