From 7bda72a930103fb333f375036f2db29768c16b58 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Fri, 21 Jun 2024 23:18:40 +0700 Subject: [PATCH 1/6] update library & change debounce --- .gitignore | 1 + platformio.ini | 2 +- src/main.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 89cc49c..c94e4a3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .vscode/c_cpp_properties.json .vscode/launch.json .vscode/ipch +/.vscode diff --git a/platformio.ini b/platformio.ini index a0b6b80..c5204f8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,6 +12,6 @@ platform = espressif32 board = wt32-eth01 framework = arduino -lib_deps = siwats/ESPMegaPROR3@^2.9.0 +lib_deps = siwats/ESPMegaPROR3@^2.9.3 monitor_speed = 115200 build_flags = -DCORE_DEBUG_LEVEL=0 -DSW_VERSION='"ise-final-1.0"' -DBOARD_MODEL='"ESPMegaPRO R3.3b"' \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index d431d35..4fd61d5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -129,7 +129,7 @@ void setup() // set debounce time to 500 for pin 0-11 for (uint16_t i = 0; i < 16; i++) { - espmega.inputs.setDebounceTime(i, 1000); + espmega.inputs.setDebounceTime(i, 75); } // ------------ IoT Module Initialization Routine ------------ From 32c4af34f1ca02483fbb7e44716a20b40560a138 Mon Sep 17 00:00:00 2001 From: reaw55 <58457329+reaw55@users.noreply.github.com> Date: Sat, 22 Jun 2024 06:22:53 +0700 Subject: [PATCH 2/6] adjust lock check --- src/ise_display.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ise_display.cpp b/src/ise_display.cpp index bfd7ed2..db31649 100644 --- a/src/ise_display.cpp +++ b/src/ise_display.cpp @@ -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) { From a294430c0a9eef0eebd3beb4908a11f4a8609c3e Mon Sep 17 00:00:00 2001 From: reaw55 <58457329+reaw55@users.noreply.github.com> Date: Mon, 24 Jun 2024 08:01:34 +0700 Subject: [PATCH 3/6] debugged for AC to work --- src/ise_display.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ise_display.cpp b/src/ise_display.cpp index db31649..097e3c7 100644 --- a/src/ise_display.cpp +++ b/src/ise_display.cpp @@ -1188,13 +1188,18 @@ void ISEDisplay::toggleSystem() bool state = calculateAllState(); if (state) { - setACstate(0, ac_fan_speed, ac_temperature); + //if AC mode is not zero, toggleAC() + if(ac_mode != 0) { + toggleAC(); + } setLightGroupState(0); setPMstate(false, pm_fan_speed); } else { - setACstate(2, ac_fan_speed, ac_temperature); + if(ac_mode == 0) { + toggleAC(); + } setLightGroupState(3); setPMstate(true, pm_fan_speed); } From 181c1937ee32263094f859b25d1c68d0359d4db8 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Fri, 28 Jun 2024 12:29:59 +0700 Subject: [PATCH 4/6] energy auto save --- .gitignore | 1 + src/main.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index c94e4a3..6caeb0e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .vscode/launch.json .vscode/ipch /.vscode +/.vscode diff --git a/src/main.cpp b/src/main.cpp index 4fd61d5..9d67a07 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -177,21 +177,33 @@ void setup() espmega.installCard(4, &analogCard); espmega.installCard(5, &ct1); ct1.bindFRAM(&espmega.fram, 6000); + ct1.loadEnergy(); + ct1.setEnergyAutoSave(true); espmega.iot->registerCard(5); espmega.installCard(6, &ct2); ct2.bindFRAM(&espmega.fram, 6100); + ct2.loadEnergy(); + ct2.setEnergyAutoSave(true); espmega.iot->registerCard(6); espmega.installCard(7, &ct3); ct3.bindFRAM(&espmega.fram, 6200); + ct3.loadEnergy(); + ct3.setEnergyAutoSave(true); espmega.iot->registerCard(7); espmega.installCard(8, &ct4); ct4.bindFRAM(&espmega.fram, 6300); + ct4.loadEnergy(); + ct4.setEnergyAutoSave(true); espmega.iot->registerCard(8); espmega.installCard(9, &ct5); ct5.bindFRAM(&espmega.fram, 6400); + ct5.loadEnergy(); + ct5.setEnergyAutoSave(true); espmega.iot->registerCard(9); espmega.installCard(10, &ct6); ct6.bindFRAM(&espmega.fram, 6500); + ct6.loadEnergy(); + ct6.setEnergyAutoSave(true); espmega.iot->registerCard(10); #endif From fff7fdffc87c4fb1accf26b55fa3dc431f3a5182 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Fri, 28 Jun 2024 21:47:37 +0700 Subject: [PATCH 5/6] Update main.cpp --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 4fd61d5..ce012c6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -198,7 +198,7 @@ void setup() // Input callbacks // pre-load the input buffers ESP_LOGV("ISE IoT OS", "Pre-loading input buffers"); - espmega.inputs.loop(); + espmega.inputs.preloadInputBuffer(); // ------------ Climate Cards Initialization Routine ------------ ESP_LOGD("ISE OS", "Setting up climate cards"); From 29209ac08a69fa660decb46b7e5906b10996d42b Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Fri, 28 Jun 2024 22:37:44 +0700 Subject: [PATCH 6/6] fix energy double loading --- platformio.ini | 4 ++-- src/main.cpp | 47 ++++++++++++----------------------------------- 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/platformio.ini b/platformio.ini index c5204f8..5d21a24 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,6 +12,6 @@ platform = espressif32 board = wt32-eth01 framework = arduino -lib_deps = siwats/ESPMegaPROR3@^2.9.3 +lib_deps = siwats/ESPMegaPROR3@^2.9.4 monitor_speed = 115200 -build_flags = -DCORE_DEBUG_LEVEL=0 -DSW_VERSION='"ise-final-1.0"' -DBOARD_MODEL='"ESPMegaPRO R3.3b"' \ No newline at end of file +build_flags = -DCORE_DEBUG_LEVEL=0 -DSW_VERSION='"ise-final-1.3"' -DBOARD_MODEL='"ESPMegaPRO R3.3b"' \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index d2e6524..fc54fcd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -172,41 +172,6 @@ void setup() climateCard_daikin.setFRAMAutoSave(true); espmega.display->bindClimateCard(&climateCard_daikin); -// Current Transformers -#ifdef ANALOG_ENABLE - espmega.installCard(4, &analogCard); - espmega.installCard(5, &ct1); - ct1.bindFRAM(&espmega.fram, 6000); - ct1.loadEnergy(); - ct1.setEnergyAutoSave(true); - espmega.iot->registerCard(5); - espmega.installCard(6, &ct2); - ct2.bindFRAM(&espmega.fram, 6100); - ct2.loadEnergy(); - ct2.setEnergyAutoSave(true); - espmega.iot->registerCard(6); - espmega.installCard(7, &ct3); - ct3.bindFRAM(&espmega.fram, 6200); - ct3.loadEnergy(); - ct3.setEnergyAutoSave(true); - espmega.iot->registerCard(7); - espmega.installCard(8, &ct4); - ct4.bindFRAM(&espmega.fram, 6300); - ct4.loadEnergy(); - ct4.setEnergyAutoSave(true); - espmega.iot->registerCard(8); - espmega.installCard(9, &ct5); - ct5.bindFRAM(&espmega.fram, 6400); - ct5.loadEnergy(); - ct5.setEnergyAutoSave(true); - espmega.iot->registerCard(9); - espmega.installCard(10, &ct6); - ct6.bindFRAM(&espmega.fram, 6500); - ct6.loadEnergy(); - ct6.setEnergyAutoSave(true); - espmega.iot->registerCard(10); -#endif - // Input callbacks // pre-load the input buffers ESP_LOGV("ISE IoT OS", "Pre-loading input buffers"); @@ -246,16 +211,28 @@ void setup() ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards"); espmega.installCard(5, &ct1); ct1.bindFRAM(&espmega.fram, 5010); + ct1.loadEnergy(); + ct1.setEnergyAutoSave(true); espmega.installCard(6, &ct2); ct2.bindFRAM(&espmega.fram, 5020); + ct2.loadEnergy(); + ct2.setEnergyAutoSave(true); espmega.installCard(7, &ct3); ct3.bindFRAM(&espmega.fram, 5030); + ct3.loadEnergy(); + ct3.setEnergyAutoSave(true); espmega.installCard(8, &ct4); ct4.bindFRAM(&espmega.fram, 5040); + ct4.loadEnergy(); + ct4.setEnergyAutoSave(true); espmega.installCard(9, &ct5); ct5.bindFRAM(&espmega.fram, 5050); + ct5.loadEnergy(); + ct5.setEnergyAutoSave(true); espmega.installCard(10, &ct5); ct6.bindFRAM(&espmega.fram, 5060); + ct6.loadEnergy(); + ct6.setEnergyAutoSave(true); espmega.iot->registerCard(5); espmega.iot->registerCard(6); espmega.iot->registerCard(7);