change AC behavior; comfirmed work
This commit is contained in:
parent
d4b36336cd
commit
553eae0566
5 changed files with 59 additions and 9 deletions
Binary file not shown.
|
|
@ -14,4 +14,4 @@ board = wt32-eth01
|
||||||
framework = arduino
|
framework = arduino
|
||||||
lib_deps = siwats/ESPMegaPROR3@^2.5.3
|
lib_deps = siwats/ESPMegaPROR3@^2.5.3
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
build_flags = -DCORE_DEBUG_LEVEL=5
|
build_flags = -DCORE_DEBUG_LEVEL=0
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCar
|
||||||
delay(100);
|
delay(100);
|
||||||
this->updateAirPurifierState();
|
this->updateAirPurifierState();
|
||||||
this->updateSystemtoggle();
|
this->updateSystemtoggle();
|
||||||
|
this->updateAllStandbyToggle();
|
||||||
this->updateACState();
|
this->updateACState();
|
||||||
this->updateLightGroupStatePageDashboard();
|
this->updateLightGroupStatePageDashboard();
|
||||||
|
|
||||||
|
|
@ -65,7 +66,7 @@ void ISEDisplay::loop()
|
||||||
recieveSerialCommand();
|
recieveSerialCommand();
|
||||||
|
|
||||||
// Check if the AC state has been changed
|
// Check if the AC state has been changed
|
||||||
if (ac_press_pending && (millis() - time_since_last_ac_change) > 5000)
|
if (ac_press_pending && (millis() - time_since_last_ac_change) > 500)
|
||||||
{
|
{
|
||||||
ESP_LOGI("ISEDisplay", "Sending AC IR code");
|
ESP_LOGI("ISEDisplay", "Sending AC IR code");
|
||||||
sendACIRcode();
|
sendACIRcode();
|
||||||
|
|
@ -74,7 +75,7 @@ void ISEDisplay::loop()
|
||||||
ESP_LOGI("ISEDisplay", "AC press pending set to false");
|
ESP_LOGI("ISEDisplay", "AC press pending set to false");
|
||||||
}
|
}
|
||||||
// check for ac staggered start
|
// check for ac staggered start
|
||||||
if (ac_staggered_start_call_pending && (millis() - time_since_ac_staggered_start_call) > 1000)
|
if (ac_staggered_start_call_pending && (millis() - time_since_ac_staggered_start_call) > 3000)
|
||||||
{
|
{
|
||||||
ESP_LOGI("ISEDisplay", "Sending Staggered AC IR code (York)");
|
ESP_LOGI("ISEDisplay", "Sending Staggered AC IR code (York)");
|
||||||
sendACIRcode();
|
sendACIRcode();
|
||||||
|
|
@ -148,10 +149,15 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
|
||||||
{
|
{
|
||||||
switch (component)
|
switch (component)
|
||||||
{
|
{
|
||||||
|
case COMPONENT_OBJ_STANDBY_LOGO:
|
||||||
|
if (touch_type != TOUCH_TYPE_RELEASE)
|
||||||
|
break;
|
||||||
|
//this->jumpToPage(2);
|
||||||
|
break;
|
||||||
case COMPONENT_OBJ_STANDBY_BTN_OPEN_ALL_TOGGLE:
|
case COMPONENT_OBJ_STANDBY_BTN_OPEN_ALL_TOGGLE:
|
||||||
if (touch_type != TOUCH_TYPE_RELEASE)
|
if (touch_type != TOUCH_TYPE_RELEASE)
|
||||||
break;
|
break;
|
||||||
allOn();
|
//allToggleStandby();
|
||||||
this->jumpToPage(2);
|
this->jumpToPage(2);
|
||||||
// the function of the button is to open the dashboard from standby
|
// the function of the button is to open the dashboard from standby
|
||||||
break;
|
break;
|
||||||
|
|
@ -325,6 +331,7 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
|
||||||
case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_MASTER_LIGHT:
|
case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_MASTER_LIGHT:
|
||||||
break;
|
break;
|
||||||
case COMPONENT_OBJ_DASHBOARD_LOGO:
|
case COMPONENT_OBJ_DASHBOARD_LOGO:
|
||||||
|
jumpToPage(1);
|
||||||
break;
|
break;
|
||||||
case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_PM_LOCK:
|
case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_PM_LOCK:
|
||||||
if (touch_type != TOUCH_TYPE_RELEASE)
|
if (touch_type != TOUCH_TYPE_RELEASE)
|
||||||
|
|
@ -444,6 +451,7 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value)
|
||||||
{
|
{
|
||||||
// Light
|
// Light
|
||||||
updateLightGroupStatePageStandby();
|
updateLightGroupStatePageStandby();
|
||||||
|
updateAllStandbyToggle();
|
||||||
// time_since_last_screen_update = millis(); // update time since last activity
|
// time_since_last_screen_update = millis(); // update time since last activity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -567,6 +575,7 @@ void ISEDisplay::setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_te
|
||||||
this->ac_press_pending = true;
|
this->ac_press_pending = true;
|
||||||
updateACState();
|
updateACState();
|
||||||
updateSystemtoggle();
|
updateSystemtoggle();
|
||||||
|
updateAllStandbyToggle();
|
||||||
}
|
}
|
||||||
void ISEDisplay::sendACIRcode()
|
void ISEDisplay::sendACIRcode()
|
||||||
{
|
{
|
||||||
|
|
@ -1162,13 +1171,50 @@ void ISEDisplay::toggleSystem()
|
||||||
togglePM();
|
togglePM();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void ISEDisplay::allOn()
|
void ISEDisplay::allToggleStandby()
|
||||||
{
|
{
|
||||||
setLightGroupState(3);
|
bool lightState = calculateLightGroupState();
|
||||||
setPMstate(true, pm_fan_speed);
|
bool pmState = strcmp(pm_switch->getValue(), "on") == 0;
|
||||||
setACstate(2, ac_fan_speed, ac_temperature);
|
if (ac_mode != 0)
|
||||||
}
|
{
|
||||||
|
setACstate(0, ac_fan_speed, ac_temperature);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
setACstate(2, ac_fan_speed, ac_temperature);
|
||||||
|
}
|
||||||
|
if (lightState)
|
||||||
|
{
|
||||||
|
setLightGroupState(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setLightGroupState(3);
|
||||||
|
}
|
||||||
|
if (pmState)
|
||||||
|
{
|
||||||
|
setPMstate(false, pm_fan_speed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setPMstate(true, pm_fan_speed);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
void ISEDisplay::updateAllStandbyToggle()
|
||||||
|
{
|
||||||
|
bool state = calculateAllState();
|
||||||
|
if (!this->takeSerialMutex())
|
||||||
|
return;
|
||||||
|
this->displayAdapter->print("s_open_all.pic=");
|
||||||
|
this->displayAdapter->print(state ? COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON : COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF);
|
||||||
|
this->sendStopBytes();
|
||||||
|
|
||||||
|
this->displayAdapter->print("s_open_all.pic2=");
|
||||||
|
this->displayAdapter->print(state ? COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON_PRESSED : COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF_PRESSED);
|
||||||
|
this->sendStopBytes();
|
||||||
|
|
||||||
|
this->giveSerialMutex();
|
||||||
|
}
|
||||||
void ISEDisplay::toggleLightIndividual(uint8_t row)
|
void ISEDisplay::toggleLightIndividual(uint8_t row)
|
||||||
{
|
{
|
||||||
// Get the current state
|
// Get the current state
|
||||||
|
|
@ -1350,6 +1396,7 @@ void ISEDisplay::handleACChange(uint8_t mode, uint8_t fan_speed, uint8_t tempera
|
||||||
ESP_LOGI("ISEDisplay", "AC state changed: mode: %d, fan speed: %d, temperature: %d", mode, fan_speed, temperature);
|
ESP_LOGI("ISEDisplay", "AC state changed: mode: %d, fan speed: %d, temperature: %d", mode, fan_speed, temperature);
|
||||||
updateACState();
|
updateACState();
|
||||||
updateSystemtoggle();
|
updateSystemtoggle();
|
||||||
|
updateAllStandbyToggle();
|
||||||
}
|
}
|
||||||
void ISEDisplay::updateuserACmode()
|
void ISEDisplay::updateuserACmode()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ class ISEDisplay : public ESPMegaDisplay {
|
||||||
void updateAirPurifierState();
|
void updateAirPurifierState();
|
||||||
void updateAirPurifierStateStandby();
|
void updateAirPurifierStateStandby();
|
||||||
void updateSystemtoggle();
|
void updateSystemtoggle();
|
||||||
|
void updateAllStandbyToggle();
|
||||||
void updateDateTimeText(rtctime_t time);
|
void updateDateTimeText(rtctime_t time);
|
||||||
void updateWeather(char *weather_string);
|
void updateWeather(char *weather_string);
|
||||||
void updateTempOutside(float temp_outside);
|
void updateTempOutside(float temp_outside);
|
||||||
|
|
@ -97,7 +98,7 @@ class ISEDisplay : public ESPMegaDisplay {
|
||||||
void setAClockstate(bool is_ac_lock_on);
|
void setAClockstate(bool is_ac_lock_on);
|
||||||
void toggleACLock();
|
void toggleACLock();
|
||||||
void togglePMLock();
|
void togglePMLock();
|
||||||
void allOn();
|
void allToggleStandby();
|
||||||
void toggleLightGroupState();
|
void toggleLightGroupState();
|
||||||
void toggleLightGroupStateStandby();
|
void toggleLightGroupStateStandby();
|
||||||
void toggleLightIndividual(uint8_t row);
|
void toggleLightIndividual(uint8_t row);
|
||||||
|
|
|
||||||
|
|
@ -346,6 +346,7 @@ void pmswitchupdatedisplay(char *value)
|
||||||
ESP_LOGI("PM switch", "getting PM switch state from MQTT: %d", pm_switch.getValue());
|
ESP_LOGI("PM switch", "getting PM switch state from MQTT: %d", pm_switch.getValue());
|
||||||
iseDisplay.updateAirPurifierState();
|
iseDisplay.updateAirPurifierState();
|
||||||
iseDisplay.updateSystemtoggle();
|
iseDisplay.updateSystemtoggle();
|
||||||
|
iseDisplay.updateAllStandbyToggle();
|
||||||
ESP_LOGI("PM switch", "toggling PM switch state from: %d to %d", pm_switch.getValue(), !pm_switch.getValue());
|
ESP_LOGI("PM switch", "toggling PM switch state from: %d to %d", pm_switch.getValue(), !pm_switch.getValue());
|
||||||
}
|
}
|
||||||
void pmlockupdatedisplay(char *value)
|
void pmlockupdatedisplay(char *value)
|
||||||
|
|
@ -533,6 +534,7 @@ void handlePageChange(uint8_t page)
|
||||||
case PAGE_STANDBY:
|
case PAGE_STANDBY:
|
||||||
iseDisplay.updateLightGroupStatePageStandby();
|
iseDisplay.updateLightGroupStatePageStandby();
|
||||||
iseDisplay.updateAirPurifierStateStandby();
|
iseDisplay.updateAirPurifierStateStandby();
|
||||||
|
iseDisplay.updateAllStandbyToggle();
|
||||||
break;
|
break;
|
||||||
case PAGE_DASHBOARD:
|
case PAGE_DASHBOARD:
|
||||||
iseDisplay.updateLightGroupStatePageDashboard();
|
iseDisplay.updateLightGroupStatePageDashboard();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue