Wow, now that’s real nice!
I have an 8-zone, let me look it up.
Is that what you’re after?
class clsLedProto {
public: // Add this line to change the access level to public for the following members
enum ClassStatLeds {
// Enumerations representing the indices in the pulse train for various status LEDs on the HVAC unit
// Rooms are counted from the top left button line by line.
COOL = 0,
AUTO = 1,
ROOM5 = 2,
RUN = 3,
ROOM8 = 4,
ROOM7 = 5,
ROOM6 = 6,
TIMER = 7,
FAN_CONT = 8,
FAN_HI = 9,
FAN_MID = 10,
FAN_LOW = 11,
ROOM3 = 12,
ROOM4 = 13,
ROOM2 = 14,
HEAT = 15,
_3C = 16,
_3F = 17,
_3G = 18,
_3B = 19,
_3A = 20,
ROOM1 = 21,
_3E = 22,
_3D = 23,
_2B = 24,
_2F = 25,
_2G = 26,
_2E = 27,
DP = 28,
_2C = 29,
_2D = 30,
_2A = 31,
_1D = 32,
INSIDE = 33,
_1C = 34,
_1B = 35,
_1E = 36,
_1G = 37,
_1F = 38,
_1A = 39,
};
-------------------------------------------
cool->publish_state(ledProto.p[clsLedProto::COOL] != 0);
auto_md->publish_state(ledProto.p[clsLedProto::AUTO] != 0);
room5->publish_state(ledProto.p[clsLedProto::ROOM5] == 0);
run->publish_state(ledProto.p[clsLedProto::RUN] != 0);
room8->publish_state(ledProto.p[clsLedProto::ROOM8] == 0);
room7->publish_state(ledProto.p[clsLedProto::ROOM7] == 0);
room6->publish_state(ledProto.p[clsLedProto::ROOM6] == 0);
timer->publish_state(ledProto.p[clsLedProto::TIMER] != 0);
fan_cont->publish_state(ledProto.p[clsLedProto::FAN_CONT] != 0);
fan_hi->publish_state(ledProto.p[clsLedProto::FAN_HI] != 0);
fan_mid->publish_state(ledProto.p[clsLedProto::FAN_MID] != 0);
fan_low->publish_state(ledProto.p[clsLedProto::FAN_LOW] != 0);
room3->publish_state(ledProto.p[clsLedProto::ROOM3] != 0);
room4->publish_state(ledProto.p[clsLedProto::ROOM4] != 0);
room2->publish_state(ledProto.p[clsLedProto::ROOM2] != 0);
heat->publish_state(ledProto.p[clsLedProto::HEAT] != 0);
room1->publish_state(ledProto.p[clsLedProto::ROOM1] != 0);
inside->publish_state(ledProto.p[clsLedProto::INSIDE] == 0);
I’m not sure how it behaves on 4-zone but notice the bottom row of the buttons (as they would be on the panel - 5,6,7,8 and the “inside”- which is the flag for when the display is showing the house temps instead of target temps) are “reverted”.