mirror of
https://github.com/micahqcade/custom_vesync.git
synced 2025-02-11 09:39:00 +01:00
add air quality sensor to fan if available. (#33)
This commit is contained in:
parent
3498625de7
commit
c16c311a19
@ -59,6 +59,8 @@ async def async_process_devices(hass, manager):
|
|||||||
else:
|
else:
|
||||||
if hasattr(fan, "config_dict"):
|
if hasattr(fan, "config_dict"):
|
||||||
devices[VS_NUMBERS].append(fan)
|
devices[VS_NUMBERS].append(fan)
|
||||||
|
if "air_quality" in fan.config_dict["features"]:
|
||||||
|
devices[VS_SENSORS].append(fan)
|
||||||
devices[VS_SWITCHES].append(fan) # for automatic stop and display
|
devices[VS_SWITCHES].append(fan) # for automatic stop and display
|
||||||
devices[VS_FANS].append(fan)
|
devices[VS_FANS].append(fan)
|
||||||
_LOGGER.info("%d VeSync fans found", len(manager.fans))
|
_LOGGER.info("%d VeSync fans found", len(manager.fans))
|
||||||
|
@ -49,6 +49,8 @@ def _setup_entities(devices, async_add_entities):
|
|||||||
entities.extend((VeSyncPowerSensor(dev), VeSyncEnergySensor(dev)))
|
entities.extend((VeSyncPowerSensor(dev), VeSyncEnergySensor(dev)))
|
||||||
elif is_humidifier(dev.device_type):
|
elif is_humidifier(dev.device_type):
|
||||||
entities.append(VeSyncHumiditySensor(dev))
|
entities.append(VeSyncHumiditySensor(dev))
|
||||||
|
elif "air_quality" in dev.config_dict["features"]:
|
||||||
|
entities.append(VeSyncAirQualitySensor(dev))
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning(
|
_LOGGER.warning(
|
||||||
"%s - Unknown device type - %s", dev.device_name, dev.device_type
|
"%s - Unknown device type - %s", dev.device_name, dev.device_type
|
||||||
@ -168,6 +170,40 @@ class VeSyncHumidifierSensorEntity(VeSyncBaseEntity, SensorEntity):
|
|||||||
return EntityCategory.DIAGNOSTIC
|
return EntityCategory.DIAGNOSTIC
|
||||||
|
|
||||||
|
|
||||||
|
class VeSyncAirQualitySensor(VeSyncHumidifierSensorEntity):
|
||||||
|
"""Representation of an air quality sensor."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def unique_id(self):
|
||||||
|
"""Return unique ID for air quality sensor on device."""
|
||||||
|
return f"{super().unique_id}-air-quality"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
"""Return sensor name."""
|
||||||
|
return f"{super().name} air quality"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_class(self):
|
||||||
|
"""Return the air quality device class."""
|
||||||
|
return SensorDeviceClass.AQI
|
||||||
|
|
||||||
|
@property
|
||||||
|
def native_value(self):
|
||||||
|
"""Return the air quality index."""
|
||||||
|
return self.smarthumidifier.details["air_quality_value"]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def native_unit_of_measurement(self):
|
||||||
|
"""Return the % unit of measurement."""
|
||||||
|
return " "
|
||||||
|
|
||||||
|
@property
|
||||||
|
def state_class(self):
|
||||||
|
"""Return the measurement state class."""
|
||||||
|
return SensorStateClass.MEASUREMENT
|
||||||
|
|
||||||
|
|
||||||
class VeSyncHumiditySensor(VeSyncHumidifierSensorEntity):
|
class VeSyncHumiditySensor(VeSyncHumidifierSensorEntity):
|
||||||
"""Representation of current humidity for a VeSync humidifier."""
|
"""Representation of current humidity for a VeSync humidifier."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user