Skip to content

Commit

Permalink
Merge pull request #34 from MoFtZ/feature/turn_on
Browse files Browse the repository at this point in the history
Add support for ClimateEntityFeature.TURN_ON
  • Loading branch information
boc-the-git authored Sep 29, 2024
2 parents 7357cd5 + 1c339ea commit c73a49d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
14 changes: 9 additions & 5 deletions custom_components/bonaire_myclimate/BonairePyClimate/hub.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def __init__(self, hass, local_ip):
self.hvac_modes = None
self.preset_mode = None
self.preset_modes = None
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON
self.target_temperature = None

self._start_task = self._hass.loop.create_task(self.async_start())
Expand Down Expand Up @@ -206,28 +206,28 @@ def server_data_received(self, data):
self.preset_modes = self._preset_modes_heat
else:
self.preset_modes = self._preset_modes_cool
self.supported_features = ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF
self.supported_features = ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON
elif self._zone_info["type"] == "heat":
self._fan_mode_memory_heat = self._zone_info["mode"]
self.fan_mode = self._zone_info["mode"]
self.fan_modes = FAN_MODES_HEAT
self.hvac_mode = HVACMode.HEAT
self.preset_modes = self._preset_modes_heat
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON
self.target_temperature = int(self._zone_info["setPoint"])
elif self._zone_info["type"] == "cool":
self.fan_mode = self._zone_info["mode"]
self.fan_modes = FAN_MODES_COOL
self.hvac_mode = HVACMode.COOL
self.preset_modes = self._preset_modes_cool
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF
self.supported_features = ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON
self.target_temperature = int(self._zone_info["setPoint"])
elif self._zone_info["type"] == "evap":
self.fan_mode = self._zone_info["fanSpeed"]
self.fan_modes = FAN_MODES_EVAP
self.hvac_mode = HVACMode.COOL
self.preset_modes = self._preset_modes_evap
self.supported_features = ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF
self.supported_features = ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE | ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON

self.current_temperature = int(self._zone_info["roomTemp"])
self.preset_mode = self._zone_info["zoneList"]
Expand Down Expand Up @@ -298,6 +298,10 @@ async def async_set_hvac_mode(self, hvac_mode):

await self.async_send_commands(commands)

async def async_turn_on(self) -> None:
command = {"system": "on"}
await self.async_send_commands(command)

async def async_turn_off(self) -> None:
await self.async_set_hvac_mode(HVACMode.OFF)

Expand Down
3 changes: 3 additions & 0 deletions custom_components/bonaire_myclimate/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@ async def async_set_hvac_mode(self, hvac_mode):
"""Set new target hvac mode."""
await self._hub.async_set_hvac_mode(hvac_mode)

async def async_turn_on(self) -> None:
await self._hub.async_turn_on()

async def async_turn_off(self) -> None:
await self._hub.async_turn_off()

Expand Down

0 comments on commit c73a49d

Please sign in to comment.