Skip to content

(0x7B) Extended Connect Response

KazWolfe edited this page May 11, 2024 · 24 revisions

A response to an extended connect request, as sent in a (0x5B) Extended Connect Request packet. Appears to be used to identify information about the unit that the thermostat is connected to.

Byte Purpose Possible Values Supported by mUART Notes
0 CommandType 0xC9
1-6 TBD 0x03
7-15 Unit Capabilities (See below)
Byte Bitmask Purpose Notes
7 0x01 ??? Observed true
7 0x02 Heat Disabled (if true)
7 0x04 ??? Observed true
7 0x08 ???
7 0x10 Fan Bit A
7 0x20 Vertical Vane support
7 0x40 Vane swing support Seems to cover both vane types, if horizontal vane exists.
7 0x80 ???
8 0x01 Dry function disabled (if true)
8 0x02 Fan function disabled (if true)
8 0x04 Has extended temperature range Seems to determine if the A-scale is usable.
8 0x08 Fan Bit B
8 0x10 Automatic Fan Speed disabled (if true)
8 0x20 Installer Settings (Function) support
8 0x40 Test Mode support
8 0x80 Supports dry temperature
9 0x01 Has status display
9 0x02 Fan Bit C
9 0x04 ??? Observed true and false
9 0x08 ???
9 0x10 ??? Observed true and false
9 0x20 ??? Observed true and false
9 0x40 ???
9 0x80 ??? Observed true and false
10 All Minimum cool/dry temp setpoint
11 All Maximum cool/dry temp setpoint
12 All Minimum heating temp setpoint
13 All Maximum heating temp setpoint
14 All Minimum auto temp setpoint
15 All Maximum auto temp setpoint

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

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.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

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 Value Model Numbers Supported Modes
3 SVZ-KP30NA 0x02 (Low)
0x03 (Medium)
0x05 (High)
5 MSZ-GS12NA 0x01 (Quiet)
0x02 (Low)
0x03 (Medium)
0x05 (High)
0x06 (Very High)

image