| 
4 | 4 | 
 
  | 
5 | 5 | from eheimdigital.device import EheimDigitalDevice  | 
6 | 6 | from eheimdigital.heater import EheimDigitalHeater  | 
7 |  | -from eheimdigital.types import EheimDigitalClientError, HeaterMode, HeaterUnit  | 
 | 7 | +from eheimdigital.types import HeaterMode, HeaterUnit  | 
8 | 8 | 
 
  | 
9 | 9 | from homeassistant.components.climate import (  | 
10 | 10 |  PRESET_NONE,  | 
 | 
20 | 20 |  UnitOfTemperature,  | 
21 | 21 | )  | 
22 | 22 | from homeassistant.core import HomeAssistant  | 
23 |  | -from homeassistant.exceptions import HomeAssistantError  | 
24 | 23 | from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback  | 
25 | 24 | 
 
  | 
26 | 25 | from .const import HEATER_BIO_MODE, HEATER_PRESET_TO_HEATER_MODE, HEATER_SMART_MODE  | 
27 | 26 | from .coordinator import EheimDigitalConfigEntry, EheimDigitalUpdateCoordinator  | 
28 |  | -from .entity import EheimDigitalEntity  | 
 | 27 | +from .entity import EheimDigitalEntity, exception_handler  | 
29 | 28 | 
 
  | 
30 | 29 | # Coordinator is used to centralize the data updates  | 
31 | 30 | PARALLEL_UPDATES = 0  | 
@@ -83,34 +82,28 @@ def __init__(  | 
83 | 82 |  self._attr_unique_id = self._device_address  | 
84 | 83 |  self._async_update_attrs()  | 
85 | 84 | 
 
  | 
 | 85 | + @exception_handler  | 
86 | 86 |  async def async_set_preset_mode(self, preset_mode: str) -> None:  | 
87 | 87 |  """Set the preset mode."""  | 
88 |  | - try:  | 
89 |  | - if preset_mode in HEATER_PRESET_TO_HEATER_MODE:  | 
90 |  | - await self._device.set_operation_mode(  | 
91 |  | - HEATER_PRESET_TO_HEATER_MODE[preset_mode]  | 
92 |  | - )  | 
93 |  | - except EheimDigitalClientError as err:  | 
94 |  | - raise HomeAssistantError from err  | 
 | 88 | + if preset_mode in HEATER_PRESET_TO_HEATER_MODE:  | 
 | 89 | + await self._device.set_operation_mode(  | 
 | 90 | + HEATER_PRESET_TO_HEATER_MODE[preset_mode]  | 
 | 91 | + )  | 
95 | 92 | 
 
  | 
 | 93 | + @exception_handler  | 
96 | 94 |  async def async_set_temperature(self, **kwargs: Any) -> None:  | 
97 | 95 |  """Set a new temperature."""  | 
98 |  | - try:  | 
99 |  | - if ATTR_TEMPERATURE in kwargs:  | 
100 |  | - await self._device.set_target_temperature(kwargs[ATTR_TEMPERATURE])  | 
101 |  | - except EheimDigitalClientError as err:  | 
102 |  | - raise HomeAssistantError from err  | 
 | 96 | + if ATTR_TEMPERATURE in kwargs:  | 
 | 97 | + await self._device.set_target_temperature(kwargs[ATTR_TEMPERATURE])  | 
103 | 98 | 
 
  | 
 | 99 | + @exception_handler  | 
104 | 100 |  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:  | 
105 | 101 |  """Set the heating mode."""  | 
106 |  | - try:  | 
107 |  | - match hvac_mode:  | 
108 |  | - case HVACMode.OFF:  | 
109 |  | - await self._device.set_active(active=False)  | 
110 |  | - case HVACMode.AUTO:  | 
111 |  | - await self._device.set_active(active=True)  | 
112 |  | - except EheimDigitalClientError as err:  | 
113 |  | - raise HomeAssistantError from err  | 
 | 102 | + match hvac_mode:  | 
 | 103 | + case HVACMode.OFF:  | 
 | 104 | + await self._device.set_active(active=False)  | 
 | 105 | + case HVACMode.AUTO:  | 
 | 106 | + await self._device.set_active(active=True)  | 
114 | 107 | 
 
  | 
115 | 108 |  def _async_update_attrs(self) -> None:  | 
116 | 109 |  if self._device.temperature_unit == HeaterUnit.CELSIUS:  | 
 | 
0 commit comments