Use new enums in devolo_home_control (#61345)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2021-12-09 12:53:05 +01:00 committed by GitHub
parent bcdeb06a4e
commit b1a8e0b796
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 46 deletions

View File

@ -5,30 +5,24 @@ from devolo_home_control_api.devices.zwave import Zwave
from devolo_home_control_api.homecontrol import HomeControl from devolo_home_control_api.homecontrol import HomeControl
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_DOOR, BinarySensorDeviceClass,
DEVICE_CLASS_HEAT,
DEVICE_CLASS_MOISTURE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_PROBLEM,
DEVICE_CLASS_SAFETY,
DEVICE_CLASS_SMOKE,
BinarySensorEntity, BinarySensorEntity,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from .const import DOMAIN
from .devolo_device import DevoloDeviceEntity from .devolo_device import DevoloDeviceEntity
DEVICE_CLASS_MAPPING = { DEVICE_CLASS_MAPPING = {
"Water alarm": DEVICE_CLASS_MOISTURE, "Water alarm": BinarySensorDeviceClass.MOISTURE,
"Home Security": DEVICE_CLASS_MOTION, "Home Security": BinarySensorDeviceClass.MOTION,
"Smoke Alarm": DEVICE_CLASS_SMOKE, "Smoke Alarm": BinarySensorDeviceClass.SMOKE,
"Heat Alarm": DEVICE_CLASS_HEAT, "Heat Alarm": BinarySensorDeviceClass.HEAT,
"door": DEVICE_CLASS_DOOR, "door": BinarySensorDeviceClass.DOOR,
"overload": DEVICE_CLASS_SAFETY, "overload": BinarySensorDeviceClass.SAFETY,
} }
@ -95,12 +89,12 @@ class DevoloBinaryDeviceEntity(DevoloDeviceEntity, BinarySensorEntity):
self._value = self._binary_sensor_property.state self._value = self._binary_sensor_property.state
if self._attr_device_class == DEVICE_CLASS_SAFETY: if self._attr_device_class == BinarySensorDeviceClass.SAFETY:
self._attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC self._attr_entity_category = EntityCategory.DIAGNOSTIC
if element_uid.startswith("devolo.WarningBinaryFI:"): if element_uid.startswith("devolo.WarningBinaryFI:"):
self._attr_device_class = DEVICE_CLASS_PROBLEM self._attr_device_class = BinarySensorDeviceClass.PROBLEM
self._attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC self._attr_entity_category = EntityCategory.DIAGNOSTIC
self._attr_entity_registry_enabled_default = False self._attr_entity_registry_enabled_default = False
@property @property

View File

@ -7,10 +7,10 @@ from devolo_home_control_api.devices.zwave import Zwave
from devolo_home_control_api.homecontrol import HomeControl from devolo_home_control_api.homecontrol import HomeControl
from homeassistant.components.cover import ( from homeassistant.components.cover import (
DEVICE_CLASS_BLIND,
SUPPORT_CLOSE, SUPPORT_CLOSE,
SUPPORT_OPEN, SUPPORT_OPEN,
SUPPORT_SET_POSITION, SUPPORT_SET_POSITION,
CoverDeviceClass,
CoverEntity, CoverEntity,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -55,7 +55,7 @@ class DevoloCoverDeviceEntity(DevoloMultiLevelSwitchDeviceEntity, CoverEntity):
element_uid=element_uid, element_uid=element_uid,
) )
self._attr_device_class = DEVICE_CLASS_BLIND self._attr_device_class = CoverDeviceClass.BLIND
self._attr_supported_features = ( self._attr_supported_features = (
SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_SET_POSITION SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_SET_POSITION
) )

View File

@ -5,43 +5,37 @@ from devolo_home_control_api.devices.zwave import Zwave
from devolo_home_control_api.homecontrol import HomeControl from devolo_home_control_api.homecontrol import HomeControl
from homeassistant.components.sensor import ( from homeassistant.components.sensor import (
DEVICE_CLASS_BATTERY, SensorDeviceClass,
DEVICE_CLASS_ENERGY,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_ILLUMINANCE,
DEVICE_CLASS_POWER,
DEVICE_CLASS_TEMPERATURE,
DEVICE_CLASS_VOLTAGE,
STATE_CLASS_MEASUREMENT,
STATE_CLASS_TOTAL_INCREASING,
SensorEntity, SensorEntity,
SensorStateClass,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC, PERCENTAGE from homeassistant.const import PERCENTAGE
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from .const import DOMAIN
from .devolo_device import DevoloDeviceEntity from .devolo_device import DevoloDeviceEntity
DEVICE_CLASS_MAPPING = { DEVICE_CLASS_MAPPING = {
"battery": DEVICE_CLASS_BATTERY, "battery": SensorDeviceClass.BATTERY,
"temperature": DEVICE_CLASS_TEMPERATURE, "temperature": SensorDeviceClass.TEMPERATURE,
"light": DEVICE_CLASS_ILLUMINANCE, "light": SensorDeviceClass.ILLUMINANCE,
"humidity": DEVICE_CLASS_HUMIDITY, "humidity": SensorDeviceClass.HUMIDITY,
"current": DEVICE_CLASS_POWER, "current": SensorDeviceClass.POWER,
"total": DEVICE_CLASS_ENERGY, "total": SensorDeviceClass.ENERGY,
"voltage": DEVICE_CLASS_VOLTAGE, "voltage": SensorDeviceClass.VOLTAGE,
} }
STATE_CLASS_MAPPING = { STATE_CLASS_MAPPING = {
"battery": STATE_CLASS_MEASUREMENT, "battery": SensorStateClass.MEASUREMENT,
"temperature": STATE_CLASS_MEASUREMENT, "temperature": SensorStateClass.MEASUREMENT,
"light": STATE_CLASS_MEASUREMENT, "light": SensorStateClass.MEASUREMENT,
"humidity": STATE_CLASS_MEASUREMENT, "humidity": SensorStateClass.MEASUREMENT,
"current": STATE_CLASS_MEASUREMENT, "current": SensorStateClass.MEASUREMENT,
"total": STATE_CLASS_TOTAL_INCREASING, "total": SensorStateClass.TOTAL_INCREASING,
"voltage": STATE_CLASS_MEASUREMENT, "voltage": SensorStateClass.MEASUREMENT,
} }
@ -147,7 +141,7 @@ class DevoloBatteryEntity(DevoloMultiLevelDeviceEntity):
self._attr_device_class = DEVICE_CLASS_MAPPING.get("battery") self._attr_device_class = DEVICE_CLASS_MAPPING.get("battery")
self._attr_state_class = STATE_CLASS_MAPPING.get("battery") self._attr_state_class = STATE_CLASS_MAPPING.get("battery")
self._attr_entity_category = ENTITY_CATEGORY_DIAGNOSTIC self._attr_entity_category = EntityCategory.DIAGNOSTIC
self._attr_native_unit_of_measurement = PERCENTAGE self._attr_native_unit_of_measurement = PERCENTAGE
self._value = device_instance.battery_level self._value = device_instance.battery_level
@ -179,7 +173,7 @@ class DevoloConsumptionEntity(DevoloMultiLevelDeviceEntity):
) )
if consumption == "total": if consumption == "total":
self._attr_state_class = STATE_CLASS_TOTAL_INCREASING self._attr_state_class = SensorStateClass.TOTAL_INCREASING
self._value = getattr( self._value = getattr(
device_instance.consumption_property[element_uid], consumption device_instance.consumption_property[element_uid], consumption