From 23bed623e2de2ff635bab0a91ae4000fc2541771 Mon Sep 17 00:00:00 2001 From: xZetsubou Date: Tue, 4 Jun 2024 06:11:26 +0300 Subject: [PATCH] Adjust "wk" category add "ECO" as switch #257 --- .../localtuya/core/ha_entities/base.py | 2 ++ .../localtuya/core/ha_entities/climates.py | 9 +++++--- .../localtuya/core/ha_entities/switches.py | 22 ++++++++++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/custom_components/localtuya/core/ha_entities/base.py b/custom_components/localtuya/core/ha_entities/base.py index 2dcc4fd0..01ecd572 100644 --- a/custom_components/localtuya/core/ha_entities/base.py +++ b/custom_components/localtuya/core/ha_entities/base.py @@ -251,6 +251,7 @@ class DPCode(StrEnum): DOWN_CONFIRM = "down_confirm" # cover reset. DO_NOT_DISTURB = "do_not_disturb" DUSTER_CLOTH = "duster_cloth" + ECO = "eco" ECO2 = "eco2" EDGE_BRUSH = "edge_brush" ELECTRICITY_LEFT = "electricity_left" @@ -579,6 +580,7 @@ class DPCode(StrEnum): SWITCH_WELCOME = "switch_welcome" SYNC_REQUEST = "sync_request" SYNC_RESPONSE = "sync_response" + SYSTEMMODE = "systemmode" TBD = "tbd" TEMP = "temp" # Temperature setting TEMPACTIVATE = "tempactivate" diff --git a/custom_components/localtuya/core/ha_entities/climates.py b/custom_components/localtuya/core/ha_entities/climates.py index 2dcb295d..a8436ba4 100644 --- a/custom_components/localtuya/core/ha_entities/climates.py +++ b/custom_components/localtuya/core/ha_entities/climates.py @@ -106,6 +106,9 @@ def localtuya_climate( "wind": HVACMode.FAN_ONLY, "fan": HVACMode.FAN_ONLY, "off": HVACMode.OFF, + "0": HVACMode.COOL, + "1": HVACMode.HEAT, + "2": HVACMode.FAN_ONLY, } MAP_CLIMATE_ACTIONS = { "heating": HVACAction.HEATING, @@ -127,7 +130,7 @@ def localtuya_climate( DPCode.TEMP_CURRENT_F, DPCode.TEMPCURRENT, ), - hvac_mode_dp=DPCode.MODE, + hvac_mode_dp=(DPCode.SYSTEMMODE, DPCode.MODE), hvac_action_dp=(DPCode.WORK_MODE, DPCode.WORK_STATUS, DPCode.WORK_STATE), preset_dp=DPCode.MODE, fan_speed_dp=(DPCode.FAN_SPEED_ENUM, DPCode.WINDSPEED), @@ -217,7 +220,7 @@ def localtuya_climate( DPCode.TEMP_CURRENT_F, DPCode.TEMPCURRENT, ), - hvac_mode_dp=(DPCode.SWITCH, DPCode.MODE), + hvac_mode_dp=(DPCode.SYSTEMMODE, DPCode.SWITCH, DPCode.MODE), hvac_action_dp=(DPCode.WORK_STATE, DPCode.WORK_MODE, DPCode.WORK_STATUS), preset_dp=DPCode.MODE, fan_speed_dp=(DPCode.FAN_SPEED_ENUM, DPCode.WINDSPEED, DPCode.SPEED), @@ -245,7 +248,7 @@ def localtuya_climate( DPCode.TEMP_CURRENT_F, DPCode.TEMPCURRENT, ), - hvac_mode_dp=DPCode.MODE, + hvac_mode_dp=(DPCode.SYSTEMMODE, DPCode.MODE), hvac_action_dp=(DPCode.WORK_STATE, DPCode.WORK_MODE, DPCode.WORK_STATUS), preset_dp=DPCode.MODE, fan_speed_dp=(DPCode.FAN_SPEED_ENUM, DPCode.WINDSPEED, DPCode.SPEED), diff --git a/custom_components/localtuya/core/ha_entities/switches.py b/custom_components/localtuya/core/ha_entities/switches.py index c99dc133..e53aaec1 100644 --- a/custom_components/localtuya/core/ha_entities/switches.py +++ b/custom_components/localtuya/core/ha_entities/switches.py @@ -925,6 +925,22 @@ entity_category=EntityCategory.CONFIG, ), ), + # Thermostat + # https://developer.tuya.com/en/docs/iot/f?id=K9gf45ld5l0t9 + "wk": ( + LocalTuyaEntity( + id=DPCode.CHILD_LOCK, + name="Child Lock", + icon="mdi:account-lock", + entity_category=EntityCategory.CONFIG, + ), + LocalTuyaEntity( + id=DPCode.ECO, + name="ECO", + icon="mdi:sprout", + entity_category=EntityCategory.CONFIG, + ), + ), } # Scene Switch @@ -939,7 +955,11 @@ # https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s SWITCHES["cz"] = SWITCHES["pc"] -SWITCHES["wk"] = CHILD_LOCK +# Climates / heaters +SWITCHES["wkf"] = SWITCHES["wk"] +SWITCHES["rs"] = SWITCHES["wk"] +SWITCHES["qn"] = SWITCHES["wk"] +SWITCHES["kt"] = SWITCHES["wk"] # Dehumidifier # https://developer.tuya.com/en/docs/iot/categorycs?id=Kaiuz1vcz4dha