home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
74.15k stars 31.12k forks source link

Tuya Air Conditioner Not Allowing Speed Selection #124652

Open tempus2016 opened 3 months ago

tempus2016 commented 3 months ago

The problem

I have an electriQ air conditioner installed and set up via Tuya. I am unable to control the fan speed due to an error being received and the option for the vertical louvre to allow for moving air flow is missing.

Code from the Tuya Project:

[
  {
    "code": "switch",
    "value": false
  },
  {
    "code": "temp_set",
    "value": 32
  },
  {
    "code": "mode",
    "value": "hot"
  },
  {
    "code": "windspeed",
    "value": "3"
  },
  {
    "code": "heat",
    "value": false
  },
  {
    "code": "health",
    "value": false
  }
]
Screenshot 2024-08-26 at 19 08 30 Screenshot 2024-08-26 at 19 08 48 Screenshot 2024-08-26 at 19 07 59

Wind_Vertical command shows when using the Smart Life App but no option in HA:

Screenshot 2024-08-26 at 19 15 32

When I try to change the fan speed, I get this error:

Screenshot 2024-08-26 at 19 09 45
Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:241
integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 19:09:41 (1 occurrences)
Last logged: 19:09:41

[140499552427824] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2763, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2806, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 999, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1071, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 742, in async_handle_set_fan_mode_service
    await self.async_set_fan_mode(fan_mode)
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 750, in async_set_fan_mode
    await self.hass.async_add_executor_job(self.set_fan_mode, fan_mode)
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/tuya/climate.py", line 299, in set_fan_mode
    self._send_command([{"code": DPCode.FAN_SPEED_ENUM, "value": fan_mode}])
  File "/usr/src/homeassistant/homeassistant/components/tuya/base.py", line 276, in _send_command
    self.device_manager.send_commands(self.device.id, commands)
  File "/usr/local/lib/python3.12/site-packages/tuya_sharing/manager.py", line 93, in send_commands
    return self.device_repository.send_commands(device_id, commands)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tuya_sharing/device.py", line 180, in send_commands
    self.api.post(f"/v1.1/m/thing/{device_id}/commands", None, {"commands": commands})
  File "/usr/local/lib/python3.12/site-packages/tuya_sharing/customerapi.py", line 192, in post
    return self.__request("POST", path, params, body)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tuya_sharing/customerapi.py", line 121, in __request
    raise Exception(f"network error:({ret['code']}) {ret['msg']}")
Exception: network error:(2008) command or value not support

What version of Home Assistant Core has the issue?

2024.8.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Tuya

Link to integration documentation on our website

No response

Diagnostics information

tuya-02302127b89347f22ae9132e84a7d1c9-Cabin Air Con-ce0c1f32468b2c0134e59d4d7ff5a1f6.json

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 3 months ago

Hey there @tuya, @zlinoliver, @frenck, mind taking a look at this issue as it has been labeled with an integration (tuya) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `tuya` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign tuya` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


tuya documentation tuya source (message by IssueLinks)

tempus2016 commented 2 months ago

Anyone available to help?

mimol91 commented 3 weeks ago
Having similar issue, but I cannot select fan speed at all Code Type Values
switch Boolean "{true,false}"
mode Enum {
"range": [
"cold",
"hot",
"wind"
]
}
eco Boolean "{true,false}"
temp_set Integer {
"unit": "℃",
"min": 50,
"max": 350,
"scale": 1,
"step": 5
}
upper_temp_f Integer {
"unit": "°C",
"min": 150,
"max": 350,
"scale": 1,
"step": 10
}
upper_temp Integer {
"unit": "℃",
"min": 150,
"max": 350,
"scale": 1,
"step": 10
}
lower_temp_f Integer {
"unit": "°C",
"min": 50,
"max": 150,
"scale": 1,
"step": 10
}
lower_temp Integer {
"unit": "℃",
"min": 50,
"max": 150,
"scale": 1,
"step": 10
}
temp_correction Integer {
"unit": "°C",
"min": -9,
"max": 9,
"scale": 0,
"step": 1
}
level Enum {
"range": [
"low",
"middle",
"high",
"auto"
]
}