Allows individual control of power and mode

Power and mode must be individually controllable. Some devices may not function properly if the mode is also turned off when the power is turned off.

see. https://github.com/crankyoldgit/IRremoteESP8266/issues/1402
This commit is contained in:
Naoki Sawada 2021-02-04 20:56:06 +09:00 committed by GitHub
parent 62c95122f2
commit 07cc553669
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -203,12 +203,11 @@ String sendACJsonState(const stdAc::state_t &state) {
json.add(PSTR(D_JSON_IRHVAC_VENDOR), typeToString(state.protocol));
json.add(PSTR(D_JSON_IRHVAC_MODEL), state.model);
// Home Assistant wants mode to be off if power is also off & vice-versa.
if (state.mode == stdAc::opmode_t::kOff || !state.power) {
json.add(PSTR(D_JSON_IRHVAC_MODE), IRac::opmodeToString(stdAc::opmode_t::kOff));
json.add(PSTR(D_JSON_IRHVAC_MODE), IRac::opmodeToString(state.mode));
// Home Assistant wants power to be off if mode is also off.
if (state.mode == stdAc::opmode_t::kOff) {
json.add(PSTR(D_JSON_IRHVAC_POWER), IRac::boolToString(false));
} else {
json.add(PSTR(D_JSON_IRHVAC_MODE), IRac::opmodeToString(state.mode));
json.add(PSTR(D_JSON_IRHVAC_POWER), IRac::boolToString(state.power));
}
json.add(PSTR(D_JSON_IRHVAC_CELSIUS), IRac::boolToString(state.celsius));