Skip to content

Commit

Permalink
More fixes...
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieucarbou committed Jun 14, 2024
1 parent 8f931bd commit 49f29a1
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 36 deletions.
6 changes: 4 additions & 2 deletions include/YaSolRWebsite.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ namespace YaSolR {
Card _output1THDi = Card(&dashboard, ENERGY_CARD, "THDi", "%");
Card _output1Voltage = Card(&dashboard, ENERGY_CARD, "Voltage", "V");
Card _output1Current = Card(&dashboard, ENERGY_CARD, "Current", "A");
Card _output1Resistance = Card(&dashboard, ENERGY_CARD, "Resistance", "Ω");
Card _output1Energy = Card(&dashboard, ENERGY_CARD, "Energy", "kWh");
Card _output1Resistance = Card(&dashboard, TEXT_INPUT_CARD, "Output 1 Resistance", "Ω");
Card _output1DimmerAuto = Card(&dashboard, BUTTON_CARD, "Dimmer Automatic Control");
Card _output1DimmerLimiter = Card(&dashboard, SLIDER_CARD, "Dimmer Limiter", "", 0, YASOLR_DIMMER_MAX_LEVEL, 1);
Card _output1BypassAuto = Card(&dashboard, BUTTON_CARD, "Bypass Automatic Control");
Expand All @@ -121,8 +121,8 @@ namespace YaSolR {
Card _output2THDi = Card(&dashboard, ENERGY_CARD, "THDi", "%");
Card _output2Voltage = Card(&dashboard, ENERGY_CARD, "Voltage", "V");
Card _output2Current = Card(&dashboard, ENERGY_CARD, "Current", "A");
Card _output2Resistance = Card(&dashboard, ENERGY_CARD, "Resistance", "Ω");
Card _output2Energy = Card(&dashboard, ENERGY_CARD, "Energy", "kWh");
Card _output2Resistance = Card(&dashboard, TEXT_INPUT_CARD, "Output 2 Resistance", "Ω");
Card _output2DimmerAuto = Card(&dashboard, BUTTON_CARD, "Dimmer Automatic Control");
Card _output2DimmerLimiter = Card(&dashboard, SLIDER_CARD, "Dimmer Limiter", "", 0, YASOLR_DIMMER_MAX_LEVEL, 1);
Card _output2BypassAuto = Card(&dashboard, BUTTON_CARD, "Bypass Automatic Control");
Expand Down Expand Up @@ -217,6 +217,8 @@ namespace YaSolR {
Card _displaySpeed = Card(&dashboard, SLIDER_CARD, "Display Speed", "s", 1, 10, 1);
Card _displayType = Card(&dashboard, DROPDOWN_CARD, "Display Type");
Card _displayRotation = Card(&dashboard, DROPDOWN_CARD, "Display Rotation");
Card _output1ResistanceCal = Card(&dashboard, TEXT_INPUT_CARD, "Output 1 Resistance (Ohm)", "Ω");
Card _output2ResistanceCal = Card(&dashboard, TEXT_INPUT_CARD, "Output 2 Resistance (Ohm)", "Ω");
Card _output1PZEMSync = Card(&dashboard, PUSH_BUTTON_CARD, "Output 1 PZEM Pairing");
Card _output2PZEMSync = Card(&dashboard, PUSH_BUTTON_CARD, "Output 2 PZEM Pairing");
Card _output1RelayType = Card(&dashboard, DROPDOWN_CARD, "Output 1 Bypass Relay Type");
Expand Down
34 changes: 24 additions & 10 deletions lib/MycilaRouter/MycilaRouterOutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ namespace Mycila {
float nominalPower = 0;
float power = 0;
float powerFactor = 0;
float resistance = 0;
float thdi = 0;
float voltage = 0;
} RouterOutputMetrics;
Expand All @@ -46,7 +47,7 @@ namespace Mycila {
class RouterOutput {
public:
typedef struct {
float resistance = 0;
float calibratedResistance = 0;
bool autoDimmer = false;
uint16_t dimmerLimit = MYCILA_DIMMER_MAX_LEVEL;
bool autoBypass = false;
Expand Down Expand Up @@ -96,7 +97,6 @@ namespace Mycila {
root["state"] = getStateName();
root["bypass"] = isBypassOn() ? "on" : "off";
root["online"] = metrics.connected;
root["resistance"] = config.resistance;

_dimmer->toJson(root["dimmer"].to<JsonObject>());
_temperatureSensor->toJson(root["ds18"].to<JsonObject>());
Expand All @@ -107,6 +107,7 @@ namespace Mycila {
jsonMetrics["energy"] = metrics.energy;
jsonMetrics["power"] = metrics.power;
jsonMetrics["power_factor"] = metrics.powerFactor;
jsonMetrics["resistance"] = metrics.resistance;
jsonMetrics["thdi"] = metrics.thdi;
jsonMetrics["voltage"] = metrics.voltage;
jsonMetrics["voltage_dimmed"] = metrics.dimmedVoltage;
Expand All @@ -115,6 +116,7 @@ namespace Mycila {
jsonMetrics["pzem"]["current"] = _pzem->getCurrent();
jsonMetrics["pzem"]["power"] = _pzem->getPower();
jsonMetrics["pzem"]["power_factor"] = _pzem->getPowerFactor();
jsonMetrics["pzem"]["resistance"] = _pzem->getResistance();
jsonMetrics["pzem"]["thdi"] = _pzem->getTHDi(0);
jsonMetrics["pzem"]["voltage"] = _pzem->getVoltage();
jsonMetrics["pzem"]["voltage_dimmed"] = _pzem->getPower() / _pzem->getCurrent();
Expand Down Expand Up @@ -150,15 +152,27 @@ namespace Mycila {
metrics.voltage = _pzem->isConnected() ? _pzem->getVoltage() : _grid->getVoltage();
metrics.connected = metrics.voltage > 0;
metrics.energy = _pzem->getEnergy();
metrics.nominalPower = config.resistance == 0 ? 0 : metrics.voltage * metrics.voltage / config.resistance;
if (getState() == RouterOutputState::OUTPUT_ROUTING) {
float dutyCycle = _dimmer->getPowerDutyCycle();
metrics.power = dutyCycle * metrics.nominalPower;
metrics.powerFactor = sqrt(dutyCycle);
metrics.dimmedVoltage = metrics.powerFactor * metrics.voltage;
metrics.current = config.resistance == 0 ? 0 : metrics.dimmedVoltage / config.resistance;
metrics.apparentPower = metrics.current * metrics.voltage;
metrics.thdi = dutyCycle == 0 ? 0 : sqrt(1 / dutyCycle - 1);
if (config.calibratedResistance) {
float dutyCycle = _dimmer->getPowerDutyCycle();
metrics.resistance = config.calibratedResistance;
metrics.nominalPower = metrics.resistance == 0 ? 0 : metrics.voltage * metrics.voltage / metrics.resistance;
metrics.power = dutyCycle * metrics.nominalPower;
metrics.powerFactor = sqrt(dutyCycle);
metrics.dimmedVoltage = metrics.powerFactor * metrics.voltage;
metrics.current = metrics.resistance == 0 ? 0 : metrics.dimmedVoltage / metrics.resistance;
metrics.apparentPower = metrics.current * metrics.voltage;
metrics.thdi = dutyCycle == 0 ? 0 : sqrt(1 / dutyCycle - 1);
} else {
metrics.resistance = _pzem->getResistance();
metrics.nominalPower = metrics.resistance == 0 ? 0 : metrics.voltage * metrics.voltage / metrics.resistance;
metrics.power = _pzem->getPower();
metrics.powerFactor = _pzem->getPowerFactor();
metrics.current = _pzem->getCurrent();
metrics.apparentPower = _pzem->getApparentPower();
metrics.dimmedVoltage = metrics.power / metrics.current;
metrics.thdi = _pzem->getTHDi(0);
}
}
}

Expand Down
14 changes: 10 additions & 4 deletions src/Website.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ void YaSolR::WebsiteClass::initLayout() {
_daysConfig(_output1AutoStartWDays, KEY_OUTPUT1_DAYS);
_numConfig(_output1AutoStartTemp, KEY_OUTPUT1_TEMPERATURE_START);
_numConfig(_output1AutoStoptTemp, KEY_OUTPUT1_TEMPERATURE_STOP);
_numConfig(_output1Resistance, KEY_OUTPUT1_RESISTANCE);
_sliderConfig(_output1DimmerLimiter, KEY_OUTPUT1_DIMMER_LIMITER);
_textConfig(_output1AutoStartTime, KEY_OUTPUT1_TIME_START);
_textConfig(_output1AutoStoptTime, KEY_OUTPUT1_TIME_STOP);
Expand All @@ -83,7 +82,6 @@ void YaSolR::WebsiteClass::initLayout() {
_daysConfig(_output2AutoStartWDays, KEY_OUTPUT2_DAYS);
_numConfig(_output2AutoStartTemp, KEY_OUTPUT2_TEMPERATURE_START);
_numConfig(_output2AutoStoptTemp, KEY_OUTPUT2_TEMPERATURE_STOP);
_numConfig(_output2Resistance, KEY_OUTPUT2_RESISTANCE);
_sliderConfig(_output2DimmerLimiter, KEY_OUTPUT2_DIMMER_LIMITER);
_textConfig(_output2AutoStartTime, KEY_OUTPUT2_TIME_START);
_textConfig(_output2AutoStoptTime, KEY_OUTPUT2_TIME_STOP);
Expand Down Expand Up @@ -172,6 +170,8 @@ void YaSolR::WebsiteClass::initLayout() {
_output1Relay.setTab(&_hardwareEnableTab);
_output1DS18.setTab(&_hardwareEnableTab);
_output2Dimmer.setTab(&_hardwareEnableTab);
_output1ResistanceCal.setTab(&_hardwareConfigTab);
_output2ResistanceCal.setTab(&_hardwareConfigTab);
_output2PZEM.setTab(&_hardwareEnableTab);
_output2Relay.setTab(&_hardwareEnableTab);
_output2DS18.setTab(&_hardwareEnableTab);
Expand Down Expand Up @@ -214,6 +214,8 @@ void YaSolR::WebsiteClass::initLayout() {
_numConfig(_relay1Load, KEY_RELAY1_LOAD);
_numConfig(_relay2Load, KEY_RELAY2_LOAD);
_textConfig(_displayType, KEY_DISPLAY_TYPE);
_numConfig(_output1ResistanceCal, KEY_OUTPUT1_RESISTANCE);
_numConfig(_output2ResistanceCal, KEY_OUTPUT2_RESISTANCE);
_textConfig(_output1RelayType, KEY_OUTPUT1_RELAY_TYPE);
_textConfig(_output2RelayType, KEY_OUTPUT2_RELAY_TYPE);
_textConfig(_relay1Type, KEY_RELAY1_TYPE);
Expand Down Expand Up @@ -308,7 +310,6 @@ void YaSolR::WebsiteClass::initCards() {
_output1DimmerAuto.update(autoDimmerO1Activated);
_output1DimmerLimiter.update(static_cast<int>(config.get(KEY_OUTPUT1_DIMMER_LIMITER).toInt()));
_output1BypassAuto.update(autoBypassActivated);
_output1Resistance.update(config.get(KEY_OUTPUT1_RESISTANCE));
_output1AutoStartWDays.update(config.get(KEY_OUTPUT1_DAYS));
_output1AutoStartTemp.update(config.get(KEY_OUTPUT1_TEMPERATURE_START));
_output1AutoStartTime.update(config.get(KEY_OUTPUT1_TIME_START));
Expand Down Expand Up @@ -348,7 +349,6 @@ void YaSolR::WebsiteClass::initCards() {
_output2DimmerAuto.update(autoDimmerO2Activated);
_output2DimmerLimiter.update(static_cast<int>(config.get(KEY_OUTPUT2_DIMMER_LIMITER).toInt()));
_output2BypassAuto.update(autoBypassO2Activated);
_output2Resistance.update(config.get(KEY_OUTPUT2_RESISTANCE));
_output2AutoStartWDays.update(config.get(KEY_OUTPUT2_DAYS));
_output2AutoStartTemp.update(config.get(KEY_OUTPUT2_TEMPERATURE_START));
_output2AutoStartTime.update(config.get(KEY_OUTPUT2_TIME_START));
Expand Down Expand Up @@ -439,10 +439,14 @@ void YaSolR::WebsiteClass::initCards() {
_displayType.update(config.get(KEY_DISPLAY_TYPE), "SH1106,SH1107,SSD1306");
_displaySpeed.update(static_cast<int>(config.get(KEY_DISPLAY_SPEED).toInt()));
_displayRotation.update(config.get(KEY_DISPLAY_ROTATION) + "°", "0°,90°,180°,270°");
_output1ResistanceCal.update(config.get(KEY_OUTPUT1_RESISTANCE));
_output2ResistanceCal.update(config.get(KEY_OUTPUT2_RESISTANCE));

_displayType.setDisplay(config.getBool(KEY_ENABLE_DISPLAY));
_displaySpeed.setDisplay(config.getBool(KEY_ENABLE_DISPLAY));
_displayRotation.setDisplay(config.getBool(KEY_ENABLE_DISPLAY));
_output1ResistanceCal.setDisplay(dimmer1Enabled);
_output2ResistanceCal.setDisplay(dimmer2Enabled);
_output1PZEMSync.setDisplay(config.getBool(KEY_ENABLE_OUTPUT1_PZEM));
_output2PZEMSync.setDisplay(config.getBool(KEY_ENABLE_OUTPUT2_PZEM));
_output1RelayType.setDisplay(config.getBool(KEY_ENABLE_OUTPUT1_RELAY));
Expand Down Expand Up @@ -545,6 +549,7 @@ void YaSolR::WebsiteClass::updateCards() {
_output1THDi.update(routerMetrics.outputs[0].thdi * 100);
_output1Voltage.update(routerMetrics.outputs[0].dimmedVoltage);
_output1Current.update(routerMetrics.outputs[0].current);
_output1Resistance.update(routerMetrics.outputs[0].resistance);
_output1Energy.update(routerMetrics.outputs[0].energy);

// output 2
Expand Down Expand Up @@ -575,6 +580,7 @@ void YaSolR::WebsiteClass::updateCards() {
_output2THDi.update(routerMetrics.outputs[1].thdi * 100);
_output2Voltage.update(routerMetrics.outputs[1].dimmedVoltage);
_output2Current.update(routerMetrics.outputs[1].current);
_output2Resistance.update(routerMetrics.outputs[1].resistance);
_output2Energy.update(routerMetrics.outputs[1].energy);

// relays
Expand Down
4 changes: 2 additions & 2 deletions src/init/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Mycila::Task initConfigTask("Init Config", [](void* params) {
routerRelay2.setLoad(config.get(KEY_RELAY2_LOAD).toInt());

// output1
output1.config.resistance = config.get(KEY_OUTPUT1_RESISTANCE).toFloat();
output1.config.calibratedResistance = config.get(KEY_OUTPUT1_RESISTANCE).toFloat();
output1.config.autoDimmer = config.getBool(KEY_ENABLE_OUTPUT1_AUTO_DIMMER);
output1.config.dimmerLimit = config.get(KEY_OUTPUT1_DIMMER_LIMITER).toInt();
output1.config.autoBypass = config.getBool(KEY_ENABLE_OUTPUT1_AUTO_BYPASS);
Expand All @@ -51,7 +51,7 @@ Mycila::Task initConfigTask("Init Config", [](void* params) {
output1.config.weekDays = config.get(KEY_OUTPUT1_DAYS);

// output2
output2.config.resistance = config.get(KEY_OUTPUT2_RESISTANCE).toFloat();
output2.config.calibratedResistance = config.get(KEY_OUTPUT2_RESISTANCE).toFloat();
output2.config.autoDimmer = config.getBool(KEY_ENABLE_OUTPUT2_AUTO_DIMMER);
output2.config.dimmerLimit = config.get(KEY_OUTPUT2_DIMMER_LIMITER).toInt();
output2.config.autoBypass = config.getBool(KEY_ENABLE_OUTPUT2_AUTO_BYPASS);
Expand Down
4 changes: 2 additions & 2 deletions src/init/Events.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ Mycila::Task initEventsTask("Init Events", [](void* params) {
routerRelay2.setLoad(config.get(KEY_RELAY2_LOAD).toInt());

} else if (key == KEY_OUTPUT1_RESISTANCE) {
output1.config.resistance = config.get(KEY_OUTPUT1_RESISTANCE).toFloat();
output1.config.calibratedResistance = config.get(KEY_OUTPUT1_RESISTANCE).toFloat();

} else if (key == KEY_OUTPUT2_RESISTANCE) {
output2.config.resistance = config.get(KEY_OUTPUT2_RESISTANCE).toFloat();
output2.config.calibratedResistance = config.get(KEY_OUTPUT2_RESISTANCE).toFloat();

} else if (key == KEY_ENABLE_OUTPUT1_AUTO_DIMMER) {
output1.config.autoDimmer = config.getBool(KEY_ENABLE_OUTPUT1_AUTO_DIMMER);
Expand Down
2 changes: 1 addition & 1 deletion src/init/REST.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,6 @@ Mycila::Task initRestApiTask("Init REST API", [](void* params) {
for (const auto& output : router.getOutputs()) {
JsonObject json = root[output->getName()].to<JsonObject>();
json["bypass"] = YASOLR_STATE(output->isBypassOn());
json["resistance"] = output->config.resistance;
json["state"] = output->getStateName();
json["temperature"] = ds18O1.getLastTemperature();

Expand All @@ -347,6 +346,7 @@ Mycila::Task initRestApiTask("Init REST API", [](void* params) {
json["metrics"]["energy"] = routerMetrics.outputs[idx].energy;
json["metrics"]["power"] = routerMetrics.outputs[idx].power;
json["metrics"]["power_factor"] = routerMetrics.outputs[idx].powerFactor;
json["metrics"]["resistance"] = routerMetrics.outputs[idx].resistance;
json["metrics"]["thdi"] = routerMetrics.outputs[idx].thdi;
json["metrics"]["voltage_dimmed"] = routerMetrics.outputs[idx].dimmedVoltage;

Expand Down
18 changes: 9 additions & 9 deletions src/tasks/Debug.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-License-Identifier: %GPL-3.0-or-later
/*
* Copyright (C) 2023-2024 Mathieu Carbou and others
*/
Expand All @@ -20,12 +20,12 @@ Mycila::Task routerDebugTask("Router Debug", [](void* params) {
Mycila::RouterMetrics routerMetrics;
router.getMetrics(routerMetrics);

logger.info(TAG, "JSY CH %d: U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", 1, jsy.getVoltage1(), jsy.getCurrent1(), jsy.getResistance1(), jsy.getPower1(), jsy.getApparentPower1(), jsy.getPowerFactor1(), jsy.getTHDi1(0), jsy.getFrequency());
logger.info(TAG, "JSY CH %d: U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", 1, jsy.getVoltage2(), jsy.getCurrent2(), jsy.getResistance2(), jsy.getPower2(), jsy.getApparentPower2(), jsy.getPowerFactor2(), jsy.getTHDi2(0), jsy.getFrequency());
logger.info(TAG, "PZEM O%d : U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", 1, pzemO1.getVoltage(), pzemO1.getCurrent(), pzemO1.getResistance(), pzemO1.getPower(), pzemO1.getApparentPower(), pzemO1.getPowerFactor(), pzemO1.getTHDi(0), pzemO1.getFrequency());
logger.info(TAG, "PZEM O%d : U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", 2, pzemO2.getVoltage(), pzemO2.getCurrent(), pzemO2.getResistance(), pzemO2.getPower(), pzemO2.getApparentPower(), pzemO2.getPowerFactor(), pzemO2.getTHDi(0), pzemO2.getFrequency());
logger.info(TAG, "GRID : U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", gridMetrics.voltage, gridMetrics.current, 0, gridMetrics.power, gridMetrics.apparentPower, gridMetrics.powerFactor, 0, gridMetrics.frequency);
logger.info(TAG, "ROUTER : U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz", 0, routerMetrics.current, 0, routerMetrics.power, routerMetrics.apparentPower, routerMetrics.powerFactor, routerMetrics.thdi, 0);
logger.info(TAG, "OUTPUT %d: U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz U'=%3.3fV N=%3.3fW D=%" PRIu16 " DC=%1.4f", 1, routerMetrics.outputs[0].voltage, routerMetrics.outputs[0].current, output1.config.resistance, routerMetrics.outputs[0].power, routerMetrics.outputs[0].apparentPower, routerMetrics.outputs[0].powerFactor, routerMetrics.outputs[0].thdi, 0, routerMetrics.outputs[0].dimmedVoltage, routerMetrics.outputs[0].nominalPower, dimmerO1.getPowerDuty(), dimmerO1.getPowerDutyCycle());
logger.info(TAG, "OUTPUT %d: U=%3.3fV I=%1.3fA R=%3.3fΩ P=%3.3fW S=%3.3fVA PF=%1.3f THDi=%1.3f f=%2.3fHz U'=%3.3fV N=%3.3fW D=%" PRIu16 " DC=%1.4f", 2, routerMetrics.outputs[1].voltage, routerMetrics.outputs[1].current, output2.config.resistance, routerMetrics.outputs[1].power, routerMetrics.outputs[1].apparentPower, routerMetrics.outputs[1].powerFactor, routerMetrics.outputs[1].thdi, 0, routerMetrics.outputs[1].dimmedVoltage, routerMetrics.outputs[1].nominalPower, dimmerO2.getPowerDuty(), dimmerO2.getPowerDutyCycle());
logger.info(TAG, "[ JSY CH%d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | F: %4.1f Hz |", 1, jsy.getVoltage1(), jsy.getCurrent1(), jsy.getResistance1() > 1000 ? 0 : jsy.getResistance1(), jsy.getPower1(), jsy.getApparentPower1(), jsy.getPowerFactor1(), jsy.getTHDi1(0), jsy.getFrequency());
logger.info(TAG, "[ JSY CH%d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | F: %4.1f Hz |", 2, jsy.getVoltage2(), jsy.getCurrent2(), jsy.getResistance2(), jsy.getPower2(), jsy.getApparentPower2(), jsy.getPowerFactor2(), jsy.getTHDi2(0), jsy.getFrequency());
logger.info(TAG, "[ PZEM %d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | F: %4.1f Hz | U':%7.2f V |", 1, pzemO1.getVoltage(), pzemO1.getCurrent(), pzemO1.getResistance(), pzemO1.getPower(), pzemO1.getApparentPower(), pzemO1.getPowerFactor(), pzemO1.getTHDi(0), pzemO1.getFrequency(), pzemO1.getPower() / pzemO1.getCurrent());
logger.info(TAG, "[ PZEM %d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | F: %4.1f Hz | U':%7.2f V |", 2, pzemO2.getVoltage(), pzemO2.getCurrent(), pzemO2.getResistance(), pzemO2.getPower(), pzemO2.getApparentPower(), pzemO2.getPowerFactor(), pzemO2.getTHDi(0), pzemO2.getFrequency(), pzemO2.getPower() / pzemO2.getCurrent());
logger.info(TAG, "[ GRID] U:%7.2f V | I: %5.2f A | | P:%7.2f W | S:%7.2f VA | PF:%6.3f | | F: %4.1f Hz |", gridMetrics.voltage, gridMetrics.current, gridMetrics.power, gridMetrics.apparentPower, gridMetrics.powerFactor, gridMetrics.frequency);
logger.info(TAG, "[OUTPUT %d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | | U':%7.2f V | N:%7.2f W | D: %4" PRIu16 " | DC: %5.2f", 1, routerMetrics.outputs[0].voltage, routerMetrics.outputs[0].current, routerMetrics.outputs[0].resistance, routerMetrics.outputs[0].power, routerMetrics.outputs[0].apparentPower, routerMetrics.outputs[0].powerFactor, routerMetrics.outputs[0].thdi, routerMetrics.outputs[0].dimmedVoltage, routerMetrics.outputs[0].nominalPower, dimmerO1.getPowerDuty(), dimmerO1.getPowerDutyCycle());
logger.info(TAG, "[OUTPUT %d] U:%7.2f V | I: %5.2f A | R: %5.1f Ω | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f | | U':%7.2f V | N:%7.2f W | D: %4" PRIu16 " | DC: %5.2f", 2, routerMetrics.outputs[1].voltage, routerMetrics.outputs[1].current, routerMetrics.outputs[1].resistance, routerMetrics.outputs[1].power, routerMetrics.outputs[1].apparentPower, routerMetrics.outputs[1].powerFactor, routerMetrics.outputs[1].thdi, routerMetrics.outputs[1].dimmedVoltage, routerMetrics.outputs[1].nominalPower, dimmerO2.getPowerDuty(), dimmerO2.getPowerDutyCycle());
logger.info(TAG, "[ ROUTER] | I: %5.2f A | | P:%7.2f W | S:%7.2f VA | PF:%6.3f | THDi:%6.3f |", routerMetrics.current, routerMetrics.power, routerMetrics.apparentPower, routerMetrics.powerFactor, routerMetrics.thdi);
});
Loading

0 comments on commit 49f29a1

Please sign in to comment.