Skip to content

Commit

Permalink
ESP-DASH Pro update
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieucarbou committed Nov 15, 2024
1 parent a208cc5 commit d9ae38f
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 79 deletions.
22 changes: 0 additions & 22 deletions lib/DimmableLight/src/thyristor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,15 +313,11 @@ void Thyristor::zero_cross_int(void* arg) {
if (diff < semiPeriodLength - Thyristor::semiPeriodShrinkMargin) {
#ifdef ARDUINO_ARCH_ESP32
ets_printf("B%d\n", diff);
#else
Serial.println(String('B') + diff);
#endif
}
if (diff > semiPeriodLength + Thyristor::semiPeriodExpandMargin) {
#ifdef ARDUINO_ARCH_ESP32
ets_printf("A%d\n", diff);
#else
Serial.println(String('A') + diff);
#endif
}
#endif
Expand Down Expand Up @@ -527,14 +523,6 @@ void isr_selector() {
}

void Thyristor::setDelay(uint16_t newDelay) {
if (verbosity > 2) {
for (int i = 0; i < Thyristor::nThyristors; i++) {
Serial.print(String("setB: ") + "posIntoArray:" + thyristors[i]->posIntoArray + " pin:" + thyristors[i]->pin);
Serial.print(" ");
Serial.println(thyristors[i]->delay);
}
}

if (newDelay > semiPeriodLength) {
newDelay = semiPeriodLength;
}
Expand Down Expand Up @@ -634,14 +622,6 @@ void Thyristor::setDelay(uint16_t newDelay) {
attachInterrupt(digitalPinToInterrupt(syncPin), zero_cross_int, syncDir);
#endif
}

if (verbosity > 2) {
for (int i = 0; i < Thyristor::nThyristors; i++) {
Serial.print(String("\tsetB: ") + "posIntoArray:" + thyristors[i]->posIntoArray + " pin:" + thyristors[i]->pin);
Serial.print(" ");
Serial.println(thyristors[i]->delay);
}
}
}

void Thyristor::begin() {
Expand Down Expand Up @@ -836,8 +816,6 @@ bool Thyristor::mustInterruptBeReEnabled(uint16_t newDelay) {
}

allThyristorsOnOff = newAllThyristorsOnOff;
if (verbosity > 1)
Serial.println(String("allThyristorsOnOff: ") + allThyristorsOnOff);
return !interruptEnabled && interruptMustBeEnabled;
}

Expand Down
2 changes: 1 addition & 1 deletion lib/ESPDASHPro
2 changes: 1 addition & 1 deletion lib/MycilaAppInfo/MycilaAppInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ extern const char* __COMPILED_BUILD_HASH__;
extern const char* __COMPILED_BUILD_NAME__;
extern const char* __COMPILED_BUILD_TIMESTAMP__;

Mycila::AppInfoClass::AppInfoClass() : id(Mycila::System::getChipIDStr().c_str()),
Mycila::AppInfoClass::AppInfoClass() : id(Mycila::System::getChipIDStr()),
name(APP_NAME),
model(APP_MODEL),
version(__COMPILED_APP_VERSION__),
Expand Down
3 changes: 2 additions & 1 deletion platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ build_flags =
-D DASH_DEFAULT_CARD_SIZE_XL=6
-D DASH_DEFAULT_CARD_SIZE_XS=12
-D DASH_DEFAULT_CARD_SIZE_XXL=3
-D DASH_USE_STL_STRING=1
; -D DASH_JSON_SIZE=4096
; WebSerial
-D WSL_HIGH_PERF
Expand Down Expand Up @@ -160,7 +161,7 @@ build_flags = -D APP_MODEL_OSS
lib_deps =
mathieucarbou/MycilaWebSerial @ 7.0.1
; ayushsharma82/ESP-DASH @ 4.0.8
https://github.com/mathieucarbou/ayushsharma82-ESP-DASH/archive/refs/heads/dev.zip
https://github.com/mathieucarbou/ayushsharma82-ESP-DASH#dev
lib_ignore =
ESPDASHPro
WebSerialPro
Expand Down
80 changes: 40 additions & 40 deletions src/Website.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -454,23 +454,23 @@ void YaSolR::WebsiteClass::initCards() {

// Statistics

_appManufacturer.set(Mycila::AppInfo.manufacturer.c_str());
_appModel.set((Mycila::AppInfo.model.c_str()));
_appName.set((Mycila::AppInfo.name.c_str()));
_appVersion.set(Mycila::AppInfo.version.c_str());
_deviceBootCount.set(std::to_string(Mycila::System::getBootCount()).c_str());
_appManufacturer.set(Mycila::AppInfo.manufacturer);
_appModel.set(Mycila::AppInfo.model);
_appName.set(Mycila::AppInfo.name);
_appVersion.set(Mycila::AppInfo.version);
_deviceBootCount.set(std::to_string(Mycila::System::getBootCount()));
_deviceBootReason.set(Mycila::System::getLastRebootReason());
_deviceCores.set(std::to_string(ESP.getChipCores()).c_str());
_deviceCores.set(std::to_string(ESP.getChipCores()));
_deviceModel.set(ESP.getChipModel());
_deviceRev.set(std::to_string(ESP.getChipRevision()).c_str());
_deviceID.set(Mycila::AppInfo.id.c_str());
_firmwareBuildHash.set(Mycila::AppInfo.buildHash.c_str());
_firmwareBuildTimestamp.set(Mycila::AppInfo.buildDate.c_str());
_firmwareFilename.set(Mycila::AppInfo.firmware.c_str());
_networkAPMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::AP).c_str());
_networkEthMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::ETH).empty() ? "N/A" : espConnect.getMACAddress(Mycila::ESPConnect::Mode::ETH).c_str());
_networkHostname.set(Mycila::AppInfo.defaultHostname.c_str());
_networkWiFiMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::STA).c_str());
_deviceRev.set(std::to_string(ESP.getChipRevision()));
_deviceID.set(Mycila::AppInfo.id);
_firmwareBuildHash.set(Mycila::AppInfo.buildHash);
_firmwareBuildTimestamp.set(Mycila::AppInfo.buildDate);
_firmwareFilename.set(Mycila::AppInfo.firmware);
_networkAPMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::AP));
_networkEthMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::ETH).empty() ? std::string("N/A") : espConnect.getMACAddress(Mycila::ESPConnect::Mode::ETH));
_networkHostname.set(Mycila::AppInfo.defaultHostname);
_networkWiFiMAC.set(espConnect.getMACAddress(Mycila::ESPConnect::Mode::STA));

#ifdef APP_MODEL_PRO
const bool jsyEnabled = config.getBool(KEY_ENABLE_JSY);
Expand Down Expand Up @@ -671,7 +671,7 @@ void YaSolR::WebsiteClass::initCards() {

_displayType.update(config.get(KEY_DISPLAY_TYPE), "SH1106,SH1107,SSD1306");
_displaySpeed.update(config.getInt(KEY_DISPLAY_SPEED));
_displayRotation.update((config.getString(KEY_DISPLAY_ROTATION) + "°").c_str(), "0°,90°,180°,270°");
_displayRotation.update(config.getString(KEY_DISPLAY_ROTATION) + "°", "0°,90°,180°,270°");
_output1RelayType.update(config.get(KEY_OUTPUT1_RELAY_TYPE), "NO,NC");
_output2RelayType.update(config.get(KEY_OUTPUT2_RELAY_TYPE), "NO,NC");
_relay1Type.update(config.get(KEY_RELAY1_TYPE), "NO,NC");
Expand All @@ -680,8 +680,8 @@ void YaSolR::WebsiteClass::initCards() {
_relay2Load.update(load2);
_output1ResistanceInput.update(config.get(KEY_OUTPUT1_RESISTANCE), config.getFloat(KEY_OUTPUT1_RESISTANCE) == 0 ? DASH_STATUS_DANGER : DASH_STATUS_SUCCESS);
_output2ResistanceInput.update(config.get(KEY_OUTPUT2_RESISTANCE), config.getFloat(KEY_OUTPUT2_RESISTANCE) == 0 ? DASH_STATUS_DANGER : DASH_STATUS_SUCCESS);
_output1DimmerMapper.update((config.getString(KEY_OUTPUT1_DIMMER_MIN) + "," + config.get(KEY_OUTPUT1_DIMMER_MAX)).c_str());
_output2DimmerMapper.update((config.getString(KEY_OUTPUT2_DIMMER_MIN) + "," + config.get(KEY_OUTPUT2_DIMMER_MAX)).c_str());
_output1DimmerMapper.update(config.getString(KEY_OUTPUT1_DIMMER_MIN) + "," + config.get(KEY_OUTPUT1_DIMMER_MAX));
_output2DimmerMapper.update(config.getString(KEY_OUTPUT2_DIMMER_MIN) + "," + config.get(KEY_OUTPUT2_DIMMER_MAX));

_displayType.setDisplay(config.getBool(KEY_ENABLE_DISPLAY));
_displaySpeed.setDisplay(config.getBool(KEY_ENABLE_DISPLAY));
Expand Down Expand Up @@ -780,28 +780,28 @@ void YaSolR::WebsiteClass::updateCards() {
Mycila::System::Memory memory;
Mycila::System::getMemory(memory);
Mycila::ESPConnect::Mode mode = espConnect.getMode();
_output1RelaySwitchCount.set(std::to_string(bypassRelayO1.getSwitchCount()).c_str());
_output2RelaySwitchCount.set(std::to_string(bypassRelayO2.getSwitchCount()).c_str());
_deviceHeapTotal.set((std::to_string(memory.total) + " bytes").c_str());
_deviceHeapUsed.set((std::to_string(memory.used) + " bytes").c_str());
_deviceHeapUsage.set((Mycila::string::to_string(memory.usage, 2) + " %").c_str());
_gridEnergy.set((Mycila::string::to_string(gridMetrics.energy, 3) + " kWh").c_str());
_gridEnergyReturned.set((Mycila::string::to_string(gridMetrics.energyReturned, 3) + " kWh").c_str());
_gridFrequency.set((Mycila::string::to_string(detectGridFrequency(), 0) + " Hz").c_str());
_output1RelaySwitchCount.set(std::to_string(bypassRelayO1.getSwitchCount()));
_output2RelaySwitchCount.set(std::to_string(bypassRelayO2.getSwitchCount()));
_deviceHeapTotal.set(std::to_string(memory.total) + " bytes");
_deviceHeapUsed.set(std::to_string(memory.used) + " bytes");
_deviceHeapUsage.set(Mycila::string::to_string(memory.usage, 2) + " %");
_gridEnergy.set(Mycila::string::to_string(gridMetrics.energy, 3) + " kWh");
_gridEnergyReturned.set(Mycila::string::to_string(gridMetrics.energyReturned, 3) + " kWh");
_gridFrequency.set(Mycila::string::to_string(detectGridFrequency(), 0) + " Hz");
_networkAPIP.set(espConnect.getIPAddress(Mycila::ESPConnect::Mode::AP).toString().c_str());
_networkEthIP.set(espConnect.getIPAddress(Mycila::ESPConnect::Mode::ETH).toString().c_str());
_networkInterface.set(mode == Mycila::ESPConnect::Mode::AP ? "AP" : (mode == Mycila::ESPConnect::Mode::STA ? "WiFi" : (mode == Mycila::ESPConnect::Mode::ETH ? "Ethernet" : "")));
_networkWiFiIP.set(espConnect.getIPAddress(Mycila::ESPConnect::Mode::STA).toString().c_str());
_networkWiFiRSSI.set((std::to_string(espConnect.getWiFiRSSI()) + " dBm").c_str());
_networkWiFiSignal.set((std::to_string(espConnect.getWiFiSignalQuality()) + " %").c_str());
_networkWiFiSSID.set(espConnect.getWiFiSSID().c_str());
_relay1SwitchCount.set(std::to_string(relay1.getSwitchCount()).c_str());
_relay2SwitchCount.set(std::to_string(relay2.getSwitchCount()).c_str());
_udpMessageRateBuffer.set((Mycila::string::to_string(udpMessageRateBuffer.rate(), 2) + " msg/s").c_str());
_time.set(Mycila::Time::getLocalStr().c_str());
_uptime.set(Mycila::Time::toDHHMMSS(Mycila::System::getUptime()).c_str());
_networkWiFiRSSI.set(std::to_string(espConnect.getWiFiRSSI()) + " dBm");
_networkWiFiSignal.set(std::to_string(espConnect.getWiFiSignalQuality()) + " %");
_networkWiFiSSID.set(espConnect.getWiFiSSID());
_relay1SwitchCount.set(std::to_string(relay1.getSwitchCount()));
_relay2SwitchCount.set(std::to_string(relay2.getSwitchCount()));
_udpMessageRateBuffer.set(Mycila::string::to_string(udpMessageRateBuffer.rate(), 2) + " msg/s");
_time.set(Mycila::Time::getLocalStr());
_uptime.set(Mycila::Time::toDHHMMSS(Mycila::System::getUptime()));
#ifdef APP_MODEL_TRIAL
_trialRemainingTime.set(Mycila::Time::toDHHMMSS(Mycila::Trial.getRemaining()).c_str());
_trialRemainingTime.set(Mycila::Time::toDHHMMSS(Mycila::Trial.getRemaining()));
#endif

// home
Expand Down Expand Up @@ -1156,17 +1156,17 @@ void YaSolR::WebsiteClass::_pinout(Card& card, int32_t pin, std::unordered_map<i
card.update(YASOLR_LBL_115, DASH_STATUS_IDLE);
} else if (pinout.find(pin) != pinout.end()) {
std::string v = std::to_string(pin) + " (" YASOLR_LBL_153 ")";
pinout[pin]->update(v.c_str(), DASH_STATUS_DANGER);
card.update(v.c_str(), DASH_STATUS_DANGER);
pinout[pin]->update(v, DASH_STATUS_DANGER);
card.update(v, DASH_STATUS_DANGER);
} else if (!GPIO_IS_VALID_GPIO(pin)) {
pinout[pin] = &card;
card.update((std::to_string(pin) + " (" YASOLR_LBL_154 ")").c_str(), DASH_STATUS_DANGER);
card.update(std::to_string(pin) + " (" YASOLR_LBL_154 ")", DASH_STATUS_DANGER);
} else if (!GPIO_IS_VALID_OUTPUT_GPIO(pin)) {
pinout[pin] = &card;
card.update((std::to_string(pin) + " (" YASOLR_LBL_155 ")").c_str(), DASH_STATUS_WARNING);
card.update(std::to_string(pin) + " (" YASOLR_LBL_155 ")", DASH_STATUS_WARNING);
} else {
pinout[pin] = &card;
card.update((std::to_string(pin) + " (" YASOLR_LBL_156 ")").c_str(), DASH_STATUS_SUCCESS);
card.update(std::to_string(pin) + " (" YASOLR_LBL_156 ")", DASH_STATUS_SUCCESS);
}
}

Expand Down
28 changes: 14 additions & 14 deletions src/init/MQTT.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ Mycila::Task initMqttSubscribersTask("Init MQTT Subscribers", [](void* params) {
});

// grid power
String gridPowerMQTTTopic = config.get(KEY_GRID_POWER_MQTT_TOPIC);
if (!gridPowerMQTTTopic.isEmpty()) {
const std::string& gridPowerMQTTTopic = config.getString(KEY_GRID_POWER_MQTT_TOPIC);
if (!gridPowerMQTTTopic.empty()) {
logger.info(TAG, "Reading Grid Power from MQTT topic: %s", gridPowerMQTTTopic.c_str());
mqtt.subscribe(gridPowerMQTTTopic.c_str(), [](const std::string& topic, const std::string& payload) {
float p = std::stof(payload);
Expand All @@ -103,32 +103,32 @@ Mycila::Task initMqttSubscribersTask("Init MQTT Subscribers", [](void* params) {
}

// grid voltage
String gridVoltageMQTTTopic = config.get(KEY_GRID_VOLTAGE_MQTT_TOPIC);
if (!gridVoltageMQTTTopic.isEmpty()) {
logger.info(TAG, "Reading Grid Voltage from MQTT topic: %s", gridVoltageMQTTTopic.c_str());
mqtt.subscribe(gridVoltageMQTTTopic.c_str(), [](const std::string& topic, const std::string& payload) {
const char* gridVoltageMQTTTopic = config.get(KEY_GRID_VOLTAGE_MQTT_TOPIC);
if (gridVoltageMQTTTopic[0] != '\0') {
logger.info(TAG, "Reading Grid Voltage from MQTT topic: %s", gridVoltageMQTTTopic);
mqtt.subscribe(gridVoltageMQTTTopic, [](const std::string& topic, const std::string& payload) {
float v = std::stof(payload);
logger.debug(TAG, "Grid Voltage from MQTT: %f", v);
grid.mqttVoltage().update(v);
});
}

// output 1 temperature
String output1TemperatureMQTTTopic = config.get(KEY_OUTPUT1_TEMPERATURE_MQTT_TOPIC);
if (!output1TemperatureMQTTTopic.isEmpty()) {
logger.info(TAG, "Reading Output 1 Temperature from MQTT topic: %s", output1TemperatureMQTTTopic.c_str());
mqtt.subscribe(output1TemperatureMQTTTopic.c_str(), [](const std::string& topic, const std::string& payload) {
const char* output1TemperatureMQTTTopic = config.get(KEY_OUTPUT1_TEMPERATURE_MQTT_TOPIC);
if (output1TemperatureMQTTTopic[0] != '\0') {
logger.info(TAG, "Reading Output 1 Temperature from MQTT topic: %s", output1TemperatureMQTTTopic);
mqtt.subscribe(output1TemperatureMQTTTopic, [](const std::string& topic, const std::string& payload) {
float t = std::stof(payload);
logger.debug(TAG, "Output 1 Temperature from MQTT: %f", t);
output1.temperature().update(t);
});
}

// output 2 temperature
String output2TemperatureMQTTTopic = config.get(KEY_OUTPUT2_TEMPERATURE_MQTT_TOPIC);
if (!output2TemperatureMQTTTopic.isEmpty()) {
logger.info(TAG, "Reading Output 2 Temperature from MQTT topic: %s", output2TemperatureMQTTTopic.c_str());
mqtt.subscribe(output2TemperatureMQTTTopic.c_str(), [](const std::string& topic, const std::string& payload) {
const char* output2TemperatureMQTTTopic = config.get(KEY_OUTPUT2_TEMPERATURE_MQTT_TOPIC);
if (output2TemperatureMQTTTopic[0] != '\0') {
logger.info(TAG, "Reading Output 2 Temperature from MQTT topic: %s", output2TemperatureMQTTTopic);
mqtt.subscribe(output2TemperatureMQTTTopic, [](const std::string& topic, const std::string& payload) {
float t = std::stof(payload);
logger.debug(TAG, "Output 2 Temperature from MQTT: %f", t);
output2.temperature().update(t);
Expand Down

0 comments on commit d9ae38f

Please sign in to comment.