Raise errors on interactive entity actions when suspended

This commit is contained in:
Ville Skyttä
2025-05-04 13:18:54 +03:00
parent 28f9d46f2e
commit 6f3a1344b3
3 changed files with 10 additions and 4 deletions

View File

@ -14,6 +14,7 @@ from homeassistant.components.button import (
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers import entity_platform from homeassistant.helpers import entity_platform
from .const import DOMAIN from .const import DOMAIN
@ -50,10 +51,7 @@ class BaseButton(HuaweiLteBaseInteractiveEntity, ButtonEntity):
def press(self) -> None: def press(self) -> None:
"""Press button.""" """Press button."""
if self.router.suspended: if self.router.suspended:
_LOGGER.debug( raise ServiceValidationError("Integration is suspended")
"%s: ignored, integration suspended", self.entity_description.key
)
return
result = self._press() result = self._press()
_LOGGER.debug("%s: %s", self.entity_description.key, result) _LOGGER.debug("%s: %s", self.entity_description.key, result)

View File

@ -17,6 +17,7 @@ from homeassistant.components.select import (
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import UNDEFINED from homeassistant.helpers.typing import UNDEFINED
@ -102,6 +103,8 @@ class HuaweiLteSelectEntity(HuaweiLteBaseInteractiveEntity, SelectEntity):
def select_option(self, option: str) -> None: def select_option(self, option: str) -> None:
"""Change the selected option.""" """Change the selected option."""
if self.router.suspended:
raise ServiceValidationError("Integration is suspended")
self.entity_description.setter_fn(option) self.entity_description.setter_fn(option)
@property @property

View File

@ -12,6 +12,7 @@ from homeassistant.components.switch import (
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
@ -57,10 +58,14 @@ class HuaweiLteBaseSwitch(HuaweiLteBaseInteractiveEntity, SwitchEntity):
def turn_on(self, **kwargs: Any) -> None: def turn_on(self, **kwargs: Any) -> None:
"""Turn switch on.""" """Turn switch on."""
if self.router.suspended:
raise ServiceValidationError("Integration is suspended")
self._turn(state=True) self._turn(state=True)
def turn_off(self, **kwargs: Any) -> None: def turn_off(self, **kwargs: Any) -> None:
"""Turn switch off.""" """Turn switch off."""
if self.router.suspended:
raise ServiceValidationError("Integration is suspended")
self._turn(state=False) self._turn(state=False)
async def async_added_to_hass(self) -> None: async def async_added_to_hass(self) -> None: