ghosty2004 / homebridge-connectlife-ac

Integrates ConnectLife ACs with HomeBridge
Apache License 2.0
7 stars 1 forks source link

Fahrenheit has some rounding issues #7

Open zacharee opened 3 months ago

zacharee commented 3 months ago

Describe The Bug:

When using Fahrenheit, setting the temperature on an AC doesn't work properly:

Using Home Assistant to set the temperature to 63.1F, for example, will set the AC to 63F.

To Reproduce:

Expected behavior:

The temperatures should work properly in Fahrenheit.

Logs:

[7/7/2024, 1:46:50 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:46:50 PM] [ConnectLife AC] Set CoolingThresholdTemperature 17.2
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_work_mode: 2, t_temp: 62, t_temp_type: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_up_down: 0 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_power: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_work_mode: 2, t_temp: 62, t_temp_type: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_temp: 62, t_temp_type: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:03 PM] [ConnectLife AC] Set CoolingThresholdTemperature 17.8
[7/7/2024, 1:47:14 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:14 PM] [ConnectLife AC] Set CoolingThresholdTemperature 18.3
[7/7/2024, 1:47:21 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:21 PM] [ConnectLife AC] Set CoolingThresholdTemperature 17.8
[7/7/2024, 1:47:22 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:22 PM] [ConnectLife AC] Set CoolingThresholdTemperature 17.2
[7/7/2024, 1:47:22 PM] [ConnectLife AC] getDeviceProperties { t_temp_type: 1 }
[7/7/2024, 1:47:22 PM] [ConnectLife AC] Set CoolingThresholdTemperature 16.7

It seems like the plugin is converting Fahrenheit to Celsius internally and then back to Fahrenheit when sending to ConnectLife with setCoolingThresholdTemperature().

Plugin Config:

{
    "deviceNickNames": [
        "***"
    ],
    "name": "ConnectLife AC",
    "loginID": "***",
    "password": "***",
    "debugMode": 0,
    "_bridge": {
        "username": "***",
        "port": 40829
    },
    "platform": "ConnectLifeAcPlugin"
}

Environment:

XenuIsWatching commented 3 months ago

I'm experiencing the same issue...particularly with 70F mapping to 69F when using the Apple Home App