|
15 | 15 | ) |
16 | 16 | from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature |
17 | 17 | from homeassistant.core import HomeAssistant |
| 18 | +from homeassistant.exceptions import ServiceValidationError |
18 | 19 | from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback |
19 | 20 |
|
| 21 | +from .const import DOMAIN |
20 | 22 | from .coordinator import ActronAirConfigEntry, ActronAirSystemCoordinator |
21 | 23 | from .entity import ActronAirAcEntity, ActronAirZoneEntity, actron_air_command |
22 | 24 |
|
@@ -139,20 +141,24 @@ def target_temperature(self) -> float: |
139 | 141 | @actron_air_command |
140 | 142 | async def async_set_fan_mode(self, fan_mode: str) -> None: |
141 | 143 | """Set a new fan mode.""" |
142 | | - api_fan_mode = FAN_MODE_MAPPING_HA_TO_ACTRONAIR.get(fan_mode) |
| 144 | + api_fan_mode = FAN_MODE_MAPPING_HA_TO_ACTRONAIR[fan_mode] |
143 | 145 | await self._status.user_aircon_settings.set_fan_mode(api_fan_mode) |
144 | 146 |
|
145 | 147 | @actron_air_command |
146 | 148 | async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: |
147 | 149 | """Set the HVAC mode.""" |
148 | | - ac_mode = HVAC_MODE_MAPPING_HA_TO_ACTRONAIR.get(hvac_mode) |
| 150 | + ac_mode = HVAC_MODE_MAPPING_HA_TO_ACTRONAIR[hvac_mode] |
149 | 151 | await self._status.ac_system.set_system_mode(ac_mode) |
150 | 152 |
|
151 | 153 | @actron_air_command |
152 | 154 | async def async_set_temperature(self, **kwargs: Any) -> None: |
153 | 155 | """Set the temperature.""" |
154 | | - temp = kwargs.get(ATTR_TEMPERATURE) |
155 | | - await self._status.user_aircon_settings.set_temperature(temperature=temp) |
| 156 | + if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: |
| 157 | + raise ServiceValidationError( |
| 158 | + translation_domain=DOMAIN, |
| 159 | + translation_key="temperature_missing", |
| 160 | + ) |
| 161 | + await self._status.user_aircon_settings.set_temperature(temperature=temperature) |
156 | 162 |
|
157 | 163 |
|
158 | 164 | class ActronZoneClimate(ActronAirZoneEntity, ActronAirClimateEntity): |
@@ -221,4 +227,9 @@ async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: |
221 | 227 | @actron_air_command |
222 | 228 | async def async_set_temperature(self, **kwargs: Any) -> None: |
223 | 229 | """Set the temperature.""" |
224 | | - await self._zone.set_temperature(temperature=kwargs.get(ATTR_TEMPERATURE)) |
| 230 | + if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: |
| 231 | + raise ServiceValidationError( |
| 232 | + translation_domain=DOMAIN, |
| 233 | + translation_key="temperature_missing", |
| 234 | + ) |
| 235 | + await self._zone.set_temperature(temperature=temperature) |
0 commit comments