Skip to main content

Command 0xC9: Base Capabilities

This command is used to retrieve base capability information from a heat pump. This command response is used to check whether certain features exist on any given unit, and is used to self-configure units accordingly.

BytePurposePossible ValuesSupported by mUARTNotes
0CommandType0xC9
1-6"Arbitrary Data"0x03
7-15Unit CapabilitiesSee below

Unit Capabilities

ByteBitmaskPurposeNotes
70x01???Observed true
70x02Heat Disabled (if true)
70x04???Observed true
70x08???
70x10Fan Bit A
70x20Vertical Vane support
70x40Vane swing supportSeems to cover both vane types, if horizontal vane exists.
70x80???
80x01Dry function disabled (if true)
80x02Fan function disabled (if true)
80x04Has extended temperature rangeSeems to determine if the A-scale is usable.
80x08Fan Bit B
80x10Automatic Fan Speed disabled (if true)
80x20Installer Settings (Function) support
80x40Test Mode support
80x80Supports dry temperature
90x01Has status display
90x02Fan Bit C
90x04???Observed true and false
90x08???
90x10???Observed true and false
90x20Supports Outside Temp ReportingUnconfirmed, possibly JP units only.
90x40???
90x80???Observed true and false
10AllMinimum cool/dry temp setpoint
11AllMaximum cool/dry temp setpoint
12AllMinimum heating temp setpoint
13AllMaximum heating temp setpoint
14AllMinimum auto temp setpoint
15AllMaximum auto temp setpoint

Bytes 10-15 appear to only be sent if the extended temperature range is supported by the unit.

Determining Fan Speeds

The number of allowed fan speeds is determined by fan bits A, B, and C, as calculated below:

def get_fan_speeds(capabilities: list[int]):
fan_speed_lut = { 1: 1, 2: 2, 0: 3, 4: 4, 6: 5 }

raw_speed = ((capabilities[0] & 0x10) >> 2) + \
((capabilities[1] & 0x08) >> 2) + \
((capabilities[2] & 0x02) >> 1)

return fan_speed_lut[raw_speed]

The exact mapping as to fan speed names is currently unclear, though the below mapping seems reasonable:

{
1: ["ON"],
2: ["LOW", "HIGH"],
3: ["LOW", "MEDIUM", "HIGH"],
4: ["LOW", "MEDIUM", "HIGH", "VERY_HIGH"]
5: ["VERY_LOW", "LOW", "MEDIUM", "HIGH", "VERY_HIGH"]
}

Note that these values may not correspond with the actual numbers provided to the fan system - verification will need to be done.

Known fan speed values (and model numbers associated with certain fan speed values) are below:

Fan Speed ValueModel NumbersSupported Modes
3SVZ-KP30NA0x02 (Low)
0x03 (Medium)
0x05 (High)
5MSZ-GS12NA, MSZ-FS06NA0x01 (Quiet)
0x02 (Low)
0x03 (Medium)
0x05 (High)
0x06 (Very High)

image

Sample Packets

[FC.7B.01.30.10] C9.03.00.20.00.0A.07.05.E4.25.A6.BC.94.B8.A6.B8 2D  // SVZ-KP30NA
[FC.7B.01.30.10] C9.03.00.20.00.14.07.75.8C.25.A0.BE.94.BE.A0.BE 09 // MSZ-GS12NA
[FC.7B.01.30.10] C9.03.00.20.00.14.07.75.0C.05.A0.BE.94.BE.A0.BE A9 // MSZ-GL06NA
[FC.7B.01.30.10] C9.03.00.09.04.14.07.75.00.00.00.00.00.00.00.00 DB // MSZ-GE35VA
[FC.7B.01.30.10] C9.03.00.20.00.14.07.75.8C.25.A0.BE.94.BE.A0.BE 09 // MSZ-FS06NA
[FC.7B.01.30.10] C9.03.00.08.04.14.07.75.00.00.00.00.00.00.00.00 DC // MSZ-FD25VA
[FC.7B.01.30.10] C9.03.00.20.00.14.07.F5.8C.25.A0.BE.94.BE.A0.BE 89 // MSZ-LN35VGW