Use EntityFeature enum in components (o**) (#69433)

This commit is contained in:
epenet 2022-04-07 15:15:05 +02:00 committed by GitHub
parent 3aeb53ec98
commit cac8d71764
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 80 additions and 110 deletions

View file

@ -5,7 +5,11 @@ from oemthermostat import Thermostat
import requests
import voluptuous as vol
from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity
from homeassistant.components.climate import (
PLATFORM_SCHEMA,
ClimateEntity,
ClimateEntityFeature,
)
from homeassistant.components.climate.const import (
CURRENT_HVAC_HEAT,
CURRENT_HVAC_IDLE,
@ -13,7 +17,6 @@ from homeassistant.components.climate.const import (
HVAC_MODE_AUTO,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_TARGET_TEMPERATURE,
)
from homeassistant.const import (
ATTR_TEMPERATURE,
@ -39,7 +42,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
}
)
SUPPORT_FLAGS = SUPPORT_TARGET_TEMPERATURE
SUPPORT_HVAC = [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF]
@ -67,6 +69,8 @@ def setup_platform(
class ThermostatDevice(ClimateEntity):
"""Interface class for the oemthermostat module."""
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
def __init__(self, thermostat, name):
"""Initialize the device."""
self._name = name
@ -78,11 +82,6 @@ class ThermostatDevice(ClimateEntity):
self._setpoint = None
self._mode = None
@property
def supported_features(self):
"""Return the list of supported features."""
return SUPPORT_FLAGS
@property
def hvac_mode(self):
"""Return hvac operation ie. heat, cool mode.

View file

@ -7,18 +7,12 @@ import eiscp
from eiscp import eISCP
import voluptuous as vol
from homeassistant.components.media_player import PLATFORM_SCHEMA, MediaPlayerEntity
from homeassistant.components.media_player.const import (
DOMAIN,
SUPPORT_PLAY,
SUPPORT_PLAY_MEDIA,
SUPPORT_SELECT_SOURCE,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_SET,
SUPPORT_VOLUME_STEP,
from homeassistant.components.media_player import (
PLATFORM_SCHEMA,
MediaPlayerEntity,
MediaPlayerEntityFeature,
)
from homeassistant.components.media_player.const import DOMAIN
from homeassistant.const import (
ATTR_ENTITY_ID,
CONF_HOST,
@ -41,23 +35,19 @@ DEFAULT_NAME = "Onkyo Receiver"
SUPPORTED_MAX_VOLUME = 100
DEFAULT_RECEIVER_MAX_VOLUME = 80
SUPPORT_ONKYO = (
SUPPORT_VOLUME_SET
| SUPPORT_VOLUME_MUTE
| SUPPORT_VOLUME_STEP
| SUPPORT_TURN_ON
| SUPPORT_TURN_OFF
| SUPPORT_SELECT_SOURCE
| SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
)
SUPPORT_ONKYO_WO_VOLUME = (
SUPPORT_TURN_ON
| SUPPORT_TURN_OFF
| SUPPORT_SELECT_SOURCE
| SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
MediaPlayerEntityFeature.TURN_ON
| MediaPlayerEntityFeature.TURN_OFF
| MediaPlayerEntityFeature.SELECT_SOURCE
| MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
)
SUPPORT_ONKYO = (
SUPPORT_ONKYO_WO_VOLUME
| MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.VOLUME_STEP
)
KNOWN_HOSTS: list[str] = []
@ -254,6 +244,8 @@ def setup_platform(
class OnkyoDevice(MediaPlayerEntity):
"""Representation of an Onkyo device."""
_attr_supported_features = SUPPORT_ONKYO
def __init__(
self,
receiver,
@ -389,11 +381,6 @@ class OnkyoDevice(MediaPlayerEntity):
"""Return boolean indicating mute status."""
return self._muted
@property
def supported_features(self):
"""Return media player features that are supported."""
return SUPPORT_ONKYO
@property
def source(self):
"""Return the current input source of the device."""

View file

@ -7,7 +7,7 @@ import voluptuous as vol
from yarl import URL
from homeassistant.components import ffmpeg
from homeassistant.components.camera import SUPPORT_STREAM, Camera
from homeassistant.components.camera import Camera, CameraEntityFeature
from homeassistant.components.ffmpeg import CONF_EXTRA_ARGUMENTS, get_ffmpeg_manager
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import HTTP_BASIC_AUTHENTICATION
@ -88,6 +88,8 @@ async def async_setup_entry(
class ONVIFCameraEntity(ONVIFBaseEntity, Camera):
"""Representation of an ONVIF camera."""
_attr_supported_features = CameraEntityFeature.STREAM
def __init__(self, device, profile):
"""Initialize ONVIF camera entity."""
ONVIFBaseEntity.__init__(self, device, profile)
@ -101,11 +103,6 @@ class ONVIFCameraEntity(ONVIFBaseEntity, Camera):
)
self._stream_uri = None
@property
def supported_features(self) -> int:
"""Return supported features."""
return SUPPORT_STREAM
@property
def name(self) -> str:
"""Return the name of this camera."""

View file

@ -2,10 +2,9 @@
import logging
from homeassistant.components.cover import (
SUPPORT_CLOSE,
SUPPORT_OPEN,
CoverDeviceClass,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import STATE_CLOSED, STATE_CLOSING, STATE_OPEN, STATE_OPENING
@ -33,7 +32,7 @@ class OpenGarageCover(OpenGarageEntity, CoverEntity):
"""Representation of a OpenGarage cover."""
_attr_device_class = CoverDeviceClass.GARAGE
_attr_supported_features = SUPPORT_OPEN | SUPPORT_CLOSE
_attr_supported_features = CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE
def __init__(self, open_garage_data_coordinator, device_id):
"""Initialize the cover."""

View file

@ -11,26 +11,14 @@ from openhomedevice.device import Device
import voluptuous as vol
from homeassistant.components import media_source
from homeassistant.components.media_player import MediaPlayerEntity
from homeassistant.components.media_player import (
MediaPlayerEntity,
MediaPlayerEntityFeature,
)
from homeassistant.components.media_player.browse_media import (
async_process_play_media_url,
)
from homeassistant.components.media_player.const import (
MEDIA_TYPE_MUSIC,
SUPPORT_BROWSE_MEDIA,
SUPPORT_NEXT_TRACK,
SUPPORT_PAUSE,
SUPPORT_PLAY,
SUPPORT_PLAY_MEDIA,
SUPPORT_PREVIOUS_TRACK,
SUPPORT_SELECT_SOURCE,
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_SET,
SUPPORT_VOLUME_STEP,
)
from homeassistant.components.media_player.const import MEDIA_TYPE_MUSIC
from homeassistant.const import STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING
from homeassistant.core import HomeAssistant
from homeassistant.helpers import config_validation as cv, entity_platform
@ -39,7 +27,11 @@ from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import ATTR_PIN_INDEX, DATA_OPENHOME, SERVICE_INVOKE_PIN
SUPPORT_OPENHOME = SUPPORT_SELECT_SOURCE | SUPPORT_TURN_OFF | SUPPORT_TURN_ON
SUPPORT_OPENHOME = (
MediaPlayerEntityFeature.SELECT_SOURCE
| MediaPlayerEntityFeature.TURN_OFF
| MediaPlayerEntityFeature.TURN_ON
)
_LOGGER = logging.getLogger(__name__)
@ -113,7 +105,7 @@ class OpenhomeDevice(MediaPlayerEntity):
self._transport_state = None
self._volume_level = None
self._volume_muted = None
self._supported_features = SUPPORT_OPENHOME
self._attr_supported_features = SUPPORT_OPENHOME
self._source_names = []
self._source_index = {}
self._source = {}
@ -134,13 +126,15 @@ class OpenhomeDevice(MediaPlayerEntity):
self._track_information = await self._device.track_info()
self._source = await self._device.source()
self._name = await self._device.room()
self._supported_features = SUPPORT_OPENHOME
self._attr_supported_features = SUPPORT_OPENHOME
source_index = {}
source_names = []
if self._device.volume_enabled:
self._supported_features |= (
SUPPORT_VOLUME_STEP | SUPPORT_VOLUME_MUTE | SUPPORT_VOLUME_SET
self._attr_supported_features |= (
MediaPlayerEntityFeature.VOLUME_STEP
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.VOLUME_SET
)
self._volume_level = await self._device.volume() / 100.0
self._volume_muted = await self._device.is_muted()
@ -153,20 +147,20 @@ class OpenhomeDevice(MediaPlayerEntity):
self._source_names = source_names
if self._source["type"] == "Radio":
self._supported_features |= (
SUPPORT_STOP
| SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
| SUPPORT_BROWSE_MEDIA
self._attr_supported_features |= (
MediaPlayerEntityFeature.STOP
| MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
| MediaPlayerEntityFeature.BROWSE_MEDIA
)
if self._source["type"] in ("Playlist", "Spotify"):
self._supported_features |= (
SUPPORT_PREVIOUS_TRACK
| SUPPORT_NEXT_TRACK
| SUPPORT_PAUSE
| SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
| SUPPORT_BROWSE_MEDIA
self._attr_supported_features |= (
MediaPlayerEntityFeature.PREVIOUS_TRACK
| MediaPlayerEntityFeature.NEXT_TRACK
| MediaPlayerEntityFeature.PAUSE
| MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
| MediaPlayerEntityFeature.BROWSE_MEDIA
)
if self._in_standby:
@ -262,11 +256,6 @@ class OpenhomeDevice(MediaPlayerEntity):
"""Return the name of the device."""
return self._name
@property
def supported_features(self):
"""Flag of features commands that are supported."""
return self._supported_features
@property
def unique_id(self):
"""Return a unique ID."""

View file

@ -3,7 +3,11 @@ import logging
from pyotgw import vars as gw_vars
from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateEntity
from homeassistant.components.climate import (
ENTITY_ID_FORMAT,
ClimateEntity,
ClimateEntityFeature,
)
from homeassistant.components.climate.const import (
CURRENT_HVAC_COOL,
CURRENT_HVAC_HEAT,
@ -12,8 +16,6 @@ from homeassistant.components.climate.const import (
HVAC_MODE_HEAT,
PRESET_AWAY,
PRESET_NONE,
SUPPORT_PRESET_MODE,
SUPPORT_TARGET_TEMPERATURE,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@ -43,8 +45,6 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_FLOOR_TEMP = False
SUPPORT_FLAGS = SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE
async def async_setup_entry(
hass: HomeAssistant,
@ -66,6 +66,10 @@ async def async_setup_entry(
class OpenThermClimate(ClimateEntity):
"""Representation of a climate device."""
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
)
def __init__(self, gw_dev, options):
"""Initialize the device."""
self._gateway = gw_dev
@ -284,11 +288,6 @@ class OpenThermClimate(ClimateEntity):
)
self.async_write_ha_state()
@property
def supported_features(self):
"""Return the list of supported features."""
return SUPPORT_FLAGS
@property
def min_temp(self):
"""Return the minimum temperature."""

View file

@ -12,12 +12,7 @@ from pyoverkiz.types import StateType as OverkizStateType
from homeassistant.components.alarm_control_panel import (
AlarmControlPanelEntity,
AlarmControlPanelEntityDescription,
)
from homeassistant.components.alarm_control_panel.const import (
SUPPORT_ALARM_ARM_AWAY,
SUPPORT_ALARM_ARM_HOME,
SUPPORT_ALARM_ARM_NIGHT,
SUPPORT_ALARM_TRIGGER,
AlarmControlPanelEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@ -162,10 +157,10 @@ ALARM_DESCRIPTIONS: list[OverkizAlarmDescription] = [
key=UIWidget.TSKALARM_CONTROLLER,
entity_registry_enabled_default=False,
supported_features=(
SUPPORT_ALARM_ARM_AWAY
| SUPPORT_ALARM_ARM_HOME
| SUPPORT_ALARM_ARM_NIGHT
| SUPPORT_ALARM_TRIGGER
AlarmControlPanelEntityFeature.ARM_AWAY
| AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_NIGHT
| AlarmControlPanelEntityFeature.TRIGGER
),
fn_state=_state_tsk_alarm_controller,
alarm_disarm=OverkizCommand.ALARM_OFF,
@ -181,7 +176,9 @@ ALARM_DESCRIPTIONS: list[OverkizAlarmDescription] = [
OverkizAlarmDescription(
key=UIWidget.STATEFUL_ALARM_CONTROLLER,
supported_features=(
SUPPORT_ALARM_ARM_AWAY | SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_NIGHT
AlarmControlPanelEntityFeature.ARM_AWAY
| AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_NIGHT
),
fn_state=_state_stateful_alarm_controller,
alarm_disarm=OverkizCommand.ALARM_OFF,
@ -195,7 +192,8 @@ ALARM_DESCRIPTIONS: list[OverkizAlarmDescription] = [
# MyFoxAlarmController
OverkizAlarmDescription(
key=UIWidget.MY_FOX_ALARM_CONTROLLER,
supported_features=SUPPORT_ALARM_ARM_AWAY | SUPPORT_ALARM_ARM_NIGHT,
supported_features=AlarmControlPanelEntityFeature.ARM_AWAY
| AlarmControlPanelEntityFeature.ARM_NIGHT,
fn_state=_state_myfox_alarm_controller,
alarm_disarm=OverkizCommand.DISARM,
alarm_arm_night=OverkizCommand.PARTIAL,
@ -205,7 +203,9 @@ ALARM_DESCRIPTIONS: list[OverkizAlarmDescription] = [
OverkizAlarmDescription(
key=UIWidget.ALARM_PANEL_CONTROLLER,
supported_features=(
SUPPORT_ALARM_ARM_AWAY | SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_NIGHT
AlarmControlPanelEntityFeature.ARM_AWAY
| AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_NIGHT
),
fn_state=_state_alarm_panel_controller,
alarm_disarm=OverkizCommand.DISARM,