milo526 / homebridge-tuya-web

Hoobs and Homebridge plugin for Tuya devices using Home Assistant Tuya Web Api
MIT License
217 stars 93 forks source link

Current Temperature error AC device #464

Closed juanfeb85 closed 1 year ago

juanfeb85 commented 1 year ago

I have an Ac device.It uses Celsius system. If Homebridge UI is setup in Farenheit, TuyaWebPlatform shows a wrong Current Temperature. If If Homebridge UI is setup in Celsius, TuyaWebPlatform doesn't have a Current Temperature. -->

The LOGS as Farenhet configuration:

Fren1

FARENh

8/11/2022, 6:51:48 PM] [TuyaWebPlatform] Sending HTTP GET request to /homeassistant/skill - Header: {"name":"Discovery","namespace":"discovery","payloadVersion":1}. [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] Missing required id property on device configuration, received: { "device_type": "form" } [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] deviceConfig: { data: { min_temper: 16, temperature: 22, max_temper: 86, online: true, windspeed: '1', state: 'false', temp_unit: 'CELSIUS' }, name: 'Aire Acondicionado', icon: 'https://images.tuyaeu.com/smart/product_icon/kt.png', id: '01303121a4e57cb77d7d', dev_type: 'climate', ha_type: 'climate' }

[8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetTemperature - [UPDATE] 22 [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.CurrentHeatingCoolingState - [UPDATE] %S OFF [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetHeatingCoolingState - [UPDATE] OFF [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Requesting device state [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Creating new debounced promise [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Triggering debouncedDeviceStateRequest [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Requesting device state [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Triggering debouncedDeviceStateRequest [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Requesting device state [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Triggering debouncedDeviceStateRequest [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Requesting device state [8/11/2022, 6:51:49 PM] [TuyaWebPlatform] [Aire Acondicionado] - Triggering debouncedDeviceStateRequest

The LOGS as Celsius configuration: Ui celsius

image

image

[8/11/2022, 6:58:08 PM] [TuyaWebPlatform] [Aire Acondicionado] deviceConfig: { data: { min_temper: 16, temperature: 22, max_temper: 86, online: true, windspeed: '1', state: 'false', temp_unit: 'CELSIUS' }, name: 'Aire Acondicionado', icon: 'https://images.tuyaeu.com/smart/product_icon/kt.png', id: '01303121a4e57cb77d7d', dev_type: 'climate', ha_type: 'climate' }[8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] - Unsetting debouncedDeviceStateRequestPromise [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] - Resolving resolveDeviceStateRequest from cache [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.CurrentHeatingCoolingState - [GET] { state: 'false', mode: undefined } [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.CurrentHeatingCoolingState - [UPDATE] %S OFF [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetHeatingCoolingState - [GET] { state: 'false', mode: undefined } [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetHeatingCoolingState - [UPDATE] OFF [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.CurrentTemperature - [GET] undefined [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetTemperature - [GET] 22 [8/11/2022, 6:58:09 PM] [TuyaWebPlatform] [Aire Acondicionado] Characteristic.TargetTemperature - [UPDATE] 22

juanfeb85 commented 1 year ago

Debug_discovery output:

Got devices { 'header': {'code': 'SUCCESS', 'payloadVersion': 1}, 'payload': { 'devices': [ { 'data': { 'max_temper': 86, 'min_temper': 16, 'online': True, 'state': 'false', 'temp_unit': 'CELSIUS', 'temperature': 22, 'windspeed': '1'}, 'dev_type': 'climate', 'ha_type': 'climate', 'icon': 'https://images.tuyaeu.com/smart/product_icon/kt.png', 'id': '01303121a4e57cb77d7d', 'name': 'Aire acondicionado '}, { 'data': {'online': True, 'state': False}, 'dev_type': 'switch', 'ha_type': 'switch', 'icon': 'https://images.tuyaeu.com/smart/icon/ay1506337792739cXrIR/1582528638237be076cb2.jpg',

fishbloom commented 1 year ago

I have the same issue and the HomeKit link is also broken, it says "No response" on all thermostat/air condition devices (it works though, but can only select the mode, no temperature, etc).

milo526 commented 1 year ago

Your devices do not expose the current temperature (which honestly seems really stupid from Tuya -_-)

As far as I am aware; the actual current temperature is always exposed as 'current_temperature', we can see that this key is missing from your data.

Could you confirm to me that the value behind the temperature key is the target temperature (i.e. what you set your thermostat/airconditioning to) you specified and not the actual current temperature (i.e. the reading of a thermometer)

juanfeb85 commented 1 year ago

Yes, he value behind the temperature key is the target temperature. I can in Tuya iot platform the two values: "result": [ { "code": "switch", "value": false }, { "code": "temp_set", "value": 22 }, { "code": "temp_current", "value": 24 }, { "code": "mode", "value": "cold" }, { "code": "windspeed", "value": "3" }, { "code": "c_f", "value": "C"

milo526 commented 1 year ago

Sadly that is using a different API than the one this plugin uses.

You might be better off using the "first-party" tuya plugin, they will probably be able to work with this different API and thus offer full support for your device.

https://github.com/tuya/tuya-homebridge