Add support for pressure sensors (#14361)

This commit is contained in:
damarco 2018-05-10 23:55:32 +02:00 committed by Fabian Affolter
parent bc664c276c
commit e963fc5acf
2 changed files with 21 additions and 1 deletions

View file

@ -32,13 +32,15 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
def make_sensor(discovery_info):
"""Create ZHA sensors factory."""
from zigpy.zcl.clusters.measurement import (
RelativeHumidity, TemperatureMeasurement
RelativeHumidity, TemperatureMeasurement, PressureMeasurement
)
in_clusters = discovery_info['in_clusters']
if RelativeHumidity.cluster_id in in_clusters:
sensor = RelativeHumiditySensor(**discovery_info)
elif TemperatureMeasurement.cluster_id in in_clusters:
sensor = TemperatureSensor(**discovery_info)
elif PressureMeasurement.cluster_id in in_clusters:
sensor = PressureSensor(**discovery_info)
else:
sensor = Sensor(**discovery_info)
@ -111,3 +113,20 @@ class RelativeHumiditySensor(Sensor):
return 'unknown'
return round(float(self._state) / 100, 1)
class PressureSensor(Sensor):
"""ZHA pressure sensor."""
@property
def unit_of_measurement(self):
"""Return the unit of measurement of this entity."""
return 'hPa'
@property
def state(self):
"""Return the state of the entity."""
if self._state == 'unknown':
return 'unknown'
return round(float(self._state))

View file

@ -47,6 +47,7 @@ def populate_data():
zcl.clusters.general.OnOff: 'switch',
zcl.clusters.measurement.RelativeHumidity: 'sensor',
zcl.clusters.measurement.TemperatureMeasurement: 'sensor',
zcl.clusters.measurement.PressureMeasurement: 'sensor',
zcl.clusters.security.IasZone: 'binary_sensor',
zcl.clusters.hvac.Fan: 'fan',
})