Use EntityFeature enum in components (l**) (#69412)

This commit is contained in:
epenet 2022-04-07 09:34:58 +02:00 committed by GitHub
parent 96819fff74
commit 95fb4695e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 68 additions and 95 deletions

View file

@ -11,21 +11,9 @@ from homeassistant.components.media_player import (
PLATFORM_SCHEMA,
MediaPlayerDeviceClass,
MediaPlayerEntity,
MediaPlayerEntityFeature,
)
from homeassistant.components.media_player.const import (
MEDIA_TYPE_CHANNEL,
SUPPORT_NEXT_TRACK,
SUPPORT_PAUSE,
SUPPORT_PLAY,
SUPPORT_PLAY_MEDIA,
SUPPORT_PREVIOUS_TRACK,
SUPPORT_SELECT_SOURCE,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_SET,
SUPPORT_VOLUME_STEP,
)
from homeassistant.components.media_player.const import MEDIA_TYPE_CHANNEL
from homeassistant.const import (
CONF_ACCESS_TOKEN,
CONF_HOST,
@ -47,16 +35,16 @@ DEFAULT_NAME = "LG TV Remote"
CONF_ON_ACTION = "turn_on_action"
SUPPORT_LGTV = (
SUPPORT_PAUSE
| SUPPORT_VOLUME_STEP
| SUPPORT_VOLUME_SET
| SUPPORT_VOLUME_MUTE
| SUPPORT_PREVIOUS_TRACK
| SUPPORT_NEXT_TRACK
| SUPPORT_TURN_OFF
| SUPPORT_SELECT_SOURCE
| SUPPORT_PLAY
| SUPPORT_PLAY_MEDIA
MediaPlayerEntityFeature.PAUSE
| MediaPlayerEntityFeature.VOLUME_STEP
| MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.PREVIOUS_TRACK
| MediaPlayerEntityFeature.NEXT_TRACK
| MediaPlayerEntityFeature.TURN_OFF
| MediaPlayerEntityFeature.SELECT_SOURCE
| MediaPlayerEntityFeature.PLAY
| MediaPlayerEntityFeature.PLAY_MEDIA
)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
@ -221,7 +209,7 @@ class LgTVDevice(MediaPlayerEntity):
def supported_features(self):
"""Flag media player features that are supported."""
if self._on_action_script:
return SUPPORT_LGTV | SUPPORT_TURN_ON
return SUPPORT_LGTV | MediaPlayerEntityFeature.TURN_ON
return SUPPORT_LGTV
@property

View file

@ -3,25 +3,15 @@ from __future__ import annotations
import temescal
from homeassistant.components.media_player import MediaPlayerEntity
from homeassistant.components.media_player.const import (
SUPPORT_SELECT_SOUND_MODE,
SUPPORT_SELECT_SOURCE,
SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_SET,
from homeassistant.components.media_player import (
MediaPlayerEntity,
MediaPlayerEntityFeature,
)
from homeassistant.const import STATE_ON
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
SUPPORT_LG = (
SUPPORT_VOLUME_SET
| SUPPORT_VOLUME_MUTE
| SUPPORT_SELECT_SOURCE
| SUPPORT_SELECT_SOUND_MODE
)
def setup_platform(
hass: HomeAssistant,
@ -37,6 +27,13 @@ def setup_platform(
class LGDevice(MediaPlayerEntity):
"""Representation of an LG soundbar device."""
_attr_supported_features = (
MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.SELECT_SOURCE
| MediaPlayerEntityFeature.SELECT_SOUND_MODE
)
def __init__(self, discovery_info):
"""Initialize the LG speakers."""
self._host = discovery_info["host"]
@ -189,11 +186,6 @@ class LGDevice(MediaPlayerEntity):
sources.append(temescal.functions[function])
return sorted(sources)
@property
def supported_features(self):
"""Flag media player features that are supported."""
return SUPPORT_LG
def set_volume_level(self, volume):
"""Set volume level, range 0..1."""
volume = volume * self._volume_max

View file

@ -6,8 +6,8 @@ from homeassistant.components.climate import (
DEFAULT_MIN_TEMP,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_TARGET_TEMPERATURE,
ClimateEntity,
ClimateEntityFeature,
)
from homeassistant.components.climate.const import CURRENT_HVAC_HEAT, CURRENT_HVAC_OFF
from homeassistant.const import ATTR_TEMPERATURE, CONF_NAME, TEMP_CELSIUS
@ -46,7 +46,7 @@ class LightwaveTrv(ClimateEntity):
_attr_hvac_modes = [HVAC_MODE_HEAT, HVAC_MODE_OFF]
_attr_min_temp = DEFAULT_MIN_TEMP
_attr_max_temp = DEFAULT_MAX_TEMP
_attr_supported_features = SUPPORT_TARGET_TEMPERATURE
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
_attr_target_temperature_step = 0.5
_attr_temperature_unit = TEMP_CELSIUS

View file

@ -4,7 +4,7 @@ from __future__ import annotations
from datetime import timedelta
import logging
from homeassistant.components.camera import SUPPORT_ON_OFF, Camera
from homeassistant.components.camera import Camera, CameraEntityFeature
from homeassistant.components.ffmpeg import get_ffmpeg_manager
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@ -62,6 +62,8 @@ async def async_setup_entry(
class LogiCam(Camera):
"""An implementation of a Logi Circle camera."""
_attr_supported_features = CameraEntityFeature.ON_OFF
def __init__(self, camera, device_info, ffmpeg):
"""Initialize Logi Circle camera."""
super().__init__()
@ -123,11 +125,6 @@ class LogiCam(Camera):
"""Return the name of this camera."""
return self._name
@property
def supported_features(self):
"""Logi Circle camera's support turning on and off ("soft" switch)."""
return SUPPORT_ON_OFF
@property
def device_info(self) -> DeviceInfo:
"""Return information about the device."""

View file

@ -7,7 +7,7 @@ from typing import Any, Final, cast
from aiolookin import Climate, MeteoSensor
from aiolookin.models import UDPCommandType, UDPEvent
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
from homeassistant.components.climate.const import (
ATTR_HVAC_MODE,
FAN_AUTO,
@ -20,9 +20,6 @@ from homeassistant.components.climate.const import (
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
SUPPORT_FAN_MODE,
SUPPORT_SWING_MODE,
SUPPORT_TARGET_TEMPERATURE,
SWING_BOTH,
SWING_OFF,
)
@ -41,8 +38,6 @@ from .coordinator import LookinDataUpdateCoordinator
from .entity import LookinCoordinatorEntity
from .models import LookinData
SUPPORT_FLAGS: int = SUPPORT_TARGET_TEMPERATURE | SUPPORT_FAN_MODE | SUPPORT_SWING_MODE
LOOKIN_FAN_MODE_IDX_TO_HASS: Final = [FAN_AUTO, FAN_LOW, FAN_MIDDLE, FAN_HIGH]
LOOKIN_SWING_MODE_IDX_TO_HASS: Final = [SWING_OFF, SWING_BOTH]
LOOKIN_HVAC_MODE_IDX_TO_HASS: Final = [
@ -102,7 +97,11 @@ class ConditionerEntity(LookinCoordinatorEntity, ClimateEntity):
_attr_current_humidity: float | None = None # type: ignore[assignment]
_attr_temperature_unit = TEMP_CELSIUS
_attr_supported_features: int = SUPPORT_FLAGS
_attr_supported_features: int = (
ClimateEntityFeature.TARGET_TEMPERATURE
| ClimateEntityFeature.FAN_MODE
| ClimateEntityFeature.SWING_MODE
)
_attr_fan_modes: list[str] = LOOKIN_FAN_MODE_IDX_TO_HASS
_attr_swing_modes: list[str] = LOOKIN_SWING_MODE_IDX_TO_HASS
_attr_hvac_modes: list[str] = LOOKIN_HVAC_MODE_IDX_TO_HASS

View file

@ -8,14 +8,7 @@ from aiolookin import Remote
from homeassistant.components.media_player import (
MediaPlayerDeviceClass,
MediaPlayerEntity,
)
from homeassistant.components.media_player.const import (
SUPPORT_NEXT_TRACK,
SUPPORT_PREVIOUS_TRACK,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_STEP,
MediaPlayerEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import STATE_ON, STATE_STANDBY, Platform
@ -35,13 +28,13 @@ _TYPE_TO_DEVICE_CLASS = {
}
_FUNCTION_NAME_TO_FEATURE = {
"power": SUPPORT_TURN_OFF,
"poweron": SUPPORT_TURN_ON,
"poweroff": SUPPORT_TURN_OFF,
"mute": SUPPORT_VOLUME_MUTE,
"volup": SUPPORT_VOLUME_STEP,
"chup": SUPPORT_NEXT_TRACK,
"chdown": SUPPORT_PREVIOUS_TRACK,
"power": MediaPlayerEntityFeature.TURN_OFF,
"poweron": MediaPlayerEntityFeature.TURN_ON,
"poweroff": MediaPlayerEntityFeature.TURN_OFF,
"mute": MediaPlayerEntityFeature.VOLUME_MUTE,
"volup": MediaPlayerEntityFeature.VOLUME_STEP,
"chup": MediaPlayerEntityFeature.NEXT_TRACK,
"chdown": MediaPlayerEntityFeature.PREVIOUS_TRACK,
}

View file

@ -3,10 +3,9 @@ from __future__ import annotations
from datetime import timedelta
from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity
from homeassistant.components.alarm_control_panel.const import (
SUPPORT_ALARM_ARM_AWAY,
SUPPORT_ALARM_ARM_HOME,
from homeassistant.components.alarm_control_panel import (
AlarmControlPanelEntity,
AlarmControlPanelEntityFeature,
)
from homeassistant.const import (
STATE_ALARM_ARMED_AWAY,
@ -45,6 +44,11 @@ def setup_platform(
class LupusecAlarm(LupusecDevice, AlarmControlPanelEntity):
"""An alarm_control_panel implementation for Lupusec."""
_attr_supported_features = (
AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_AWAY
)
@property
def icon(self):
"""Return the icon."""
@ -65,11 +69,6 @@ class LupusecAlarm(LupusecDevice, AlarmControlPanelEntity):
state = None
return state
@property
def supported_features(self) -> int:
"""Return the list of supported features."""
return SUPPORT_ALARM_ARM_HOME | SUPPORT_ALARM_ARM_AWAY
def alarm_arm_away(self, code=None):
"""Send arm away command."""
self._device.set_away()

View file

@ -5,10 +5,8 @@ import logging
from homeassistant.components.cover import (
ATTR_POSITION,
SUPPORT_CLOSE,
SUPPORT_OPEN,
SUPPORT_SET_POSITION,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -37,10 +35,11 @@ def setup_platform(
class LutronCover(LutronDevice, CoverEntity):
"""Representation of a Lutron shade."""
@property
def supported_features(self):
"""Flag supported features."""
return SUPPORT_OPEN | SUPPORT_CLOSE | SUPPORT_SET_POSITION
_attr_supported_features = (
CoverEntityFeature.OPEN
| CoverEntityFeature.CLOSE
| CoverEntityFeature.SET_POSITION
)
@property
def is_closed(self):

View file

@ -9,7 +9,11 @@ from aiolyric.objects.device import LyricDevice
from aiolyric.objects.location import LyricLocation
import voluptuous as vol
from homeassistant.components.climate import ClimateEntity, ClimateEntityDescription
from homeassistant.components.climate import (
ClimateEntity,
ClimateEntityDescription,
ClimateEntityFeature,
)
from homeassistant.components.climate.const import (
ATTR_TARGET_TEMP_HIGH,
ATTR_TARGET_TEMP_LOW,
@ -21,9 +25,6 @@ from homeassistant.components.climate.const import (
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_PRESET_MODE,
SUPPORT_TARGET_TEMPERATURE,
SUPPORT_TARGET_TEMPERATURE_RANGE,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE
@ -49,9 +50,14 @@ _LOGGER = logging.getLogger(__name__)
# Only LCC models support presets
SUPPORT_FLAGS_LCC = (
SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE | SUPPORT_TARGET_TEMPERATURE_RANGE
ClimateEntityFeature.TARGET_TEMPERATURE
| ClimateEntityFeature.PRESET_MODE
| ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
)
SUPPORT_FLAGS_TCC = (
ClimateEntityFeature.TARGET_TEMPERATURE
| ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
)
SUPPORT_FLAGS_TCC = SUPPORT_TARGET_TEMPERATURE | SUPPORT_TARGET_TEMPERATURE_RANGE
LYRIC_HVAC_ACTION_OFF = "EquipmentOff"
LYRIC_HVAC_ACTION_HEAT = "Heat"