Hi,
Selecting Auto mode in the Home app on a Matter Room AC device results in Cool being sent over Matter. Off, Heat and Cool work correctly. The reverse also fails: selecting Auto from another ecosystem (e.g. Samsung SmartThings) goes out correctly over Matter, but the Home app shows Cool.
The issue is specific to the Room AC device type — with the same device exposed as Thermostat, everything works.
In the logs, the Home app parses the requested mode correctly and sends it to the home hub; on the hub side the logs show Cool going out over Matter.
Filed as FB25164477 (logs and repro attached). Is this a known issue?
Thanks!
Filed as FB25164477 (logs and repro attached). Is this a known issue?
Yes, though it may take some time to fix. The problem here is a side effect of an existing detail in the HAP (HomeKit Accessory Spec) and how Matter accessories are then mapped onto that spec.
In its initial release, the HAP spec defined "10.8 Thermostat," which basically matches a typical "American" thermostat— Off/Heat/Cool/Auto states, plus corresponding temperatures. However, with the benefit of hindsight, it turned out that this definition was EXTREMELY naive, as the range of HVAC solutions is extremely large and, most notably, large portions of the world exist that either "Heat" (but never "Cool") or "Cool" (but never "Heat"), with an extra "bonus round" of places where the device can either "Cool" OR "Heat" but can NEVER switch between those two (typically because doing so involves moving a water pipe). Unfortunately, all of Thermostat’s characteristics were required, which meant it couldn't be used for any of those cases.
In any case, this was a huge problem, which led to the creation of "10.34 Heater Cooler,” which replicated the same basic functionality as Thermostat, except that the various characteristics were now optional. Unfortunately... there was one difference, which was that the new service did NOT include "Auto.” The (reasonable at the time) assumption was that a “full-featured" device would just use "10.8 Thermostat,” so that the main reason an accessory would be a Heater/Cooler is that it DIDN'T have a way to switch between those two modes.
That then leads to the Matter spec, which was clearly written by someone (likely a lot more than one) with a very wide HVAC perspective. Case in point, the Matter spec defines no less than 8 valid modes, not 4, delightfully numbering them 0–9 except for number 2. The thermostat spec is also ~21 pages compared to at most 3 pages for Heater/Cooler.
In any case, Matter Thermostat was mapped onto HAP Heater/Cooler because that was the only option (as I noted above, Thermostat is too inflexible). Unfortunately, that mapping was an imperfect match (since Heater Cooler lacks "Auto"). Ironically, that also means that the bug here isn't actually that we're not sending "Auto,” but that we're presenting the "Auto" option at all.
In any case, all of that is why fixing this properly may take some time.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware