mirror of
https://github.com/home-assistant/core.git
synced 2025-07-28 07:37:34 +00:00
Add support for Broadlink A2 air quality sensor (#142203)
Co-authored-by: Joostlek <joostlek@outlook.com>
This commit is contained in:
parent
f08d1e547f
commit
f680e992ff
@ -11,6 +11,7 @@ DOMAINS_AND_TYPES = {
|
|||||||
Platform.SELECT: {"HYS"},
|
Platform.SELECT: {"HYS"},
|
||||||
Platform.SENSOR: {
|
Platform.SENSOR: {
|
||||||
"A1",
|
"A1",
|
||||||
|
"A2",
|
||||||
"MP1S",
|
"MP1S",
|
||||||
"RM4MINI",
|
"RM4MINI",
|
||||||
"RM4PRO",
|
"RM4PRO",
|
||||||
|
@ -10,6 +10,7 @@ from homeassistant.components.sensor import (
|
|||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
UnitOfElectricCurrent,
|
UnitOfElectricCurrent,
|
||||||
UnitOfElectricPotential,
|
UnitOfElectricPotential,
|
||||||
@ -34,6 +35,24 @@ SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
|
|||||||
key="air_quality",
|
key="air_quality",
|
||||||
device_class=SensorDeviceClass.AQI,
|
device_class=SensorDeviceClass.AQI,
|
||||||
),
|
),
|
||||||
|
SensorEntityDescription(
|
||||||
|
key="pm10",
|
||||||
|
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
|
device_class=SensorDeviceClass.PM10,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
|
SensorEntityDescription(
|
||||||
|
key="pm2_5",
|
||||||
|
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
|
device_class=SensorDeviceClass.PM25,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
|
SensorEntityDescription(
|
||||||
|
key="pm1",
|
||||||
|
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
|
device_class=SensorDeviceClass.PM1,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
SensorEntityDescription(
|
SensorEntityDescription(
|
||||||
key="humidity",
|
key="humidity",
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
native_unit_of_measurement=PERCENTAGE,
|
||||||
|
@ -25,6 +25,7 @@ def get_update_manager(device: BroadlinkDevice[_ApiT]) -> BroadlinkUpdateManager
|
|||||||
"""Return an update manager for a given Broadlink device."""
|
"""Return an update manager for a given Broadlink device."""
|
||||||
update_managers: dict[str, type[BroadlinkUpdateManager]] = {
|
update_managers: dict[str, type[BroadlinkUpdateManager]] = {
|
||||||
"A1": BroadlinkA1UpdateManager,
|
"A1": BroadlinkA1UpdateManager,
|
||||||
|
"A2": BroadlinkA2UpdateManager,
|
||||||
"BG1": BroadlinkBG1UpdateManager,
|
"BG1": BroadlinkBG1UpdateManager,
|
||||||
"HYS": BroadlinkThermostatUpdateManager,
|
"HYS": BroadlinkThermostatUpdateManager,
|
||||||
"LB1": BroadlinkLB1UpdateManager,
|
"LB1": BroadlinkLB1UpdateManager,
|
||||||
@ -118,6 +119,16 @@ class BroadlinkA1UpdateManager(BroadlinkUpdateManager[blk.a1]):
|
|||||||
return await self.device.async_request(self.device.api.check_sensors_raw)
|
return await self.device.async_request(self.device.api.check_sensors_raw)
|
||||||
|
|
||||||
|
|
||||||
|
class BroadlinkA2UpdateManager(BroadlinkUpdateManager[blk.a2]):
|
||||||
|
"""Manages updates for Broadlink A2 devices."""
|
||||||
|
|
||||||
|
SCAN_INTERVAL = timedelta(seconds=10)
|
||||||
|
|
||||||
|
async def async_fetch_data(self) -> dict[str, Any]:
|
||||||
|
"""Fetch data from the device."""
|
||||||
|
return await self.device.async_request(self.device.api.check_sensors_raw)
|
||||||
|
|
||||||
|
|
||||||
class BroadlinkMP1UpdateManager(BroadlinkUpdateManager[blk.mp1]):
|
class BroadlinkMP1UpdateManager(BroadlinkUpdateManager[blk.mp1]):
|
||||||
"""Manages updates for Broadlink MP1 devices."""
|
"""Manages updates for Broadlink MP1 devices."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user