Skip to content

Commit a6a3ee6

Browse files
ClimateEntityFeature enum compatibility
1 parent 217dfd0 commit a6a3ee6

File tree

3 files changed

+24
-25
lines changed

3 files changed

+24
-25
lines changed

custom_components/smartir/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
_LOGGER = logging.getLogger(__name__)
2020

2121
DOMAIN = 'smartir'
22-
VERSION = '1.17.9'
22+
VERSION = '1.17.10'
2323
MANIFEST_URL = (
2424
"https://raw.githubusercontent.com/"
2525
"smartHomeHub/SmartIR/{}/"

custom_components/smartir/climate.py

+19-20
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77

88
from homeassistant.components.climate import ClimateEntity, PLATFORM_SCHEMA
99
from homeassistant.components.climate.const import (
10-
HVAC_MODE_OFF, HVAC_MODE_HEAT, HVAC_MODE_COOL,
11-
HVAC_MODE_DRY, HVAC_MODE_FAN_ONLY, HVAC_MODE_AUTO,
12-
SUPPORT_TARGET_TEMPERATURE, SUPPORT_FAN_MODE,
13-
SUPPORT_SWING_MODE, HVAC_MODES, ATTR_HVAC_MODE)
10+
ClimateEntityFeature, HVACMode, HVAC_MODES, ATTR_HVAC_MODE)
1411
from homeassistant.const import (
1512
CONF_NAME, STATE_ON, STATE_OFF, STATE_UNKNOWN, STATE_UNAVAILABLE, ATTR_TEMPERATURE,
1613
PRECISION_TENTHS, PRECISION_HALVES, PRECISION_WHOLE)
@@ -36,8 +33,10 @@
3633
CONF_POWER_SENSOR_RESTORE_STATE = 'power_sensor_restore_state'
3734

3835
SUPPORT_FLAGS = (
39-
SUPPORT_TARGET_TEMPERATURE |
40-
SUPPORT_FAN_MODE
36+
ClimateEntityFeature.TURN_OFF |
37+
ClimateEntityFeature.TURN_ON |
38+
ClimateEntityFeature.TARGET_TEMPERATURE |
39+
ClimateEntityFeature.FAN_MODE
4140
)
4241

4342
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
@@ -119,13 +118,13 @@ def __init__(self, hass, config, device_data):
119118

120119
valid_hvac_modes = [x for x in device_data['operationModes'] if x in HVAC_MODES]
121120

122-
self._operation_modes = [HVAC_MODE_OFF] + valid_hvac_modes
121+
self._operation_modes = [HVACMode.OFF] + valid_hvac_modes
123122
self._fan_modes = device_data['fanModes']
124123
self._swing_modes = device_data.get('swingModes')
125124
self._commands = device_data['commands']
126125

127126
self._target_temperature = self._min_temperature
128-
self._hvac_mode = HVAC_MODE_OFF
127+
self._hvac_mode = HVACMode.OFF
129128
self._current_fan_mode = self._fan_modes[0]
130129
self._current_swing_mode = None
131130
self._last_on_operation = None
@@ -140,7 +139,7 @@ def __init__(self, hass, config, device_data):
140139
self._support_swing = False
141140

142141
if self._swing_modes:
143-
self._support_flags = self._support_flags | SUPPORT_SWING_MODE
142+
self._support_flags = self._support_flags | ClimateEntityFeature.SWING_MODE
144143
self._current_swing_mode = self._swing_modes[0]
145144
self._support_swing = True
146145

@@ -204,9 +203,9 @@ def name(self):
204203
@property
205204
def state(self):
206205
"""Return the current state."""
207-
if self.hvac_mode != HVAC_MODE_OFF:
206+
if self.hvac_mode != HVACMode.OFF:
208207
return self.hvac_mode
209-
return HVAC_MODE_OFF
208+
return HVACMode.OFF
210209

211210
@property
212211
def temperature_unit(self):
@@ -316,7 +315,7 @@ async def async_set_temperature(self, **kwargs):
316315
await self.async_set_hvac_mode(hvac_mode)
317316
return
318317

319-
if not self._hvac_mode.lower() == HVAC_MODE_OFF:
318+
if not self._hvac_mode.lower() == HVACMode.OFF:
320319
await self.send_command()
321320

322321
self.async_write_ha_state()
@@ -325,7 +324,7 @@ async def async_set_hvac_mode(self, hvac_mode):
325324
"""Set operation mode."""
326325
self._hvac_mode = hvac_mode
327326

328-
if not hvac_mode == HVAC_MODE_OFF:
327+
if not hvac_mode == HVACMode.OFF:
329328
self._last_on_operation = hvac_mode
330329

331330
await self.send_command()
@@ -335,21 +334,21 @@ async def async_set_fan_mode(self, fan_mode):
335334
"""Set fan mode."""
336335
self._current_fan_mode = fan_mode
337336

338-
if not self._hvac_mode.lower() == HVAC_MODE_OFF:
337+
if not self._hvac_mode.lower() == HVACMode.OFF:
339338
await self.send_command()
340339
self.async_write_ha_state()
341340

342341
async def async_set_swing_mode(self, swing_mode):
343342
"""Set swing mode."""
344343
self._current_swing_mode = swing_mode
345344

346-
if not self._hvac_mode.lower() == HVAC_MODE_OFF:
345+
if not self._hvac_mode.lower() == HVACMode.OFF:
347346
await self.send_command()
348347
self.async_write_ha_state()
349348

350349
async def async_turn_off(self):
351350
"""Turn off."""
352-
await self.async_set_hvac_mode(HVAC_MODE_OFF)
351+
await self.async_set_hvac_mode(HVACMode.OFF)
353352

354353
async def async_turn_on(self):
355354
"""Turn on."""
@@ -367,7 +366,7 @@ async def send_command(self):
367366
swing_mode = self._current_swing_mode
368367
target_temperature = '{0:g}'.format(self._target_temperature)
369368

370-
if operation_mode.lower() == HVAC_MODE_OFF:
369+
if operation_mode.lower() == HVACMode.OFF:
371370
await self._controller.send(self._commands['off'])
372371
return
373372

@@ -409,7 +408,7 @@ async def _async_power_sensor_changed(self, entity_id, old_state, new_state):
409408
if old_state is not None and new_state.state == old_state.state:
410409
return
411410

412-
if new_state.state == STATE_ON and self._hvac_mode == HVAC_MODE_OFF:
411+
if new_state.state == STATE_ON and self._hvac_mode == HVACMode.OFF:
413412
self._on_by_remote = True
414413
if self._power_sensor_restore_state == True and self._last_on_operation is not None:
415414
self._hvac_mode = self._last_on_operation
@@ -420,8 +419,8 @@ async def _async_power_sensor_changed(self, entity_id, old_state, new_state):
420419

421420
if new_state.state == STATE_OFF:
422421
self._on_by_remote = False
423-
if self._hvac_mode != HVAC_MODE_OFF:
424-
self._hvac_mode = HVAC_MODE_OFF
422+
if self._hvac_mode != HVACMode.OFF:
423+
self._hvac_mode = HVACMode.OFF
425424
self.async_write_ha_state()
426425

427426
@callback

custom_components/smartir/manifest.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
"dependencies": [],
66
"codeowners": ["@smartHomeHub"],
77
"requirements": ["aiofiles>=0.6.0"],
8-
"homeassistant": "2023.12.0",
9-
"version": "1.17.9",
8+
"homeassistant": "2024.10.0",
9+
"version": "1.17.10",
1010
"updater": {
11-
"version": "1.17.9",
12-
"releaseNotes": "-- Fix Fan.async_turn_on() #1170",
11+
"version": "1.17.10",
12+
"releaseNotes": "-- ClimateEntityFeature enum compatibility",
1313
"files": [
1414
"__init__.py",
1515
"climate.py",

0 commit comments

Comments
 (0)