make-all / tuya-local

Local support for Tuya devices in Home Assistant
MIT License
1.22k stars 489 forks source link

Request support for INVENTOR AC (Tokens Legend Series (AE_pro) & Neo) #1513

Closed arhimidis64 closed 5 months ago

arhimidis64 commented 8 months ago

Log Message

Please paste logs here

Logger: custom_components.tuya_local.config_flow
Source: custom_components/tuya_local/config_flow.py:97
Integration: tuya_local ([documentation](https://github.com/make-all/tuya-local), [issues](https://github.com/make-all/tuya-local/issues))
First occurred: 14:44:23 (2 occurrences)
Last logged: 14:57:19

Device matches feit_dimmer with quality of 24%. DPS: {"updated_at": 1704977053.703446, "1": false, "2": 270, "3": 160, "4": "hot", "19": "c", "22": 0, "27": false, "30": false, "33": false, "37": false, "101": false, "102": 500, "104": false, "106": false, "107": "cancel", "108": 100, "109": false}
Device matches feit_dimmer with quality of 24%. DPS: {"updated_at": 1704977834.102816, "1": false, "2": 270, "3": 160, "4": "hot", "19": "c", "22": 0, "27": false, "30": false, "33": false, "37": false, "101": false, "102": 500, "104": false, "106": false, "107": "cancel", "108": 100, "109": false}

Information about DPS mappings

Please paste the output here.

{
  "result": {
    "model": "{\"modelId\":\"0000035o63\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[
{\"abilityId\":1,\"accessMode\":\"rw\",\"code\":\"switch\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power3\"},\"name\":\"开关\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":2,\"accessMode\":\"rw\",\"code\":\"temp_set\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_temp\"},\"name\":\"温度设置\",\"typeSpec\":{\"max\":300,\"min\":160,\"scale\":1,\"step\":5,\"type\":\"value\",\"typeDefaultValue\":160,\"unit\":\"℃\"}},
{\"abilityId\":3,\"accessMode\":\"ro\",\"code\":\"temp_current\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_temp\"},\"name\":\"室内温度\",\"typeSpec\":{\"max\":500,\"min\":0,\"scale\":1,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":0,\"unit\":\"℃\"}},
{\"abilityId\":4,\"accessMode\":\"rw\",\"code\":\"mode\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_mode\"},\"name\":\"工作模式\",\"typeSpec\":{\"range\":[\"auto\",\"cold\",\"wet\",\"wind\",\"hot\",\"pre_dehumidify\"],\"type\":\"enum\",\"typeDefaultValue\":\"auto\"}},
{\"abilityId\":18,\"accessMode\":\"ro\",\"code\":\"humidity_current\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-shidu\",\"attribute\":\"1152\"},\"name\":\"当前湿度\",\"typeSpec\":{\"max\":90,\"min\":30,\"scale\":0,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":30,\"unit\":\"%\"}},
{\"abilityId\":19,\"accessMode\":\"rw\",\"code\":\"temp_unit_convert\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_temp\"},\"name\":\"温标切换\",\"typeSpec\":{\"range\":[\"c\",\"f\"],\"type\":\"enum\",\"typeDefaultValue\":\"c\"}},
{\"abilityId\":22,\"accessMode\":\"ro\",\"code\":\"fault\",\"description\":\"1 EH0b 室内板与显示板通信故障\\n2 EH00 室内主控板E方故障\\n3 EH01 室内板与室外板通信故障\\n4 EH02 过零检测故障\\n5 EH03 室内板风机失速故障\\n6 EC52 室外冷凝器传感器故障\\n7 EC53 室外环境温度传感器故障\\n8 EC54 室外压缩机排气温度传感器故障\\n9 EC51 室外E方故障\\n10 EH60 室内温度传感器故障\\n11 EH61 室内蒸发器温度传感器故障\\n12 EC07 室外风速失速故障\\n13 PC00 IPM模块保护\\n14 PC01 电压保护\\n15 PC02 室外压缩机顶部温度保护\\n16 PC0L 室外温度过低保护\\n17 PC04 压缩机位置保护\\n33 EL0C 冷媒泄露保护\",\"extensions\":{\"iconName\":\"icon-baojing\",\"scope\":\"fault\",\"attribute\":\"1152\"},\"name\":\"故障告警\",\"typeSpec\":{\"label\":[\"eh0b\",\"eh00\",\"eh01\",\"eh02\",\"eh03\",\"ec52\",\"ec53\",\"ec54\",\"ec51\",\"eh60\",\"eh61\",\"ec07\",\"pc00\",\"pc01\",\"pc02\",\"pc0l\",\"pc04\",\"el0c\"],\"maxlen\":18,\"type\":\"bitmap\",\"typeDefaultValue\":0}},
{\"abilityId\":23,\"accessMode\":\"ro\",\"code\":\"temp_current_f\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_temp\"},\"name\":\"当前室内温度 ℉\",\"typeSpec\":{\"max\":122,\"min\":0,\"scale\":0,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":0,\"unit\":\"℉\"}},
{\"abilityId\":24,\"accessMode\":\"rw\",\"code\":\"temp_set_f\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_temp\"},\"name\":\"温度设置-℉\",\"typeSpec\":{\"max\":86,\"min\":60,\"scale\":0,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":60,\"unit\":\"℉\"}},
{\"abilityId\":27,\"accessMode\":\"rw\",\"code\":\"cleaning\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_wash\",\"attribute\":\"1152\"},\"name\":\"保洁\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":30,\"accessMode\":\"rw\",\"code\":\"switch_vertical\",\"description\":\"\",\"extensions\":{\"attribute\":\"128\"},\"name\":\"上下摆风\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":33,\"accessMode\":\"rw\",\"code\":\"switch_horizontal\",\"description\":\"\",\"extensions\":{\"attribute\":\"128\"},\"name\":\"左右摆风\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":37,\"accessMode\":\"rw\",\"code\":\"motion_tracking\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-renxingyidong\",\"attribute\":\"1152\"},\"name\":\"移动追踪\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":101,\"accessMode\":\"rw\",\"code\":\"eight_heat\",\"description\":\"\",\"name\":\"8°制热\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":102,\"accessMode\":\"ro\",\"code\":\"temp_current_out\",\"description\":\"\",\"name\":\"室外温度\",\"typeSpec\":{\"max\":500,\"min\":-180,\"scale\":1,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":-180,\"unit\":\"℃\"}},
{\"abilityId\":103,\"accessMode\":\"ro\",\"code\":\"temp_current_out_f\",\"description\":\"\",\"name\":\"室外温度_F\",\"typeSpec\":{\"max\":122,\"min\":0,\"scale\":0,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":0,\"unit\":\"℉\"}},
{\"abilityId\":104,\"accessMode\":\"rw\",\"code\":\"plasma\",\"description\":\"\",\"name\":\"等离子\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":106,\"accessMode\":\"rw\",\"code\":\"prevent_direct\",\"description\":\"\",\"name\":\"防直吹\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}},
{\"abilityId\":107,\"accessMode\":\"rw\",\"code\":\"presonal_dehumid\",\"description\":\"\",\"name\":\"个性除湿\",\"typeSpec\":{\"range\":[\"cancel\",\"35\",\"40\",\"45\",\"50\",\"55\",\"60\",\"65\",\"70\",\"75\",\"80\",\"85\"],\"type\":\"enum\",\"typeDefaultValue\":\"cancel\"}},
{\"abilityId\":108,\"accessMode\":\"rw\",\"code\":\"infinite_speed\",\"description\":\"\",\"name\":\"无极风速\",\"typeSpec\":{\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"type\":\"value\",\"typeDefaultValue\":0,\"unit\":\"\"}},
{\"abilityId\":109,\"accessMode\":\"rw\",\"code\":\"strong\",\"description\":\"\",\"name\":\"强力\",\"typeSpec\":{\"type\":\"bool\",\"typeDefaultValue\":false}}]}]}"
  },
  "success": true,
  "t": 1704978278171,
  "tid": "f9a8d9cab08111eeb4711ef527e2ea42"
}
Other info for DP's from iot.tuya.com: 1) Device control (Standard Instruction Set): Get the specifications and properties of the device { "result": { "category": "kt", "functions": [ { "code": "switch", "desc": "{}", "name": "开关", "type": "Boolean", "values": "{}" }, { "code": "temp_set", "desc": "{\"unit\":\"℃\",\"min\":160,\"max\":300,\"scale\":1,\"step\":5}", "name": "设置温度", "type": "Integer", "values": "{\"unit\":\"℃\",\"min\":160,\"max\":300,\"scale\":1,\"step\":5}" }, { "code": "mode", "desc": "{\"range\":[\"auto\",\"cold\",\"wet\",\"wind\",\"hot\"]}", "name": "工作模式", "type": "Enum", "values": "{\"range\":[\"auto\",\"cold\",\"wet\",\"wind\",\"hot\"]}" }, { "code": "temp_unit_convert", "desc": "{\"range\":[\"c\",\"f\"]}", "name": "温标,华氏度,摄氏度切换新", "type": "Enum", "values": "{\"range\":[\"c\",\"f\"]}" }, { "code": "temp_set_f", "desc": "{\"unit\":\"℉\",\"min\":60,\"max\":86,\"scale\":0,\"step\":1}", "name": "设置华氏温度", "type": "Integer", "values": "{\"unit\":\"℉\",\"min\":60,\"max\":86,\"scale\":0,\"step\":1}" }, { "code": "cleaning", "desc": "{}", "name": "自清洁", "type": "Boolean", "values": "{}" }, { "code": "switch_vertical", "desc": "{}", "name": "上下摆风开关", "type": "Boolean", "values": "{}" }, { "code": "switch_horizontal", "desc": "{}", "name": "左右摆风开关", "type": "Boolean", "values": "{}" } ], "status": [ { "code": "switch", "name": "开关", "type": "Boolean", "values": "{}" }, { "code": "temp_set", "name": "设置温度", "type": "Integer", "values": "{\"unit\":\"℃\",\"min\":160,\"max\":300,\"scale\":1,\"step\":5}" }, { "code": "temp_current", "name": "当前温度", "type": "Integer", "values": "{\"unit\":\"℃\",\"min\":0,\"max\":500,\"scale\":1,\"step\":1}" }, { "code": "mode", "name": "工作模式", "type": "Enum", "values": "{\"range\":[\"auto\",\"cold\",\"wet\",\"wind\",\"hot\"]}" }, { "code": "humidity_current", "name": "当前湿度", "type": "Integer", "values": "{\"unit\":\"%\",\"min\":30,\"max\":90,\"scale\":0,\"step\":1}" }, { "code": "temp_unit_convert", "name": "温标,华氏度,摄氏度切换(新)", "type": "Enum", "values": "{\"range\":[\"c\",\"f\"]}" }, { "code": "fault", "name": "故障告警", "type": "Bitmap", "values": "{\"label\":[\"sensor_fault\",\"temp_fault\"]}" }, { "code": "temp_current_f", "name": "当前华氏温度", "type": "Integer", "values": "{\"unit\":\"℉\",\"min\":0,\"max\":122,\"scale\":0,\"step\":1}" }, { "code": "temp_set_f", "name": "设置华氏温度", "type": "Integer", "values": "{\"unit\":\"℉\",\"min\":60,\"max\":86,\"scale\":0,\"step\":1}" }, { "code": "cleaning", "name": "自清洁", "type": "Boolean", "values": "{}" }, { "code": "switch_vertical", "name": "上下摆风开关", "type": "Boolean", "values": "{}" }, { "code": "switch_horizontal", "name": "左右摆风开关", "type": "Boolean", "values": "{}" }, { "code": "motion_tracking", "name": "移动追踪", "type": "Boolean", "values": "{}" } ] }, "success": true, "t": 1693668560886, "tid": "7cdefc8349a511eeb89b62eaf3b2071e" } 2) Device Control: Query Properties { "result": { "properties": [ { "code": "switch", "custom_name": "", "dp_id": 1, "time": 1693669832685, "value": false }, { "code": "temp_set", "custom_name": "", "dp_id": 2, "time": 1693516801016, "value": 230 }, { "code": "temp_current", "custom_name": "", "dp_id": 3, "time": 1693669272109, "value": 250 }, { "code": "mode", "custom_name": "", "dp_id": 4, "time": 1693669765991, "value": "auto" }, { "code": "humidity_current", "custom_name": "", "dp_id": 18, "time": 1690322065944, "value": 30 }, { "code": "temp_unit_convert", "custom_name": "", "dp_id": 19, "time": 1692978475595, "value": "c" }, { "code": "fault", "custom_name": "", "dp_id": 22, "time": 1692978475595, "value": 0 }, { "code": "temp_current_f", "custom_name": "", "dp_id": 23, "time": 1690322065944, "value": 0 }, { "code": "temp_set_f", "custom_name": "", "dp_id": 24, "time": 1690322065944, "value": 60 }, { "code": "cleaning", "custom_name": "", "dp_id": 27, "time": 1692978475595, "value": false }, { "code": "switch_vertical", "custom_name": "", "dp_id": 30, "time": 1692978475595, "value": false }, { "code": "switch_horizontal", "custom_name": "", "dp_id": 33, "time": 1692978475595, "value": false }, { "code": "motion_tracking", "custom_name": "", "dp_id": 37, "time": 1692978475595, "value": false }, { "code": "eight_heat", "custom_name": "", "dp_id": 101, "time": 1692978475595, "value": false }, { "code": "temp_current_out", "custom_name": "", "dp_id": 102, "time": 1693669921795, "value": 345 }, { "code": "temp_current_out_f", "custom_name": "", "dp_id": 103, "time": 1690322065944, "value": 0 }, { "code": "plasma", "custom_name": "", "dp_id": 104, "time": 1692978475595, "value": false }, { "code": "prevent_direct", "custom_name": "", "dp_id": 106, "time": 1692978475595, "value": false }, { "code": "presonal_dehumid", "custom_name": "", "dp_id": 107, "time": 1692978475595, "value": "cancel" }, { "code": "infinite_speed", "custom_name": "", "dp_id": 108, "time": 1693669765991, "value": 0 }, { "code": "strong", "custom_name": "", "dp_id": 109, "time": 1693541079356, "value": false } ] }, "success": true, "t": 1693669924658, "tid": "a9bfbf3449a811eeb3f09e6a0abc163a" } 3) Device control (Standard Instruction Set): Get the instruction set of the device { "result": { "category": "kt", "functions": [ { "code": "switch", "desc": "switch", "name": "switch", "type": "Boolean", "values": "{}" }, { "code": "temp_set", "desc": "temp set", "name": "temp set", "type": "Integer", "values": "{\"unit\":\"℃\",\"min\":160,\"max\":300,\"scale\":1,\"step\":5}" }, { "code": "mode", "desc": "mode", "name": "mode", "type": "Enum", "values": "{\"range\":[\"auto\",\"cold\",\"wet\",\"wind\",\"hot\"]}" }, { "code": "temp_unit_convert", "desc": "temp unit convert", "name": "temp unit convert", "type": "Enum", "values": "{\"range\":[\"c\",\"f\"]}" }, { "code": "temp_set_f", "desc": "temp set f", "name": "temp set f", "type": "Integer", "values": "{\"unit\":\"℉\",\"min\":60,\"max\":86,\"scale\":0,\"step\":1}" }, { "code": "cleaning", "desc": "cleaning", "name": "cleaning", "type": "Boolean", "values": "{}"

Product ID

gvraxduhxaxalell

Information about how the device functions

Is just a simple AC unit for Greece market (only i thing). Believe me you will help a lot of people if you make it working. Thanks!!!

https://ac.inv-static.com/uploads/ac_mini-split/LEON/LEON_UM%2BIM_0123.pdf https://ac.inv-static.com/uploads/ac_mini-split/LEON/LEON_RC_MANUAL_0123.pdf

arhimidis64 commented 8 months ago

Model name: Inventor Leon (LEUVI-09WFI / (LEUVO-09)

arhimidis64 commented 7 months ago

Hello, generally it's working. But i think there are some bugs. Some logs i found:

1) Logger: custom_components.tuya_local.device Source: custom_components/tuya_local/device.py:555 Integration: Tuya Local (documentation, issues) First occurred: February 13, 2024 at 23:35:57 (220 occurrences) Last logged: February 15, 2024 at 19:43:33

Failed to fetch device status for Bedroom_AC_Inventor

2) Logger: custom_components.tuya_local.device Source: custom_components/tuya_local/device.py:225 Integration: Tuya Local (documentation, issues) First occurred: February 14, 2024 at 08:36:11 (2 occurrences) Last logged: 07:18:15

Bedroom_AC_Inventor receive loop has terminated

3) Logger: homeassistant.components.climate Source: components/climate/init.py:354 Integration: Climate (documentation, issues) First occurred: February 13, 2024 at 12:35:02 (9 occurrences) Last logged: 07:18:15

Entity None (<class 'custom_components.tuya_local.climate.TuyaLocalClimate'>) does not set ClimateEntityFeature.TURN_OFF but implements the turn_off method. Please create a bug report at https://github.com/make-all/tuya-local/issues Entity None (<class 'custom_components.tuya_local.climate.TuyaLocalClimate'>) does not set ClimateEntityFeature.TURN_ON but implements the turn_on method. Please create a bug report at https://github.com/make-all/tuya-local/issues Entity None (<class 'custom_components.tuya_local.climate.TuyaLocalClimate'>) implements HVACMode(s): off, heat_cool, cool, dry, fan_only, heat and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/make-all/tuya-local/issues

4) 2024-02-16 06:15:01.356 WARNING (MainThread) [custom_components.tuya_local.climate] inventor_tokenslegend_airconditioner.yaml/climate: Unrecognised HVAC Mode of True ignored

If you need anything else please let me know!

make-all commented 7 months ago

4 appears to be a bug.

1 and 2 are connection issues which may be bug in the device itself, or just a WiFi network interruption (such as microwave oven interference since Tuya devices only work on 2.4GHz)

  1. is a new feature in HA 2024.2 which they have rushed out the deprecation warnings for.
make-all commented 7 months ago

4 is most likely caused by an unhandled mode of the air conditioner. I would need the device diagnostics when this error has occurred to see what the mode is that is causing this.

arhimidis64 commented 7 months ago

Thanks for your quick reply!!

How should i get device diagnostics?

make-all commented 7 months ago

Settings / Devices / Tuya-local / Download diagnostics

But it is a snapshot of the current state, so it will need to be immediately after the log message is produced, before any other mode change. If it is a transient state, then maybe debug logs will be better for capturing it (also enabled and disabled+downloaded on the same page).

arhimidis64 commented 7 months ago

I will look forward to it and i will let you know! Should i post here or open new issue?

make-all commented 7 months ago

Just post it here since I already reopened it for this issue.

arhimidis64 commented 6 months ago

I cant re-produce the above 4 but i have some other problems, i think:

  1. I can't setup auto fan. only 0%-100%
  2. If i enable "follow me" (i guess you know what this feature is) after a while, turning off it's self. I have try to enable it from remote control (i don't sent any signal through it though) so the remote control is "on" and reading it's temp sensor value, and also i have try it with remote control off. Nothing is working. Once all entities got unavailable also.

unavailable.json follow me turned off its self.json

Thanks!!

make-all commented 6 months ago

For the latest issues:

  1. There does not appear to be a setting for "auto" fan.
  2. I'm not sure why this would be automatically switching off, but it seems like it is device behaviour, not a problem in the integration.
make-all commented 6 months ago

I wasn't able to get any info relating to your problems, but the diagnostics do reveal that the device is not reportng a number of dps when it is off, so that info can be used to improve the device detection.

arhimidis64 commented 6 months ago

Recently i found all the entities to be unavailable and i found out some logs including the 1 & 2 from my first post. This is the new one: Log details (ERROR) This error originated from a custom integration. Logger: custom_components.tuya_local.device Source: custom_components/tuya_local/device.py:218 Integration: Tuya Local (documentation, issues) First occurred: 18:07:32 (1 occurrences) Last logged: 18:07:32

Bedroom_AC_Inventor receive loop terminated by exception unsupported operand type(s) for -: 'NoneType' and 'float' Traceback (most recent call last): File "/config/custom_components/tuya_local/device.py", line 218, in receive_loop entity.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 989, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1110, in _async_write_ha_state state, attr, capabilities, shadowed_attr = self.async_calculate_state() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1049, in async_calculate_state attr.update(self.state_attributes or {}) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/fan/init.py", line 426, in state_attributes data[ATTR_PERCENTAGE] = self.percentage ^^^^^^^^^^^^^^^ File "/config/custom_components/tuya_local/fan.py", line 120, in percentage val = ranged_value_to_percentage(r, val) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/util/percentage.py", line 79, in ranged_value_to_percentage return scale_ranged_value_to_int_range(low_high_range, (1, 100), value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/util/scaling.py", line 23, in scale_ranged_value_to_int_range (value - source_offset)


TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'

Also i downloaded the diagnostics and you can find the file below. If you need anything just let me know. Thanks!

[config_entry-tuya_local-7233eb090718fdb4e99f8c36f9b27824-1.json](https://github.com/make-all/tuya-local/files/14554990/config_entry-tuya_local-7233eb090718fdb4e99f8c36f9b27824-1.json)
arhimidis64 commented 5 months ago

After the latest update to "2024.3.2 Valves" and upon restarting ha:

Logger: homeassistant.components.climate Source: components/climate/init.py:361 integration: Climate (documentation, issues) First occurred: 10:46:18 (1 occurrences) Last logged: 10:46:18

Entity None (<class 'custom_components.tuya_local.climate.TuyaLocalClimate'>) implements HVACMode(s): off, heat_cool, cool, dry, fan_only, heat and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/make-all/tuya-local/issues

make-all commented 5 months ago

This is a bug in Home Assistant. This integration does set the proper ClimateEntityFeatures for turn_off and turn_on, and it also explicitly supports turn_on and turn_off methods, so the message about implicit support is incorrect.