Skip to content

Commit

Permalink
reenable the AC Sync State fonctionnality
Browse files Browse the repository at this point in the history
  • Loading branch information
bodyscape committed Dec 26, 2024
1 parent 7966138 commit cd29b5b
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 54 deletions.
69 changes: 40 additions & 29 deletions custom_components/cielo_home/cielohomedevice.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,30 +125,30 @@ def _send_power(self, value) -> None:
#
# self._send_msg(action, "", "", default_action="actionControl")

# def sync_ac_state(
# self, power: bool, temp: int, mode: str, fan_speed: str, swing: str, preset: str
# ) -> None:
# """None."""
# action = self._get_action()
# action = {
# "power": "on" if power else "off",
# "temp": temp
# if power and temp > 0
# else self._device["latestAction"]["temp"],
# "mode": mode
# if power and mode != ""
# else self._device["latestAction"]["mode"],
# "fanspeed": fan_speed
# if power and fan_speed != ""
# else self._device["latestAction"]["fanspeed"],
# "swing": swing
# if power and swing != ""
# else self._device["latestAction"]["swing"],
# "preset": preset
# if power and preset != ""
# else self._device["latestAction"]["turbo"],
# }
# self._send_msg(action, "", "", default_action="syncState")
def sync_ac_state(
self, power: bool, temp: int, mode: str, fan_speed: str, swing: str, preset: str
) -> None:
"""None."""
action = self._get_action()
action = {
"power": "on" if power else "off",
"temp": temp
if power and temp > 0
else self._device["latestAction"]["temp"],
"mode": mode
if power and mode != ""
else self._device["latestAction"]["mode"],
"fanspeed": fan_speed
if power and fan_speed != ""
else self._device["latestAction"]["fanspeed"],
"swing": swing
if power and swing != ""
else self._device["latestAction"]["swing"],
"preset": preset
if power and preset != ""
else self._device["latestAction"]["turbo"],
}
self._send_msg(action, "", "", default_action="syncState")

def send_light_on(self) -> None:
"""None."""
Expand Down Expand Up @@ -185,25 +185,36 @@ def _send_turbo(self, value) -> None:
action["turbo"] = value
self._device["latestAction"]["turbo"] = value

if self.get_device_type_version() != "BI03" or self.get_device_type_version() != "BI04":
if (
self.get_device_type_version() != "BI03"
or self.get_device_type_version() != "BI04"
):
value = "on/off"

self._send_msg(action, "turbo", value)

def _send_preset_mode(self, value: int) -> None:
"""None."""
if self._device["latestAction"]["mode"] == "auto" and self._device["latestAction"]["preset"] == value:
if (
self._device["latestAction"]["mode"] == "auto"
and self._device["latestAction"]["preset"] == value
):
return

action = self._get_action()
action["mode"] = "auto"
self._device["latestAction"]["mode"] = "auto"
self._device["latestAction"]["preset"] = value

self._send_msg(action, "mode", "auto", overrides={'preset': value})
self._send_msg(action, "mode", "auto", overrides={"preset": value})

def _send_msg(
self, action, action_type, action_value, default_action="actionControl", overrides=None
self,
action,
action_type,
action_value,
default_action="actionControl",
overrides=None,
) -> None:
msg = {
"action": default_action,
Expand Down Expand Up @@ -835,7 +846,7 @@ def get_breez_preset_modes(self) -> dict[str:int]:
with contextlib.suppress(KeyError):
presets = self._device["breezPresets"]
if presets:
result = {preset['title']: preset['presetId'] for preset in presets}
result = {preset["title"]: preset["presetId"] for preset in presets}
return {**{"": 0}, **result}
return []

Expand Down
47 changes: 23 additions & 24 deletions custom_components/cielo_home/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,18 @@ async def async_setup_entry(
SWING_POSITION6_VALUE,
]


# platform.async_register_entity_service(
# "sync_ac_state",
# {
# vol.Required("power", default=False): cv.boolean,
# vol.Optional("temp"): vol.Coerce(int),
# vol.Optional("mode"): vol.All(vol.In(HVAC_MODES)),
# vol.Optional("fan_speed"): vol.All(vol.In(list_fan_speed)),
# vol.Optional("swing"): vol.All(vol.In(list_swing)),
# vol.Optional("preset"): vol.All(vol.In(list_preset_mode)),
# },
# "async_sync_ac_state",
# )
platform.async_register_entity_service(
"sync_ac_state",
{
vol.Required("power", default=False): cv.boolean,
vol.Optional("temp"): vol.Coerce(int),
vol.Optional("mode"): vol.All(vol.In(HVAC_MODES)),
vol.Optional("fan_speed"): vol.All(vol.In(list_fan_speed)),
vol.Optional("swing"): vol.All(vol.In(list_swing)),
vol.Optional("preset"): vol.All(vol.In(list_preset_mode)),
},
"async_sync_ac_state",
)


class CieloHomeThermostat(CieloHomeEntity, ClimateEntity):
Expand Down Expand Up @@ -156,17 +155,17 @@ def set_temperature(self, **kwargs: Any) -> None:

self._update_internal_state()

# async def async_sync_ac_state(
# self,
# power: bool,
# temp: int = 0,
# mode: str = "",
# fan_speed: str = "",
# swing: str = "",
# preset: str = "",
# ) -> None:
# """Sync_ac_state."""
# self._device.sync_ac_state(power, temp, mode, fan_speed, swing, preset)
async def async_sync_ac_state(
self,
power: bool,
temp: int = 0,
mode: str = "",
fan_speed: str = "",
swing: str = "",
preset: str = "",
) -> None:
"""Sync_ac_state."""
self._device.sync_ac_state(power, temp, mode, fan_speed, swing, preset)

def set_swing_mode(self, swing_mode: str) -> None:
"""Set new target swing operation."""
Expand Down
2 changes: 1 addition & 1 deletion custom_components/cielo_home/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@
FOLLOW_ME_ON = "on"
FOLLOW_ME_OFF = "off"

DEVICE_BREEZ_MAX = "BREEZ-MAX"
DEVICE_BREEZ_MAX = "BREEZ-MAX"

0 comments on commit cd29b5b

Please sign in to comment.