Skip to content

Commit e4f5d12

Browse files
Merge pull request #137 from jensihnow/fix/fan-bridge-error-handling
fan: handle bridge errors as HomeAssistantError
2 parents d24a219 + e4d83a1 commit e4f5d12

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

  • custom_components/comfoconnect

custom_components/comfoconnect/fan.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from typing import Any
77

88
from aiocomfoconnect.const import VentilationMode, VentilationSpeed
9+
from aiocomfoconnect.exceptions import ComfoConnectNotConnected, ComfoConnectRmiError
910
from aiocomfoconnect.sensors import (
1011
SENSOR_FAN_SPEED_MODE,
1112
SENSOR_OPERATING_MODE,
@@ -14,6 +15,7 @@
1415
from homeassistant.components.fan import FanEntity, FanEntityFeature
1516
from homeassistant.config_entries import ConfigEntry
1617
from homeassistant.core import HomeAssistant
18+
from homeassistant.exceptions import HomeAssistantError
1719
from homeassistant.helpers.dispatcher import async_dispatcher_connect
1820
from homeassistant.helpers.entity import DeviceInfo
1921
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@@ -145,12 +147,22 @@ async def async_set_percentage(self, percentage: int) -> None:
145147
else:
146148
speed = percentage_to_ordered_list_item(FAN_SPEEDS, percentage)
147149

148-
await self._ccb.set_speed(speed)
150+
try:
151+
await self._ccb.set_speed(speed)
152+
except ComfoConnectNotConnected as err:
153+
raise HomeAssistantError(f"Not connected to ComfoConnect bridge: {err}") from err
154+
except ComfoConnectRmiError as err:
155+
raise HomeAssistantError(f"Failed to set fan speed: {err}") from err
149156

150157
async def async_set_preset_mode(self, preset_mode: str) -> None:
151158
"""Set new preset mode."""
152159
if preset_mode not in self.preset_modes:
153160
raise ValueError(f"Invalid preset mode: {preset_mode}")
154161

155162
_LOGGER.debug("Changing preset mode to %s", preset_mode)
156-
await self._ccb.set_mode(preset_mode)
163+
try:
164+
await self._ccb.set_mode(preset_mode)
165+
except ComfoConnectNotConnected as err:
166+
raise HomeAssistantError(f"Not connected to ComfoConnect bridge: {err}") from err
167+
except ComfoConnectRmiError as err:
168+
raise HomeAssistantError(f"Failed to set preset mode: {err}") from err

0 commit comments

Comments
 (0)