Add support for pressure sensors (#14361)
This commit is contained in:
parent
bc664c276c
commit
e963fc5acf
2 changed files with 21 additions and 1 deletions
|
@ -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))
|
||||
|
|
|
@ -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',
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue