From 1b66f3208d2c476858a9b1c4f4a34830912d8f09 Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Thu, 16 Dec 2021 10:11:55 -0500 Subject: [PATCH] Use enums in ozw (#62088) --- homeassistant/components/ozw/binary_sensor.py | 62 ++++++++----------- homeassistant/components/ozw/cover.py | 6 +- homeassistant/components/ozw/sensor.py | 25 +++----- 3 files changed, 39 insertions(+), 54 deletions(-) diff --git a/homeassistant/components/ozw/binary_sensor.py b/homeassistant/components/ozw/binary_sensor.py index 91b26218c97..a3efd36e0ab 100644 --- a/homeassistant/components/ozw/binary_sensor.py +++ b/homeassistant/components/ozw/binary_sensor.py @@ -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, }, ] diff --git a/homeassistant/components/ozw/cover.py b/homeassistant/components/ozw/cover.py index 1c708b55ffb..e8f1fc99872 100644 --- a/homeassistant/components/ozw/cover.py +++ b/homeassistant/components/ozw/cover.py @@ -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): diff --git a/homeassistant/components/ozw/sensor.py b/homeassistant/components/ozw/sensor.py index 97b7b01d4d4..0813870e584 100644 --- a/homeassistant/components/ozw/sensor.py +++ b/homeassistant/components/ozw/sensor.py @@ -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