Add support for daikin humidity sensor (#36475)

This commit is contained in:
Filip Pytloun 2020-06-22 13:10:26 +02:00 committed by GitHub
parent 78225c9ddd
commit dcb3a57476
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 3 deletions

View File

@ -5,11 +5,13 @@ from homeassistant.const import (
CONF_NAME,
CONF_TYPE,
CONF_UNIT_OF_MEASUREMENT,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_POWER,
DEVICE_CLASS_TEMPERATURE,
ENERGY_KILO_WATT_HOUR,
POWER_KILO_WATT,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
ATTR_TARGET_TEMPERATURE = "target_temperature"
@ -18,11 +20,14 @@ ATTR_OUTSIDE_TEMPERATURE = "outside_temperature"
ATTR_TOTAL_POWER = "total_power"
ATTR_COOL_ENERGY = "cool_energy"
ATTR_HEAT_ENERGY = "heat_energy"
ATTR_HUMIDITY = "humidity"
ATTR_TARGET_HUMIDITY = "target_humidity"
ATTR_STATE_ON = "on"
ATTR_STATE_OFF = "off"
SENSOR_TYPE_TEMPERATURE = "temperature"
SENSOR_TYPE_HUMIDITY = "humidity"
SENSOR_TYPE_POWER = "power"
SENSOR_TYPE_ENERGY = "energy"
@ -39,6 +44,18 @@ SENSOR_TYPES = {
CONF_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
CONF_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
},
ATTR_HUMIDITY: {
CONF_NAME: "Humidity",
CONF_TYPE: SENSOR_TYPE_HUMIDITY,
CONF_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
CONF_UNIT_OF_MEASUREMENT: UNIT_PERCENTAGE,
},
ATTR_TARGET_HUMIDITY: {
CONF_NAME: "Target Humidity",
CONF_TYPE: SENSOR_TYPE_HUMIDITY,
CONF_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
CONF_UNIT_OF_MEASUREMENT: UNIT_PERCENTAGE,
},
ATTR_TOTAL_POWER: {
CONF_NAME: "Total Power Consumption",
CONF_TYPE: SENSOR_TYPE_POWER,

View File

@ -3,7 +3,7 @@
"name": "Daikin AC",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/daikin",
"requirements": ["pydaikin==2.1.2"],
"requirements": ["pydaikin==2.2.0"],
"codeowners": ["@fredrike"],
"zeroconf": ["_dkapi._tcp.local."],
"quality_scale": "platinum"

View File

@ -14,10 +14,13 @@ from . import DOMAIN as DAIKIN_DOMAIN, DaikinApi
from .const import (
ATTR_COOL_ENERGY,
ATTR_HEAT_ENERGY,
ATTR_HUMIDITY,
ATTR_INSIDE_TEMPERATURE,
ATTR_OUTSIDE_TEMPERATURE,
ATTR_TARGET_HUMIDITY,
ATTR_TOTAL_POWER,
SENSOR_TYPE_ENERGY,
SENSOR_TYPE_HUMIDITY,
SENSOR_TYPE_POWER,
SENSOR_TYPE_TEMPERATURE,
SENSOR_TYPES,
@ -44,6 +47,9 @@ async def async_setup_entry(hass, entry, async_add_entities):
sensors.append(ATTR_TOTAL_POWER)
sensors.append(ATTR_COOL_ENERGY)
sensors.append(ATTR_HEAT_ENERGY)
if daikin_api.device.support_humidity:
sensors.append(ATTR_HUMIDITY)
sensors.append(ATTR_TARGET_HUMIDITY)
async_add_entities([DaikinSensor.factory(daikin_api, sensor) for sensor in sensors])
@ -55,6 +61,7 @@ class DaikinSensor(Entity):
"""Initialize any DaikinSensor."""
cls = {
SENSOR_TYPE_TEMPERATURE: DaikinClimateSensor,
SENSOR_TYPE_HUMIDITY: DaikinClimateSensor,
SENSOR_TYPE_POWER: DaikinPowerSensor,
SENSOR_TYPE_ENERGY: DaikinPowerSensor,
}[SENSOR_TYPES[monitored_state][CONF_TYPE]]
@ -117,6 +124,11 @@ class DaikinClimateSensor(DaikinSensor):
return self._api.device.inside_temperature
if self._device_attribute == ATTR_OUTSIDE_TEMPERATURE:
return self._api.device.outside_temperature
if self._device_attribute == ATTR_HUMIDITY:
return self._api.device.humidity
if self._device_attribute == ATTR_TARGET_HUMIDITY:
return self._api.device.target_humidity
return None

View File

@ -1276,7 +1276,7 @@ pycsspeechtts==1.0.3
# pycups==1.9.73
# homeassistant.components.daikin
pydaikin==2.1.2
pydaikin==2.2.0
# homeassistant.components.danfoss_air
pydanfossair==0.1.0

View File

@ -567,7 +567,7 @@ pycoolmasternet==0.0.4
pycountry==19.8.18
# homeassistant.components.daikin
pydaikin==2.1.2
pydaikin==2.2.0
# homeassistant.components.deconz
pydeconz==71