diff --git a/platformio.ini b/platformio.ini index b44d0f5..3c9f0c9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,8 +12,8 @@ platform = espressif32 board = wt32-eth01 framework = arduino -lib_deps = siwats/ESPMegaPROR3@^2.3.6 +lib_deps = siwats/ESPMegaPROR3@^2.3.8 monitor_speed = 115200 -build_flags = -DCORE_DEBUG_LEVEL=0 +build_flags = -DCORE_DEBUG_LEVEL=5 upload_port = COM4 monitor_port = COM4 \ No newline at end of file diff --git a/src/ise_display_definitions.hpp b/src/ise_display_definitions.hpp index 6a7d034..a41862a 100644 --- a/src/ise_display_definitions.hpp +++ b/src/ise_display_definitions.hpp @@ -1,13 +1,6 @@ #pragma once //start definition -#define CT_RMS_VOLTAGE 220.0 -#define CT_PIN_LIGHT_PHASE1 0 -#define CT_PIN_LIGHT_PHASE2 1 -#define CT_PIN_SOCKET 2 -#define CT_PIN_AC_PHASE1 3 -#define CT_PIN_AC_PHASE2 4 -#define CT_PIN_AC_PHASE3 5 /* tentetive pin mapping diff --git a/src/main.cpp b/src/main.cpp index 38aa4fa..c33782c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,7 @@ #include +bool analogCardAvailable = false; + RemoteVariable pm25_in = RemoteVariable(); RemoteVariable pm25_out = RemoteVariable(); RemoteVariable temp_out = RemoteVariable(); @@ -128,23 +130,39 @@ void setup() } espmega.outputs.setState(12, true); espmega.outputs.setValue(12,4095); + ESP_LOGD("ISE OS", "Setting up climate cards"); espmega.installCard(2, &climateCard); climateCard.bindFRAM(&espmega.fram, 5000); climateCard.loadStateFromFRAM(); climateCard.setFRAMAutoSave(true); espmega.display->bindClimateCard(&climateCard); - espmega.installCard(4, &ct_light_phase1); - espmega.installCard(5, &ct_light_phase2); - espmega.installCard(6, &ct_socket); - espmega.installCard(7, &ct_ac_phase1); - espmega.installCard(8, &ct_ac_phase2); - espmega.installCard(9, &ct_ac_phase3); - espmega.iot->registerCard(4); - espmega.iot->registerCard(5); - espmega.iot->registerCard(6); - espmega.iot->registerCard(7); - espmega.iot->registerCard(8); - espmega.iot->registerCard(9); + ESP_LOGD("ISE OS", "Installing current transformer cards"); + analogCardAvailable = espmega.installCard(4, &analogCard); + if (analogCardAvailable || CT_FORCE_ENABLE) { + ESP_LOGV("ISE OS", "Analog card available, installing current transformer cards"); + espmega.installCard(5, &ct_light_phase1); + ct_light_phase1.bindFRAM(&espmega.fram, 5010); + espmega.installCard(6, &ct_light_phase2); + ct_light_phase2.bindFRAM(&espmega.fram, 5020); + espmega.installCard(7, &ct_socket); + ct_socket.bindFRAM(&espmega.fram, 5030); + espmega.installCard(8, &ct_ac_phase1); + ct_ac_phase1.bindFRAM(&espmega.fram, 5040); + espmega.installCard(9, &ct_ac_phase2); + ct_ac_phase2.bindFRAM(&espmega.fram, 5050); + espmega.installCard(10, &ct_ac_phase3); + ct_ac_phase3.bindFRAM(&espmega.fram, 5060); + espmega.iot->registerCard(4); + espmega.iot->registerCard(5); + espmega.iot->registerCard(6); + espmega.iot->registerCard(7); + espmega.iot->registerCard(8); + espmega.iot->registerCard(9); + } else { + ESP_LOGE("ISE OS", "Analog card not available, current transformer cards cannot and will not be installed."); + } + ESP_LOGD("ISE OS", "Registering Current Transformer Cards with IoT Module"); + // auto binded_display_update_on_pm25_out = std::bind(&display_update,0,std::placeholders::_1); // auto binded_display_update_on_pm25_in = std::bind(&display_update,1,std::placeholders::_1); // auto binded_display_update_on_temp_out = std::bind(&display_update,2,std::placeholders::_1); diff --git a/src/main.hpp b/src/main.hpp index 58f9919..cac73d3 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -22,6 +22,16 @@ SET_LOOP_TASK_STACK_SIZE(32*1024); #define AIR_CONDITIONER_IR_PIN 5 #define AIR_CONDITIONER_RMT_CHANNEL RMT_CHANNEL_0 +// CT Configuration +#define CT_FORCE_ENABLE false +#define CT_RMS_VOLTAGE 220.0 +#define CT_PIN_LIGHT_PHASE1 0 +#define CT_PIN_LIGHT_PHASE2 1 +#define CT_PIN_SOCKET 2 +#define CT_PIN_AC_PHASE1 3 +#define CT_PIN_AC_PHASE2 4 +#define CT_PIN_AC_PHASE3 5 + void handleMqttMessage(char *topic, char *payload); void subscribeToMqttTopics(); void handlePageChange(uint8_t page);