Compare commits

..

3 commits

Author SHA1 Message Date
reaw55
32c4af34f1 adjust lock check 2024-06-22 06:22:53 +07:00
reaw55
f249dfe314 Merge branch 'all-toggle-fix' 2024-06-22 06:19:04 +07:00
reaw55
f93dbe65f2 changed behavior of system toggle 2024-06-21 21:58:39 +07:00

View file

@ -535,6 +535,13 @@ void ISEDisplay::updatePMinside(u_int16_t pm25_inside)
void ISEDisplay::setPMstate(bool is_pm_on, uint8_t pm_fan_speed)
{
//check pm_lock if true do nothing
this->pm_lock_state = strcmp(pm_lock->getValue(), "on") == 0;
if (this->pm_lock_state == true)
{
ESP_LOGI("ISEDisplay", "PM lock is on, do nothing");
return;
}
ESP_LOGI("ISEDisplay", "Setting PM state: %d, fan speed: %d", is_pm_on, pm_fan_speed);
char buffer[4];
itoa(pm_fan_speed, buffer, DEC);
@ -562,6 +569,13 @@ void ISEDisplay::setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_te
this->ac_fan_speed = ac_fan_speed;
this->ac_mode = ac_mode;
this->ac_temperature = ac_temperature;
//check ac_lock if true do nothing
this->ac_lock_state = strcmp(ac_lock->getValue(), "on") == 0;
if (this->ac_lock_state == true)
{
ESP_LOGI("ISEDisplay", "AC lock is on, do nothing");
return;
}
// check ac_temp is within bound of daikin
if (this->ac_temperature < DAIKIN_MIN_TEMP)
{
@ -1152,24 +1166,44 @@ bool ISEDisplay::calculateAllState()
}
void ISEDisplay::toggleSystem()
{
toggleLightGroupState();
// check for ac lock and pm lock, if lock is on do nothing
if (this->ac_lock_state == true)
// toggleLightGroupState();
// // check for ac lock and pm lock, if lock is on do nothing
// if (this->ac_lock_state == true)
// {
// ESP_LOGI("ISEDisplay", "AC lock is on, do nothing");
// }
// else
// {
// toggleAC();
// }
// if (this->pm_lock_state == true)
// {
// ESP_LOGI("ISEDisplay", "PM lock is on, do nothing");
// }
// else
// {
// togglePM();
// }
bool state = calculateAllState();
if (state)
{
ESP_LOGI("ISEDisplay", "AC lock is on, do nothing");
setACstate(0, ac_fan_speed, ac_temperature);
setLightGroupState(0);
setPMstate(false, pm_fan_speed);
}
else
{
toggleAC();
}
if (this->pm_lock_state == true)
{
ESP_LOGI("ISEDisplay", "PM lock is on, do nothing");
}
else
{
togglePM();
setACstate(2, ac_fan_speed, ac_temperature);
setLightGroupState(3);
setPMstate(true, pm_fan_speed);
}
}
void ISEDisplay::allToggleStandby()
{