From cdefa8fd7c28a75ec33d3e4203c96308a1773a16 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Tue, 9 Jan 2024 18:38:42 +0100 Subject: [PATCH] Remove deprecated services from Ezviz (#107582) --- homeassistant/components/ezviz/camera.py | 104 +------------------ homeassistant/components/ezviz/const.py | 3 - homeassistant/components/ezviz/services.yaml | 60 +---------- homeassistant/components/ezviz/strings.json | 69 ------------ 4 files changed, 2 insertions(+), 234 deletions(-) diff --git a/homeassistant/components/ezviz/camera.py b/homeassistant/components/ezviz/camera.py index e42968603e44a0..6397d8a27dc11d 100644 --- a/homeassistant/components/ezviz/camera.py +++ b/homeassistant/components/ezviz/camera.py @@ -4,7 +4,6 @@ import logging from pyezviz.exceptions import HTTPError, InvalidHost, PyEzvizError -import voluptuous as vol from homeassistant.components import ffmpeg from homeassistant.components.camera import Camera, CameraEntityFeature @@ -17,34 +16,19 @@ ) from homeassistant.const import CONF_IP_ADDRESS, CONF_PASSWORD, CONF_USERNAME from homeassistant.core import HomeAssistant -from homeassistant.helpers import ( - config_validation as cv, - discovery_flow, - issue_registry as ir, -) +from homeassistant.helpers import discovery_flow from homeassistant.helpers.entity_platform import ( AddEntitiesCallback, async_get_current_platform, ) from .const import ( - ATTR_DIRECTION, - ATTR_ENABLE, - ATTR_LEVEL, ATTR_SERIAL, - ATTR_SPEED, CONF_FFMPEG_ARGUMENTS, DATA_COORDINATOR, DEFAULT_CAMERA_USERNAME, DEFAULT_FFMPEG_ARGUMENTS, - DIR_DOWN, - DIR_LEFT, - DIR_RIGHT, - DIR_UP, DOMAIN, - SERVICE_ALARM_SOUND, - SERVICE_ALARM_TRIGGER, - SERVICE_PTZ, SERVICE_WAKE_DEVICE, ) from .coordinator import EzvizDataUpdateCoordinator @@ -126,35 +110,10 @@ async def async_setup_entry( platform = async_get_current_platform() - platform.async_register_entity_service( - SERVICE_PTZ, - { - vol.Required(ATTR_DIRECTION): vol.In( - [DIR_UP, DIR_DOWN, DIR_LEFT, DIR_RIGHT] - ), - vol.Required(ATTR_SPEED): cv.positive_int, - }, - "perform_ptz", - ) - - platform.async_register_entity_service( - SERVICE_ALARM_TRIGGER, - { - vol.Required(ATTR_ENABLE): cv.positive_int, - }, - "perform_sound_alarm", - ) - platform.async_register_entity_service( SERVICE_WAKE_DEVICE, {}, "perform_wake_device" ) - platform.async_register_entity_service( - SERVICE_ALARM_SOUND, - {vol.Required(ATTR_LEVEL): cv.positive_int}, - "perform_alarm_sound", - ) - class EzvizCamera(EzvizEntity, Camera): """An implementation of a EZVIZ security camera.""" @@ -251,70 +210,9 @@ async def stream_source(self) -> str | None: return self._rtsp_stream - def perform_ptz(self, direction: str, speed: int) -> None: - """Perform a PTZ action on the camera.""" - ir.async_create_issue( - self.hass, - DOMAIN, - "service_depreciation_ptz", - breaks_in_ha_version="2024.2.0", - is_fixable=True, - is_persistent=True, - severity=ir.IssueSeverity.WARNING, - translation_key="service_depreciation_ptz", - ) - - try: - self.coordinator.ezviz_client.ptz_control( - str(direction).upper(), self._serial, "START", speed - ) - self.coordinator.ezviz_client.ptz_control( - str(direction).upper(), self._serial, "STOP", speed - ) - - except HTTPError as err: - raise HTTPError("Cannot perform PTZ") from err - - def perform_sound_alarm(self, enable: int) -> None: - """Sound the alarm on a camera.""" - ir.async_create_issue( - self.hass, - DOMAIN, - "service_depreciation_sound_alarm", - breaks_in_ha_version="2024.3.0", - is_fixable=True, - is_persistent=True, - severity=ir.IssueSeverity.WARNING, - translation_key="service_depreciation_sound_alarm", - ) - - try: - self.coordinator.ezviz_client.sound_alarm(self._serial, enable) - except HTTPError as err: - raise HTTPError("Cannot sound alarm") from err - def perform_wake_device(self) -> None: """Basically wakes the camera by querying the device.""" try: self.coordinator.ezviz_client.get_detection_sensibility(self._serial) except (HTTPError, PyEzvizError) as err: raise PyEzvizError("Cannot wake device") from err - - def perform_alarm_sound(self, level: int) -> None: - """Enable/Disable movement sound alarm.""" - ir.async_create_issue( - self.hass, - DOMAIN, - "service_deprecation_alarm_sound_level", - breaks_in_ha_version="2024.2.0", - is_fixable=True, - is_persistent=True, - severity=ir.IssueSeverity.WARNING, - translation_key="service_deprecation_alarm_sound_level", - ) - try: - self.coordinator.ezviz_client.alarm_sound(self._serial, level, 1) - except HTTPError as err: - raise HTTPError( - "Cannot set alarm sound level for on movement detected" - ) from err diff --git a/homeassistant/components/ezviz/const.py b/homeassistant/components/ezviz/const.py index c28d84552d6fa2..651110dd5d7a4f 100644 --- a/homeassistant/components/ezviz/const.py +++ b/homeassistant/components/ezviz/const.py @@ -24,10 +24,7 @@ ATTR_TYPE = "type_value" # Service names -SERVICE_PTZ = "ptz" -SERVICE_ALARM_TRIGGER = "sound_alarm" SERVICE_WAKE_DEVICE = "wake_device" -SERVICE_ALARM_SOUND = "alarm_sound" SERVICE_DETECTION_SENSITIVITY = "set_alarm_detection_sensibility" # Defaults diff --git a/homeassistant/components/ezviz/services.yaml b/homeassistant/components/ezviz/services.yaml index 7d1cda2fa637a1..756a0fc67efc07 100644 --- a/homeassistant/components/ezviz/services.yaml +++ b/homeassistant/components/ezviz/services.yaml @@ -1,46 +1,3 @@ -alarm_sound: - target: - entity: - integration: ezviz - domain: camera - fields: - level: - required: true - example: 0 - default: 0 - selector: - number: - min: 0 - max: 2 - step: 1 - mode: box -ptz: - target: - entity: - integration: ezviz - domain: camera - fields: - direction: - required: true - example: "up" - default: "up" - selector: - select: - options: - - "up" - - "down" - - "left" - - "right" - speed: - required: true - example: 5 - default: 5 - selector: - number: - min: 1 - max: 9 - step: 1 - mode: box set_alarm_detection_sensibility: target: entity: @@ -66,22 +23,7 @@ set_alarm_detection_sensibility: options: - "0" - "3" -sound_alarm: - target: - entity: - integration: ezviz - domain: camera - fields: - enable: - required: true - example: 1 - default: 1 - selector: - number: - min: 1 - max: 2 - step: 1 - mode: box + wake_device: target: entity: diff --git a/homeassistant/components/ezviz/strings.json b/homeassistant/components/ezviz/strings.json index 11ec31fee4adec..58ac9dfde090b4 100644 --- a/homeassistant/components/ezviz/strings.json +++ b/homeassistant/components/ezviz/strings.json @@ -59,41 +59,6 @@ } } }, - "issues": { - "service_deprecation_alarm_sound_level": { - "title": "Ezviz Alarm sound level service is being removed", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::ezviz::issues::service_deprecation_alarm_sound_level::title%]", - "description": "Ezviz Alarm sound level service is deprecated and will be removed.\nTo set the Alarm sound level, you can instead use the `select.select_option` service targetting the Warning sound entity.\n\nPlease remove this service from your automations and scripts and select **submit** to close this issue." - } - } - } - }, - "service_depreciation_ptz": { - "title": "EZVIZ PTZ service is being removed", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::ezviz::issues::service_depreciation_ptz::title%]", - "description": "EZVIZ PTZ service is deprecated and will be removed.\nTo move the camera, you can instead use the `button.press` service targetting the PTZ* entities.\n\nPlease remove the use of this service from your automations and scripts and select **submit** to close this issue." - } - } - } - }, - "service_depreciation_sound_alarm": { - "title": "Ezviz Sound alarm service is being removed", - "fix_flow": { - "step": { - "confirm": { - "title": "[%key:component::ezviz::issues::service_depreciation_sound_alarm::title%]", - "description": "Ezviz Sound alarm service is deprecated and will be removed.\nTo sound the alarm, you can instead use the `siren.toggle` service targeting the Siren entity.\n\nPlease remove the use of this service from your automations and scripts and select **submit** to fix this issue." - } - } - } - } - }, "entity": { "select": { "alarm_sound_mode": { @@ -219,30 +184,6 @@ } }, "services": { - "alarm_sound": { - "name": "Set warning sound level.", - "description": "Setx movement warning sound level.", - "fields": { - "level": { - "name": "Sound level", - "description": "Sound level (2 is disabled, 1 intensive, 0 soft)." - } - } - }, - "ptz": { - "name": "PTZ", - "description": "Moves the camera to the direction, with defined speed.", - "fields": { - "direction": { - "name": "Direction", - "description": "Direction to move camera (up, down, left, right)." - }, - "speed": { - "name": "Speed", - "description": "Speed of movement (from 1 to 9)." - } - } - }, "set_alarm_detection_sensibility": { "name": "Detection sensitivity", "description": "Sets the detection sensibility level.", @@ -257,16 +198,6 @@ } } }, - "sound_alarm": { - "name": "Sound alarm", - "description": "Sounds the alarm on your camera.", - "fields": { - "enable": { - "name": "Alarm sound", - "description": "Enter 1 or 2 (1=disable, 2=enable)." - } - } - }, "wake_device": { "name": "Wake camera", "description": "This can be used to wake the camera/device from hibernation."