Snakey42069 / homebridge-actronair

An unoffical Homebridge community plugin for ActronAir Airconditioners
Apache License 2.0
6 stars 1 forks source link

Target temp not working #3

Open smucky06 opened 1 year ago

smucky06 commented 1 year ago

Describe The Bug: Target temperature doesnt appear to post to the unit

To Reproduce: Set the device to Heat / Cool / Auto and adjust the target temp

Expected behavior: Exected behaviour is that the target temp on the unit updates instead no change

Logs:

N/A
     "accessories": [
                {
                    "name": "ActronConnect",
                    "ip": "10.1.1.163",
                    "mac": "########",
                    "device_token": "########",
                    "user_token": "##########",
                    "zones": [
                        {
                            "name": "Living",
                            "index": 0
                        },
                        {
                            "name": "Theatre",
                            "index": 1
                        },
                        {
                            "name": "Study",
                            "index": 2
                        },
                        {
                            "name": "Rumpus",
                            "index": 3
                        },
                        {
                            "name": "Bedrooms",
                            "index": 4
                        },
                        {
                            "name": "Masted Bed",
                            "index": 5
                        }
                    ]
                }
            ],
            "name": "Actron",
            "platform": "Homebridge Actronair"

Screenshots: N/A

Environment:

ImpulsePurchase commented 3 months ago

I think I experience the same bug as this. Setting other things such as setting the Mode to Auto or Cool works. It only fails to set the Target Temp:

Debug log of a successful Mode change, followed by an attempt to change the target temp to 23.5, then 24, neither of which work, even though no error is shown in the log. The target temp stays as 22 degrees as reported in the log

07/06/2024, 1:42:42 pm] [Actron] ActronURL -> https://que.actronair.com.au/rest/v0/device/ACONNECTX?user_access_token=XX [07/06/2024, 1:42:42 pm] [Actron] Data recieved from actron POST req -> {"result":1,"error":null,"id":0,"data":null} [07/06/2024, 1:42:42 pm] [Actron] Aircon target state set to -> 1 [07/06/2024, 1:42:45 pm] [Actron] ActronURL -> https://que.actronair.com.au/rest/v0/device/ACONNECTX?user_access_token=0XX [07/06/2024, 1:42:45 pm] [Actron] Data recieved from actron POST req -> {"result":1,"error":null,"id":0,"data":null} [07/06/2024, 1:42:45 pm] [Actron] Aircon setPoint set to -> 23.5 [07/06/2024, 1:42:49 pm] [Actron] ActronURL -> https://que.actronair.com.au/rest/v0/device/ACONNECTX?user_access_token=XX [07/06/2024, 1:42:49 pm] [Actron] Data recieved from actron POST req -> {"result":1,"error":null,"id":0,"data":null} [07/06/2024, 1:42:49 pm] [Actron] Aircon setPoint set to -> 24 [07/06/2024, 1:43:05 pm] [Actron] Data recieved from actron GET req -> { isOn: true, mode: 1, fanSpeed: 2, setPoint: 22, roomTemp_oC: 21.9, isInESP_Mode: true, fanIsCont: 0, compressorActivity: 2, errorCode: '', individualZoneTemperatures_oC: [ 22, 22, 21.2, 22.4, 22.2, 22.1, 21.6, 22 ], enabledZones: [ 1, 1, 0, 1, 1, 1, 0, 0 ], liveTimer: null }

There is an error shown in the endpoint, notice JsonErr-> \"setPoint\":24} below, this is reported after the unsuccessful attempt to set to 24 from above in the log

Endpoint 2: The 2.json endpoint returns: {"ConnectionStatus":"111","CurrentConnection":{"SSID":"SSSSS","key”:”xxxxxx”xxx,”IP":"192.168.0.8","LinkStats":{"errors":{"flags":"[5,9,C,M,N]","Count":32,"Last":"JsonErr->:\"setPoint\":24}"},"stats":{"good":[78,7133],"bad":[0,0,0,2]}}},"PreferredConnection":{"SSID":"Large Hadron Collider","key”:”xxxxxxxxxxx”,”httpProxy":null},"RemoteServer":"que.actronair.com.au","ApiToke

ImpulsePurchase commented 3 months ago

Forgot to give environment sets:

Plugin Version: v3.0.12 Homebridge Version: v1.8.2 Node.js Version: v20.14.0 NPM Version: 10.7.0 Operating System: macOS Monterey

ImpulsePurchase commented 3 months ago

I could be very wrong, but I suspect that instead of inside the function handleTargetTemperatureSet where it sets the body of the PUT to : { DA: { setPoint: value } }

Instead the payload may need to be in this format:

DA: { "amOn": true, "tempTarget": value, "fanSpeed": 2, "mode": 1 }

where the values for amOn, fanSpeed and Mode are whatever the current settings are. And the requested temp value is assigned to "tempTarget" not "setPoint".
I think that might be right because I see payloads like that via the Developer Tools on https://www.actronair.com.au/aconnect/#/Control