Midea A/C via local XYE

Doing some data analysis:
C0 and C3 response structure is exactly the same.
C4 and C6 response structure is exactly the same.

C0/C3: (Field Number, Not Byte Number)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
AA C0 00 00 00 00 30 14 00 00 15 50 36 00 0C FF 00 00 00 00 00 00 00 00 00 00 00 14 E0 01
C3 80 01 16 52 54 TO 02
81 80 17 54 5E 50
84 81 56 5E
82 58 74
84 5A 80
92

Note for below data - 0x1D was missing, and 0x1E and 0x1F are listed incorrectly on the source site. Corrected here, in italics.
Original data from xye/xye: Reverse engineered information of protocol spoken on the XYE bus found on many AC indoor components of split VRF systems. Primary vendor seems to be Midea, but others vendors seem to sell rebanded versions (e.g. FrigoLine, Mundo Clima, Daikin, ...) - Forgejo: Beyond coding. We Forge..

Byte Field Description
0x00 preambel 0xAA
0x01 response code 0xc0 - Query, 0xc3 - Set, 0xcc - Lock, 0xcd - Unlock
0x02 to master 0x80
0x03 destination 0 … 0x3f - master device id
0x04 Source / Own Id 0 … 0x3f - device id
0x05 destination 0 … 0x3f - master device id
0x06 ??? 0x30 - maybe capabilities
0x07 capabilities 0x80 - extended temp (16 … 32 °C), 0x10 has SWING
0x08 Oper Mode 0x00 - off, 0x80 - auto, 0x88 - Cool, 0x82 - Dry, 0x84 - Heat, 0x81 - Fan
0x09 Fan 0x80 - Auto, 0x01 - High, 0x02 - Medium -0x03 Low
0x0A Set Temp in °C
0x0B T1 Temp in 0.5 °C - 0x30
0x0C T2A Temp in 0.5 °C - 0x30
0x0D T2B Temp in 0.5 °C - 0x30
0x0E T3 Temp in 0.5 °C - 0x30
0x0F Current 0 … 99 Amps
0x10 ??? 0xff - could be frequency
0x11 Timer Start Sum of: 0x01 - 15min, 0x02 - 30min, 0x04 - 1h, 0x08 - 2h, 0x10 - 4h, 0x20 - 8h, 0x40 - 16h 0x80 - invalid
0x12 Timer Stop Sum of: 0x01 - 15min, 0x02 - 30min, 0x04 - 1h, 0x08 - 2h, 0x10 - 4h, 0x20 - 8h, 0x40 - 16h 0x80 - invalid
0x13 ??? 0x01 - run?
0x14 Mode Flags 0x02 - Aux Heat (Turbo), 0x00 - norm, 0x01 - ECO Mode (sleep), 0x04 - SWING, 0x88 VENT
0x15 Oper Flags 0x04 - water pump running, 0x80 - locked
0x16 error E + bit pos, (0…7)
0x17 error E + bit pos, (7…f)
0x18 protect P + bit pos, (0…7)
0x19 protect P + bit pos, (7…f)
0x1A CCM Comm Error 00 … 02
0x1B ??? (0x00)
0x1C ??? (0x00)
0x1D XXX XXX
0x1E CRC 255 - sum(data) % 256 + 1
0x1F prologue 0x55

My Interpretation of the data (Changes in italics):

Field Number Description Notes
1 Preamble 0xAA
2 response code 0xc0 - Query, 0xc3 - Set, 0xC4 - Extended Query?, OxC6 - Follow Me, 0xcc - Lock, 0xcd - Unlock
3 to master 0x00, 0x80
4 destination 0 … 0x3f - master device id
5 Source / Own Id 0 … 0x3f - device id
6 destination 0 … 0x3f - master device id
7 ??? 0x30 - maybe capabilities
8 capabilities 0x14 - Aux Heat?, Air Handler?, 0x80 - extended temp (16 … 32 °C), 0x10 has SWING
9 Oper Mode 0x00/0x04 - off, 0x80 - auto, 0x88 - Cool, 0x82 - Dry, 0x84 - Heat, 0x81 - Fan
10 Fan 0x8? = Auto Fan flag. 0x0 = Stopped, 0x1 = High, 0x2 = Medium, 0x4 = Low. OR the values (e.g 0x84 = Auto Fan, Current SPeed Low)
11 Set Temp in °C
12 T1 Temp in 0.5 °C - 0x28
13 T2A Temp in 0.5 °C - 0x28
14 T2B Temp in 0.5 °C - 0x28
15 T3 Temp in 0.5 °C - 0x28
16 Current 0 … 99 Amps
17 ??? 0x00 - ???, 0xff - could be frequency
18 Timer Start Sum of: 0x01 - 15min, 0x02 - 30min, 0x04 - 1h, 0x08 - 2h, 0x10 - 4h, 0x20 - 8h, 0x40 - 16h 0x80 - invalid
19 Timer Stop Sum of: 0x01 - 15min, 0x02 - 30min, 0x04 - 1h, 0x08 - 2h, 0x10 - 4h, 0x20 - 8h, 0x40 - 16h 0x80 - invalid
20 ??? 0x01 - run?
21 Mode Flags 0x02 - Aux Heat (Turbo), 0x00 - norm, 0x01 - ECO Mode (sleep), 0x04 - SWING, 0x88 VENT
22 Oper Flags 0x04 - water pump running, 0x80 - locked
23 error E + bit pos, (0…7)
24 error E + bit pos, (7…f)
25 protect P + bit pos, (0…7)
26 protect P + bit pos, (7…f)
27 CCM Comm Error 00 … 02
28 ??? (0x00), 0x14 - ??
29 ??? Startup Status Flag 1 - Counts up and then 0xE0 is Normal Operation
30 ? Startup Status Flag 2 - 0x01 is Normal Operation
31 CRC 255 - sum(data) % 256 + 1
32 prologue 0x55

For C4/C6:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
AA C4 00 00 00 00 00 00 00 30 98 00 00 00 00 20 04 01 CD BC D6 Ou 00 00 FF 00 80 80 80 80
C6 01 81 80 CF ts
84 D0 id
D1 e
T

My Interpretation of the data (Field 1-6 Same As Above, all else mine):

Field Number Description Notes
1 Preamble 0xAA
2 response code 0xc0 - Query, 0xc3 - Set, 0xC4 - Extended Query?, OxC6 - Follow Me, 0xcc - Lock, 0xcd - Unlock
3 to master 0x00, 0x80
4 destination 0 … 0x3f - master device id
5 Source / Own Id 0 … 0x3f - device id
6 destination 0 … 0x3f - master device id
7 ? 0x00
8 ? 0x00
9 ? 0x00
10 ? Same as 0xC0 Field 7
11 ? Similar to 0xC0 Field 8?
12 ? 0x00
13 ? 0x00
14 ? 0x00
15 ? 0x00, 0x01
16 ? 0x20, 0x60 - Emergency Heat (Aux Only)
17 Mode 0x04 - Off , 0x81 - Fan, 0x84 Heat, 0x90 auto, 0x88 Cool, 0x82 Dry
18 ? 0x01, 0x80
19 Temperature Setpoint (C = 0.5C scaling, F =1 F scaling, Val - 0x87 = Temp in F)
20 ? 0xBC
21 ? 0xD6
22 Outside Temp in 0.5 °C - 0x28
23 ? 0x00
24 ? 0x00
25 ? 0xFF - Normal, 0x07 - Error?
26 ? 0x00
27 ? 0x80
28 ? 0x80
29 ? 0x80
30 ? 0x80
31 CRC 255 - sum(data) % 256 + 1
32 prologue 0x55

C6 Command set:
My Interpretation of the data (Field 1-6 Same As Above, all else mine):

Field Number Description Notes
1 Preamble 0xAA
2 Command 0xC6 - Extended Set? - Follow-Me, Static Pressure, Emergency Heat Modes
3 to master 0x00, 0x80
4 destination 0 … 0x3f - master device id
5 Source / Own Id 0 … 0x3f - device id
6 destination 0 … 0x3f - master device id
7 ? 0x00
8 ? 0x00
9 Settings 0x95-9F (5-15 for Static Pressure), 0x80 - Emergency Heat
10 ? 0x00
11 Follow-Me Command 0x6 Start, 0x2 Update, 0x4 Stop
12 Follow-Me Temp in C
13 ? 0x00
14 Command Check 0xFF - Field 2
15 CRC 255 - sum(data) % 256 + 1
16 prologue 0x55

That’s where I am so far in terms of analysis. Mind you I’m onlyu using the heating mode right now…Haven’t even tried turning on the Heat + Aux Heat mode.

Also, when I tried to put the unit in Inquiry / Service mode with the remote, it switched it back into Farenheight.on the wired controller display. The only data this affects is the setpoint. Everything else stilli is in C.

-Matt