Use enums in ozw (#62088)
This commit is contained in:
parent
a0b6edc894
commit
1b66f3208d
3 changed files with 39 additions and 54 deletions
|
@ -2,18 +2,8 @@
|
|||
from openzwavemqtt.const import CommandClass, ValueIndex, ValueType
|
||||
|
||||
from homeassistant.components.binary_sensor import (
|
||||
DEVICE_CLASS_DOOR,
|
||||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_HEAT,
|
||||
DEVICE_CLASS_LOCK,
|
||||
DEVICE_CLASS_MOISTURE,
|
||||
DEVICE_CLASS_MOTION,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_PROBLEM,
|
||||
DEVICE_CLASS_SAFETY,
|
||||
DEVICE_CLASS_SMOKE,
|
||||
DEVICE_CLASS_SOUND,
|
||||
DOMAIN as BINARY_SENSOR_DOMAIN,
|
||||
BinarySensorDeviceClass,
|
||||
BinarySensorEntity,
|
||||
)
|
||||
from homeassistant.core import callback
|
||||
|
@ -38,79 +28,79 @@ NOTIFICATION_SENSORS = [
|
|||
# Assuming here that Value 1 and 2 are not present at the same time
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_SMOKE_ALARM,
|
||||
NOTIFICATION_VALUES: [1, 2],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SMOKE,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SMOKE,
|
||||
},
|
||||
{
|
||||
# Index 1: Smoke Alarm - All other Value Id's
|
||||
# Create as disabled sensors
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_SMOKE_ALARM,
|
||||
NOTIFICATION_VALUES: [3, 4, 5, 6, 7, 8],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SMOKE,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SMOKE,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 2: Carbon Monoxide - Value Id's 1 and 2
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_CARBON_MONOOXIDE,
|
||||
NOTIFICATION_VALUES: [1, 2],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_GAS,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.GAS,
|
||||
},
|
||||
{
|
||||
# Index 2: Carbon Monoxide - All other Value Id's
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_CARBON_MONOOXIDE,
|
||||
NOTIFICATION_VALUES: [4, 5, 7],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_GAS,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.GAS,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 3: Carbon Dioxide - Value Id's 1 and 2
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_CARBON_DIOXIDE,
|
||||
NOTIFICATION_VALUES: [1, 2],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_GAS,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.GAS,
|
||||
},
|
||||
{
|
||||
# Index 3: Carbon Dioxide - All other Value Id's
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_CARBON_DIOXIDE,
|
||||
NOTIFICATION_VALUES: [4, 5, 7],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_GAS,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.GAS,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 4: Heat - Value Id's 1, 2, 5, 6 (heat/underheat)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HEAT,
|
||||
NOTIFICATION_VALUES: [1, 2, 5, 6],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_HEAT,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.HEAT,
|
||||
},
|
||||
{
|
||||
# Index 4: Heat - All other Value Id's
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HEAT,
|
||||
NOTIFICATION_VALUES: [3, 4, 8, 10, 11],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_HEAT,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.HEAT,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 5: Water - Value Id's 1, 2, 3, 4
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_WATER,
|
||||
NOTIFICATION_VALUES: [1, 2, 3, 4],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_MOISTURE,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.MOISTURE,
|
||||
},
|
||||
{
|
||||
# Index 5: Water - All other Value Id's
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_WATER,
|
||||
NOTIFICATION_VALUES: [5],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_MOISTURE,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.MOISTURE,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 6: Access Control - Value Id's 1, 2, 3, 4 (Lock)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_ACCESS_CONTROL,
|
||||
NOTIFICATION_VALUES: [1, 2, 3, 4],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_LOCK,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.LOCK,
|
||||
},
|
||||
{
|
||||
# Index 6: Access Control - Value Id 22 (door/window open)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_ACCESS_CONTROL,
|
||||
NOTIFICATION_VALUES: [22],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_DOOR,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.DOOR,
|
||||
NOTIFICATION_OFF_VALUE: 23,
|
||||
},
|
||||
{
|
||||
|
@ -118,32 +108,32 @@ NOTIFICATION_SENSORS = [
|
|||
# Assuming that value 1 and 2 are not present at the same time
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HOME_SECURITY,
|
||||
NOTIFICATION_VALUES: [1, 2],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SAFETY,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SAFETY,
|
||||
},
|
||||
{
|
||||
# Index 7: Home Security - Value Id's 3, 4, 9 (tampering)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HOME_SECURITY,
|
||||
NOTIFICATION_VALUES: [3, 4, 9],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SAFETY,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SAFETY,
|
||||
},
|
||||
{
|
||||
# Index 7: Home Security - Value Id's 5, 6 (glass breakage)
|
||||
# Assuming that value 5 and 6 are not present at the same time
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HOME_SECURITY,
|
||||
NOTIFICATION_VALUES: [5, 6],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SAFETY,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SAFETY,
|
||||
},
|
||||
{
|
||||
# Index 7: Home Security - Value Id's 7, 8 (motion)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_HOME_SECURITY,
|
||||
NOTIFICATION_VALUES: [7, 8],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_MOTION,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.MOTION,
|
||||
},
|
||||
{
|
||||
# Index 8: Power management - Values 1...9
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_POWER_MANAGEMENT,
|
||||
NOTIFICATION_VALUES: [1, 2, 3, 4, 5, 6, 7, 8, 9],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_POWER,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.POWER,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
|
@ -151,7 +141,7 @@ NOTIFICATION_SENSORS = [
|
|||
# Battery values (mutually exclusive)
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_POWER_MANAGEMENT,
|
||||
NOTIFICATION_VALUES: [10, 11, 12, 13, 14, 15],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_POWER,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.POWER,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
NOTIFICATION_OFF_VALUE: None,
|
||||
},
|
||||
|
@ -159,14 +149,14 @@ NOTIFICATION_SENSORS = [
|
|||
# Index 9: System - Value Id's 1, 2, 6, 7
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_SYSTEM,
|
||||
NOTIFICATION_VALUES: [1, 2, 6, 7],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_PROBLEM,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.PROBLEM,
|
||||
NOTIFICATION_SENSOR_ENABLED: False,
|
||||
},
|
||||
{
|
||||
# Index 10: Emergency - Value Id's 1, 2, 3
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_EMERGENCY,
|
||||
NOTIFICATION_VALUES: [1, 2, 3],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_PROBLEM,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.PROBLEM,
|
||||
},
|
||||
{
|
||||
# Index 11: Clock - Value Id's 1, 2
|
||||
|
@ -213,20 +203,20 @@ NOTIFICATION_SENSORS = [
|
|||
# Index 14: Siren
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_SIREN,
|
||||
NOTIFICATION_VALUES: [1],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_SOUND,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.SOUND,
|
||||
},
|
||||
{
|
||||
# Index 15: Water valve
|
||||
# ignore non-boolean values
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_WATER_VALVE,
|
||||
NOTIFICATION_VALUES: [3, 4],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_PROBLEM,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.PROBLEM,
|
||||
},
|
||||
{
|
||||
# Index 16: Weather
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_WEATHER,
|
||||
NOTIFICATION_VALUES: [1, 2],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_PROBLEM,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.PROBLEM,
|
||||
},
|
||||
{
|
||||
# Index 17: Irrigation
|
||||
|
@ -239,13 +229,13 @@ NOTIFICATION_SENSORS = [
|
|||
# Index 18: Gas
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_GAS,
|
||||
NOTIFICATION_VALUES: [1, 2, 3, 4],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_GAS,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.GAS,
|
||||
},
|
||||
{
|
||||
# Index 18: Gas
|
||||
NOTIFICATION_TYPE: ValueIndex.NOTIFICATION_GAS,
|
||||
NOTIFICATION_VALUES: [6],
|
||||
NOTIFICATION_DEVICE_CLASS: DEVICE_CLASS_PROBLEM,
|
||||
NOTIFICATION_DEVICE_CLASS: BinarySensorDeviceClass.PROBLEM,
|
||||
},
|
||||
]
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@ from openzwavemqtt.const import CommandClass
|
|||
|
||||
from homeassistant.components.cover import (
|
||||
ATTR_POSITION,
|
||||
DEVICE_CLASS_GARAGE,
|
||||
DOMAIN as COVER_DOMAIN,
|
||||
SUPPORT_CLOSE,
|
||||
SUPPORT_OPEN,
|
||||
CoverDeviceClass,
|
||||
CoverEntity,
|
||||
)
|
||||
from homeassistant.core import callback
|
||||
|
@ -94,8 +94,8 @@ class ZwaveGarageDoorBarrier(ZWaveDeviceEntity, CoverEntity):
|
|||
|
||||
@property
|
||||
def device_class(self):
|
||||
"""Return the class of this device, from component DEVICE_CLASSES."""
|
||||
return DEVICE_CLASS_GARAGE
|
||||
"""Return the class of this device, from CoverDeviceClass."""
|
||||
return CoverDeviceClass.GARAGE
|
||||
|
||||
@property
|
||||
def is_opening(self):
|
||||
|
|
|
@ -5,13 +5,8 @@ import logging
|
|||
from openzwavemqtt.const import CommandClass, ValueType
|
||||
|
||||
from homeassistant.components.sensor import (
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DOMAIN as SENSOR_DOMAIN,
|
||||
SensorDeviceClass,
|
||||
SensorEntity,
|
||||
)
|
||||
from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT
|
||||
|
@ -65,23 +60,23 @@ class ZwaveSensorBase(ZWaveDeviceEntity, SensorEntity):
|
|||
def device_class(self):
|
||||
"""Return the device class of the sensor."""
|
||||
if self.values.primary.command_class == CommandClass.BATTERY:
|
||||
return DEVICE_CLASS_BATTERY
|
||||
return SensorDeviceClass.BATTERY
|
||||
if self.values.primary.command_class == CommandClass.METER:
|
||||
return DEVICE_CLASS_POWER
|
||||
return SensorDeviceClass.POWER
|
||||
if "Temperature" in self.values.primary.label:
|
||||
return DEVICE_CLASS_TEMPERATURE
|
||||
return SensorDeviceClass.TEMPERATURE
|
||||
if "Illuminance" in self.values.primary.label:
|
||||
return DEVICE_CLASS_ILLUMINANCE
|
||||
return SensorDeviceClass.ILLUMINANCE
|
||||
if "Humidity" in self.values.primary.label:
|
||||
return DEVICE_CLASS_HUMIDITY
|
||||
return SensorDeviceClass.HUMIDITY
|
||||
if "Power" in self.values.primary.label:
|
||||
return DEVICE_CLASS_POWER
|
||||
return SensorDeviceClass.POWER
|
||||
if "Energy" in self.values.primary.label:
|
||||
return DEVICE_CLASS_POWER
|
||||
return SensorDeviceClass.POWER
|
||||
if "Electric" in self.values.primary.label:
|
||||
return DEVICE_CLASS_POWER
|
||||
return SensorDeviceClass.POWER
|
||||
if "Pressure" in self.values.primary.label:
|
||||
return DEVICE_CLASS_PRESSURE
|
||||
return SensorDeviceClass.PRESSURE
|
||||
return None
|
||||
|
||||
@property
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue