fjs21 / homebridge-kumo

Control your Kumo cloud devices using Homebridge.
https://www.npmjs.com/package/homebridge-kumo
Apache License 2.0
34 stars 8 forks source link

Slight temperature discrepancies between Kumo app and Home app #3

Closed Yardorth closed 2 years ago

Yardorth commented 4 years ago

When I set my Mini-Split to 76°F cooling in the Home app, the Homebridge log shows the following: [Kumo] Heater/Cooler: set CoolingThresholdTemperature to 24.4

In the kumo cloud app the temperature is displayed as 75°C. After a while Home also shows 75°F (maybe sync from kumo cloud to homebridge?)

Another example: Set temperature in Home to 71°C. Homebridge log: [Kumo] Heater/Cooler: set CoolingThresholdTemperature to 21.7

Kumo cloud app will show 69°C. Open the Home app again will display 70°F

The conversion from Fahrenheit to Celsius and back seems to have rounding errors.

fjs21 commented 4 years ago

I'll take a look. On the code side it is all in Celsius but this does sound like a rounding issue.

fjs21 commented 4 years ago

I think this is fixed. There was a rounding step (Math.floor) that shouldn't have been included. It would have set the temperature on the device to 21.0 instead of 21.7 and 24.0 instead of 24.4. Try v1.1.6

(edited for typos)

Yardorth commented 4 years ago

Something is not quite right. Now when I set 76°F in Home and check kumo app it reports --°. 77°F in Home is working, kumo app reports 77°.

I tested a few and it's only working when Celsius in homebridge has no decimals, eg. 77°F is 25°C -> OK or 68°F is 20°C -> OK, everything in between does report --° in kumo app.

fjs21 commented 4 years ago

Previous versions just dropped the fraction (bad) and v1.1.6 just tries to set the temperature to nearest single decimal point, which I don't think is supported by Kumo - hence the ---°.

By setting the temp in the Kumo app, I found that Kumo only seems to use 0.5 deg C increments - at least that's what the device reports when it is queried after being set in Kumo.

So I have updated the plugin code to set the temperature values to the nearest half degree Celsius.

There is still sometimes a lag in receiving/reporting the device/Kumo update if you set both temperatures at the same time (i.e. in auto mode), so wait a few minutes and try refreshing the Home/Kumo app again. Let me know if it is improved and I will close the issue.

fjs21 commented 4 years ago

Sorry. Try v1.1.8

Yardorth commented 4 years ago

Much better but 1°F off on certain temperatures. I tested 73°F to 79°F both Home and Kumo are the same. Starting at 72°F until down to 69°F Kumo reports one degree lower than Home, 68°F is fine again. Very weird but I can live with that if it's not fixable.

fjs21 commented 4 years ago

I'm not 100% sure but it could even be a bug in the Kumo app. Would be worth investigating if setting the temp manually on the remote to those problem temperatures results in the Kumo or Home temp being reported. If you want to see what's going on under the hood of the plugin, turn on debugging in the homebridge UI and you can see what Celsius values are being reported by the device and what we are setting. I'll give it a try as well.

fjs21 commented 4 years ago

Ok. I think the issue lies on the Kumo app side of things. I'm assuming that the Celsius values reported from the device are accurate. If that's the case, then the Home reported Fahrenheit temps are also accurate and Kumo cloud is doing something odd in their conversion. So I'm going to leave as is for now.

I might do some extra digging later as if the device can support one digit decimal Celsius values then forcing it to round to the nearest 0.5 just to satisfy the limitations of Kumo cloud app is dumb (though it will introduce the strange behavior described above).

I will close the issue.