Skip to content

Commit 124db3a

Browse files
committed
2 parents 730906a + 13ad911 commit 124db3a

File tree

2 files changed

+31
-11
lines changed

2 files changed

+31
-11
lines changed

.github/workflows/tests.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ jobs:
3434
tests
3535
- name: Upload coverage reports to Codecov with GitHub Action
3636
uses: codecov/codecov-action@v4
37+
if: always()
3738
with:
3839
token: ${{ secrets.CODECOV_TOKEN }}
3940
slug: jwillemsen/daikin_onecta

custom_components/daikin_onecta/climate.py

+30-11
Original file line numberDiff line numberDiff line change
@@ -781,23 +781,42 @@ def get_preset_modes(self):
781781

782782
async def async_turn_on(self):
783783
"""Turn device CLIMATE on."""
784+
_LOGGER.debug("Device '%s' request to turn on", self._device.name)
784785
cc = self.climate_control()
785-
result = await self._device.set_path(self._device.getId(), self.embedded_id, "onOffMode", "", "on")
786-
if result is False:
787-
_LOGGER.warning("Device '%s' problem setting onOffMode to on", self._device.name)
786+
result = True
787+
if cc["onOffMode"]["value"] == "off":
788+
result &= await self._device.set_path(self._device.getId(), self.embedded_id, "onOffMode", "", "on")
789+
if result is False:
790+
_LOGGER.error("Device '%s' problem setting onOffMode to on", self._device.name)
791+
else:
792+
cc["onOffMode"]["value"] = "on"
793+
self._attr_hvac_mode = self.get_hvac_mode()
794+
self.async_write_ha_state()
788795
else:
789-
cc["onOffMode"]["value"] = "on"
790-
self._attr_hvac_mode = self.get_hvac_mode()
791-
self.async_write_ha_state()
796+
_LOGGER.debug(
797+
"Device '%s' request to turn on ignored because device is already on",
798+
self._device.name,
799+
)
800+
792801
return result
793802

794803
async def async_turn_off(self):
795-
result = await self._device.set_path(self._device.getId(), self.embedded_id, "onOffMode", "", "off")
796-
if result is False:
797-
_LOGGER.warning("Device '%s' problem setting onOffMode to off", self._device.name)
804+
_LOGGER.debug("Device '%s' request to turn off", self._device.name)
805+
cc = self.climate_control()
806+
result = True
807+
if cc["onOffMode"]["value"] == "on":
808+
result &= await self._device.set_path(self._device.getId(), self.embedded_id, "onOffMode", "", "off")
809+
if result is False:
810+
_LOGGER.error("Device '%s' problem setting onOffMode to off", self._device.name)
811+
else:
812+
cc["onOffMode"]["value"] = "off"
813+
self._attr_hvac_mode = self.get_hvac_mode()
814+
self.async_write_ha_state()
798815
else:
799-
self._attr_hvac_mode = HVACMode.OFF
800-
self.async_write_ha_state()
816+
_LOGGER.debug(
817+
"Device '%s' request to turn off ignored because device is already off",
818+
self._device.name,
819+
)
801820

802821
return result
803822

0 commit comments

Comments
 (0)