Open nashw83 opened 3 months ago
Logs for first example:
Thanks for the logs @nashw83
Does the issue happen often or only intermittently/infrequently?
I'll definitely look in to it, but based on the logs provided it seems like maybe a race condition? Possibly even within the Sensibo side, as I can see the API GET request and POST request happening in parallel:
I'm wondering if the GET and POST running in parallel are causing some sort of mismatch!
[30/07/2024, 19:55:28] [homebridge-sensibo-ac] data: {
"acState": {
"on": true,
"mode": "heat",
"temperatureUnit": "C",
"targetTemperature": 20,
"swing": "rangeFull",
"horizontalSwing": "stopped",
"fanLevel": "high"
}
}
... GET response ...
[30/07/2024, 19:55:32] [homebridge-sensibo-ac] Successful POST response:
[30/07/2024, 19:55:32] [homebridge-sensibo-ac] {
"status": "success",
"result": {
"id": "ZZZ",
"time": {
"time": "2024-07-30T09:55:30Z",
"secondsAgo": 0
},
"status": "Success",
"acState": {
"timestamp": {
"time": "2024-07-30T09:55:31.905586Z",
"secondsAgo": -1
},
"on": true,
"mode": "heat",
"targetTemperature": 18,
"temperatureUnit": "C",
"nativeTargetTemperature": 20, // this
"nativeTemperatureUnit": "C", // and this
"fanLevel": "high",
"swing": "rangeFull",
"horizontalSwing": "stopped"
},
"changedProperties": [], // also missing
"reason": "UserAPI",
"failureReason": null
}
}
[30/07/2024, 8:42:03 pm] [SensiboAC] data: {
"acState": {
"on": true,
"mode": "heat",
"temperatureUnit": "C",
"targetTemperature": 24,
"swing": "rangeFull",
"horizontalSwing": "rangeFull",
"fanLevel": "auto"
}
}
[30/07/2024, 8:42:05 pm] [SensiboAC] Successful POST response:
[30/07/2024, 8:42:05 pm] [SensiboAC] {
"status": "success",
"result": {
"id": "XXX",
"time": {
"time": "2024-07-30T10:42:04Z",
"secondsAgo": 0
},
"status": "Success",
"acState": {
"timestamp": {
"time": "2024-07-30T10:42:05.731336Z",
"secondsAgo": -1
},
"on": true,
"mode": "heat",
"targetTemperature": 24,
"temperatureUnit": "C",
"fanLevel": "auto",
"swing": "rangeFull",
"horizontalSwing": "rangeFull"
},
"changedProperties": [
"targetTemperature" // this is set
],
"reason": "UserAPI",
"failureReason": null
}
}
When you do a temp change, and it works as expected, what does your Successful POST response:
output look like?
Also, does your unit in Sensibo use ºC (rather than F)? Has it ever been set to F? Does it have alternate remote codes?
Always been Celsius, unless it defaulted to Fahrenheit when it was first configured and immediately changed it to C. While testing this example last night I didn’t see a time when it did work after over half a dozen tries. By alternate remote codes do you mean manually set remote type for the AC?
It looks like it’s specific to this Kitchen unit. It’s not accepting a heat temp higher than 18 or a cool temp lower than 20 via HomeKit. But can be set via Sensibo app and read this per setting in Home. Whether or not it’s actually setting the temp is another question, but perhaps it is specific to its remote profile. The second unit has a different profile, even though it’s the same brand and similar generation unit the first remote did not work with it (and it had a universal remote when we bought the house).
I’ll need to do more testing when I’m back home and pull the logs again.
Both units however do have the intermittent issue of returning to dry mode if this was the last mode, despite set of a different mode via a scene.
Always been Celsius, unless it defaulted to Fahrenheit when it was first configured and immediately changed it to C. While testing this example last night I didn’t see a time when it did work after over half a dozen tries. By alternate remote codes do you mean manually set remote type for the AC?
Hi @nashw83
I actually meant changing the Remote Code within the Sensibo App...
With the unit open in Sensibo, click the top right cog to get to Settings, then scroll to 'Change remote type'. From there you can try pairing the remote again, or even click 'Manual setup' to get a list of potential remote codes (they all have silly names like "Radiant Vampire Bat" or "Reassured Partridge").
Maybe worth a shot?
Other than that we'd probably need to get Sensibo support as this is the first time I've seen a successful temperature request, in native C degrees, then get reported back with a different temp!
Also, next time you are testing, wondering if you use HomeKit to set the temp to something really high like 28, does the API response payload still report back 18?
Embarrassingly, I've come cross the issue here. There is a premium Sensibo feature for user management which guardrails the temp limits for a user and I had forgot this was set. As I'm using a separate user for the API to ensure good logging practices I had this enabled to ensure the kids etc weren't trying to set the AC to an unachievable number.
That said there were some other changes that weren't coming across, such as snapping back to a prior mode such as Dry although the scene requested Cool. This will require more testing and review of logs however.
Thanks for the update @nashw83
Glad to hear you’ve nailed down the temperature inconsistency. It’s also good to know that exists for the future (in case others also experience it).
Please let me know how you go once you’ve had some time to check on the mode “snapping” further (and have logs of that issue).
Sensibo Sky unit - both scene and manual set mode and temp via HomeKit does not reliably set in Sensibo.
Example: Set temp to 20 on heat will set to 18 which was most recent setting. Heater on, set to target 18. Change temp to 20 in Home app. AC beeps, Sensibo logs as API call kept state on, temp does not change in Sensibo and current target snaps back to 18* in Home app.
Another example when mode is set to dry, turn AC off then set scene with heat parameters the unit will turn back on to last state of dry.
Sensibo for Homebridge v2.5.1 Homebridge v1.8.4 Node.js v20.15.1