@everydayimhassling As @stsilver mentioned, not many people have 8-zone systems, so it’s quite possible the codes are incorrect.
It would be great if you could turn each zone on one at a time on the panel, and let me know what happens in HA.
Our current mappings are below. It’s quite possible the zones aren’t set up correctly.
It would be handy if you could also provide a photo of your panel.
enum class LedIndex : std::size_t {
// Mode indicators
COOL = 0,
AUTO_MODE = 1,
RUN = 3,
HEAT = 15,
// Fan speed indicators
FAN_CONT = 8,
FAN_HIGH = 9,
FAN_MID = 10,
FAN_LOW = 11,
// Zone indicators (1-7)
ZONE_1 = 21,
ZONE_2 = 14,
ZONE_3 = 12,
ZONE_4 = 13,
ZONE_5 = 2,
ZONE_6 = 6,
ZONE_7 = 5,
ZONE_8 = 4,
// Other status indicators
TIMER = 7,
INSIDE = 33,
// 7-segment display - Digit 1 (leftmost)
DIGIT1_A = 39,
DIGIT1_B = 35,
DIGIT1_C = 34,
DIGIT1_D = 32,
DIGIT1_E = 36,
DIGIT1_F = 38,
DIGIT1_G = 37,
// 7-segment display - Digit 2 (middle)
DIGIT2_A = 31,
DIGIT2_B = 24,
DIGIT2_C = 29,
DIGIT2_D = 30,
DIGIT2_E = 27,
DIGIT2_F = 25,
DIGIT2_G = 26,
// 7-segment display - Digit 3 (rightmost)
DIGIT3_A = 20,
DIGIT3_B = 19,
DIGIT3_C = 16,
DIGIT3_D = 23,
DIGIT3_E = 22,
DIGIT3_F = 17,
DIGIT3_G = 18,
// Decimal point (between digit 2 and 3)
DP = 28,
};