Compare commits
No commits in common. "main" and "lastest-confrimed-working" have entirely different histories.
main
...
lastest-co
2
.gitignore
vendored
|
|
@ -3,5 +3,3 @@
|
||||||
.vscode/c_cpp_properties.json
|
.vscode/c_cpp_properties.json
|
||||||
.vscode/launch.json
|
.vscode/launch.json
|
||||||
.vscode/ipch
|
.vscode/ipch
|
||||||
/.vscode
|
|
||||||
/.vscode
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
|
|
@ -12,6 +12,6 @@
|
||||||
platform = espressif32
|
platform = espressif32
|
||||||
board = wt32-eth01
|
board = wt32-eth01
|
||||||
framework = arduino
|
framework = arduino
|
||||||
lib_deps = siwats/ESPMegaPROR3@^2.9.4
|
lib_deps = siwats/ESPMegaPROR3@^2.5.3
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
build_flags = -DCORE_DEBUG_LEVEL=0 -DSW_VERSION='"ise-final-1.3"' -DBOARD_MODEL='"ESPMegaPRO R3.3b"'
|
build_flags = -DCORE_DEBUG_LEVEL=0
|
||||||
|
|
|
||||||
|
|
@ -535,13 +535,6 @@ void ISEDisplay::updatePMinside(u_int16_t pm25_inside)
|
||||||
|
|
||||||
void ISEDisplay::setPMstate(bool is_pm_on, uint8_t pm_fan_speed)
|
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);
|
ESP_LOGI("ISEDisplay", "Setting PM state: %d, fan speed: %d", is_pm_on, pm_fan_speed);
|
||||||
char buffer[4];
|
char buffer[4];
|
||||||
itoa(pm_fan_speed, buffer, DEC);
|
itoa(pm_fan_speed, buffer, DEC);
|
||||||
|
|
@ -569,13 +562,6 @@ 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_fan_speed = ac_fan_speed;
|
||||||
this->ac_mode = ac_mode;
|
this->ac_mode = ac_mode;
|
||||||
this->ac_temperature = ac_temperature;
|
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
|
// check ac_temp is within bound of daikin
|
||||||
if (this->ac_temperature < DAIKIN_MIN_TEMP)
|
if (this->ac_temperature < DAIKIN_MIN_TEMP)
|
||||||
{
|
{
|
||||||
|
|
@ -1166,49 +1152,24 @@ bool ISEDisplay::calculateAllState()
|
||||||
}
|
}
|
||||||
void ISEDisplay::toggleSystem()
|
void ISEDisplay::toggleSystem()
|
||||||
{
|
{
|
||||||
// toggleLightGroupState();
|
toggleLightGroupState();
|
||||||
// // check for ac lock and pm lock, if lock is on do nothing
|
// check for ac lock and pm lock, if lock is on do nothing
|
||||||
// if (this->ac_lock_state == true)
|
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)
|
|
||||||
{
|
{
|
||||||
//if AC mode is not zero, toggleAC()
|
ESP_LOGI("ISEDisplay", "AC lock is on, do nothing");
|
||||||
if(ac_mode != 0) {
|
|
||||||
toggleAC();
|
|
||||||
}
|
|
||||||
setLightGroupState(0);
|
|
||||||
setPMstate(false, pm_fan_speed);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(ac_mode == 0) {
|
toggleAC();
|
||||||
toggleAC();
|
}
|
||||||
}
|
if (this->pm_lock_state == true)
|
||||||
setLightGroupState(3);
|
{
|
||||||
setPMstate(true, pm_fan_speed);
|
ESP_LOGI("ISEDisplay", "PM lock is on, do nothing");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
togglePM();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void ISEDisplay::allToggleStandby()
|
void ISEDisplay::allToggleStandby()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,9 @@ lights have 4 states
|
||||||
#define MOTION_REAR 9
|
#define MOTION_REAR 9
|
||||||
|
|
||||||
//PM fanspeed setting
|
//PM fanspeed setting
|
||||||
#define PM_FAN_SPEED_LOW 1
|
#define PM_FAN_SPEED_LOW 3
|
||||||
#define PM_FAN_SPEED_MID 5
|
#define PM_FAN_SPEED_MID 10
|
||||||
#define PM_FAN_SPEED_HIGH 9
|
#define PM_FAN_SPEED_HIGH 18
|
||||||
|
|
||||||
//
|
//
|
||||||
#define DISPLAY_TIMEOUT 5*60*1000 // 5 minutes
|
#define DISPLAY_TIMEOUT 5*60*1000 // 5 minutes
|
||||||
|
|
@ -136,12 +136,6 @@ lights have 4 states
|
||||||
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON 6
|
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON 6
|
||||||
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON_PRESSED 7
|
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON_PRESSED 7
|
||||||
|
|
||||||
//Standby adv setting toggle
|
|
||||||
#define COMPONENT_STANDBY_PIC_ADV_SETTING_TOGGLE_OFF 88
|
|
||||||
#define COMPONENT_STANDBY_PIC_ADV_SETTING_TOGGLE_OFF_PRESSED 89
|
|
||||||
#define COMPONENT_STANDBY_PIC_ADV_SETTING_TOGGLE_ON 90
|
|
||||||
#define COMPONENT_STANDBY_PIC_ADV_SETTING_TOGGLE_ON_PRESSED 91
|
|
||||||
|
|
||||||
//Standby light toggle
|
//Standby light toggle
|
||||||
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF 8
|
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF 8
|
||||||
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF_PRESSED 9
|
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF_PRESSED 9
|
||||||
|
|
|
||||||
76
src/main.cpp
|
|
@ -19,10 +19,6 @@ CurrentTransformerCard ct6 = CurrentTransformerCard(&analogCard, 7, &voltage, &a
|
||||||
float adc2current(uint16_t adc_val)
|
float adc2current(uint16_t adc_val)
|
||||||
{
|
{
|
||||||
// float voltage = adc_val * 0.0007-0.1994;
|
// float voltage = adc_val * 0.0007-0.1994;
|
||||||
if (adc_val > 64000) {
|
|
||||||
// ADC Value is too high, return 0
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
float adc_voltage = adc_val * 0.0007;
|
float adc_voltage = adc_val * 0.0007;
|
||||||
// 0-10V Output with 30A Current Rating CT
|
// 0-10V Output with 30A Current Rating CT
|
||||||
float ct_current = adc_voltage / 10.0 * 30.0;
|
float ct_current = adc_voltage / 10.0 * 30.0;
|
||||||
|
|
@ -104,6 +100,15 @@ void mqttSubscribeCallback()
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
|
// ------------ GPIO 2 Factory Reset Check ------------
|
||||||
|
gpio_config_t gpio_2_conf;
|
||||||
|
gpio_2_conf.intr_type = GPIO_INTR_DISABLE;
|
||||||
|
gpio_2_conf.mode = GPIO_MODE_INPUT;
|
||||||
|
gpio_2_conf.pull_up_en = GPIO_PULLUP_ENABLE;
|
||||||
|
gpio_config(&gpio_2_conf);
|
||||||
|
// If GPIO 2 is pulled low, clear the FRAM then reboot (Reset the device to factory defaults)
|
||||||
|
bool clear_fram = !gpio_get_level(GPIO_NUM_2);
|
||||||
|
// ------------ End GPIO 2 Factory Reset Check ------------
|
||||||
|
|
||||||
|
|
||||||
// ------------ Display Pre Initialization Routine ------------
|
// ------------ Display Pre Initialization Routine ------------
|
||||||
|
|
@ -123,15 +128,30 @@ void setup()
|
||||||
// Give flow of control to OS and scheduler
|
// Give flow of control to OS and scheduler
|
||||||
espmega.begin();
|
espmega.begin();
|
||||||
|
|
||||||
// Set time zone to UTC+7
|
|
||||||
espmega.setTimezone("ICT-7");
|
|
||||||
|
|
||||||
// set debounce time to 500 for pin 0-11
|
// // ------------ Factory Reset Routine ------------
|
||||||
for (uint16_t i = 0; i < 16; i++)
|
// Disable factory reset for now
|
||||||
|
espmega.inputs.loop();
|
||||||
|
|
||||||
|
// set debounce time to 200 for pin 0-7
|
||||||
|
for (uint16_t i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
espmega.inputs.setDebounceTime(i, 75);
|
espmega.inputs.setDebounceTime(i, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (clear_fram)
|
||||||
|
// {
|
||||||
|
// Serial.print("boot_state.txt=\"Factory Resetting . . .\"");
|
||||||
|
// sendStopBytes();
|
||||||
|
// for (uint16_t i = 0; i < 32768; i++)
|
||||||
|
// {
|
||||||
|
// espmega.fram.write8(i, 0);
|
||||||
|
// }
|
||||||
|
// esp_restart();
|
||||||
|
// }
|
||||||
|
// // ------------ End Factory Reset Routine ------------
|
||||||
|
|
||||||
|
|
||||||
// ------------ IoT Module Initialization Routine ------------
|
// ------------ IoT Module Initialization Routine ------------
|
||||||
Serial.print("boot_state.txt=\"IoT Initializing . . .\"");
|
Serial.print("boot_state.txt=\"IoT Initializing . . .\"");
|
||||||
sendStopBytes();
|
sendStopBytes();
|
||||||
|
|
@ -172,10 +192,28 @@ void setup()
|
||||||
climateCard_daikin.setFRAMAutoSave(true);
|
climateCard_daikin.setFRAMAutoSave(true);
|
||||||
espmega.display->bindClimateCard(&climateCard_daikin);
|
espmega.display->bindClimateCard(&climateCard_daikin);
|
||||||
|
|
||||||
// Input callbacks
|
// Current Transformers
|
||||||
// pre-load the input buffers
|
#ifdef ANALOG_ENABLE
|
||||||
ESP_LOGV("ISE IoT OS", "Pre-loading input buffers");
|
espmega.installCard(4, &analogCard);
|
||||||
espmega.inputs.preloadInputBuffer();
|
espmega.installCard(5, &ct1);
|
||||||
|
ct1.bindFRAM(&espmega.fram, 6000);
|
||||||
|
espmega.iot->registerCard(5);
|
||||||
|
espmega.installCard(6, &ct2);
|
||||||
|
ct2.bindFRAM(&espmega.fram, 6100);
|
||||||
|
espmega.iot->registerCard(6);
|
||||||
|
espmega.installCard(7, &ct3);
|
||||||
|
ct3.bindFRAM(&espmega.fram, 6200);
|
||||||
|
espmega.iot->registerCard(7);
|
||||||
|
espmega.installCard(8, &ct4);
|
||||||
|
ct4.bindFRAM(&espmega.fram, 6300);
|
||||||
|
espmega.iot->registerCard(8);
|
||||||
|
espmega.installCard(9, &ct5);
|
||||||
|
ct5.bindFRAM(&espmega.fram, 6400);
|
||||||
|
espmega.iot->registerCard(9);
|
||||||
|
espmega.installCard(10, &ct6);
|
||||||
|
ct6.bindFRAM(&espmega.fram, 6500);
|
||||||
|
espmega.iot->registerCard(10);
|
||||||
|
#endif
|
||||||
|
|
||||||
// ------------ Climate Cards Initialization Routine ------------
|
// ------------ Climate Cards Initialization Routine ------------
|
||||||
ESP_LOGD("ISE OS", "Setting up climate cards");
|
ESP_LOGD("ISE OS", "Setting up climate cards");
|
||||||
|
|
@ -211,28 +249,16 @@ void setup()
|
||||||
ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards");
|
ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards");
|
||||||
espmega.installCard(5, &ct1);
|
espmega.installCard(5, &ct1);
|
||||||
ct1.bindFRAM(&espmega.fram, 5010);
|
ct1.bindFRAM(&espmega.fram, 5010);
|
||||||
ct1.loadEnergy();
|
|
||||||
ct1.setEnergyAutoSave(true);
|
|
||||||
espmega.installCard(6, &ct2);
|
espmega.installCard(6, &ct2);
|
||||||
ct2.bindFRAM(&espmega.fram, 5020);
|
ct2.bindFRAM(&espmega.fram, 5020);
|
||||||
ct2.loadEnergy();
|
|
||||||
ct2.setEnergyAutoSave(true);
|
|
||||||
espmega.installCard(7, &ct3);
|
espmega.installCard(7, &ct3);
|
||||||
ct3.bindFRAM(&espmega.fram, 5030);
|
ct3.bindFRAM(&espmega.fram, 5030);
|
||||||
ct3.loadEnergy();
|
|
||||||
ct3.setEnergyAutoSave(true);
|
|
||||||
espmega.installCard(8, &ct4);
|
espmega.installCard(8, &ct4);
|
||||||
ct4.bindFRAM(&espmega.fram, 5040);
|
ct4.bindFRAM(&espmega.fram, 5040);
|
||||||
ct4.loadEnergy();
|
|
||||||
ct4.setEnergyAutoSave(true);
|
|
||||||
espmega.installCard(9, &ct5);
|
espmega.installCard(9, &ct5);
|
||||||
ct5.bindFRAM(&espmega.fram, 5050);
|
ct5.bindFRAM(&espmega.fram, 5050);
|
||||||
ct5.loadEnergy();
|
|
||||||
ct5.setEnergyAutoSave(true);
|
|
||||||
espmega.installCard(10, &ct5);
|
espmega.installCard(10, &ct5);
|
||||||
ct6.bindFRAM(&espmega.fram, 5060);
|
ct6.bindFRAM(&espmega.fram, 5060);
|
||||||
ct6.loadEnergy();
|
|
||||||
ct6.setEnergyAutoSave(true);
|
|
||||||
espmega.iot->registerCard(5);
|
espmega.iot->registerCard(5);
|
||||||
espmega.iot->registerCard(6);
|
espmega.iot->registerCard(6);
|
||||||
espmega.iot->registerCard(7);
|
espmega.iot->registerCard(7);
|
||||||
|
|
|
||||||