mirror of https://github.com/arendst/Tasmota.git
[Energy] Decoupled `FREQUENCY` and `Energy->type_dc` (#20549)
This commit is contained in:
parent
9608b7513a
commit
76a7ab5131
|
@ -673,7 +673,7 @@ void EnergyEverySecond(void) {
|
|||
Energy->active_power[i] = 0;
|
||||
if (!isnan(Energy->apparent_power[i])) { Energy->apparent_power[i] = 0; }
|
||||
if (!isnan(Energy->reactive_power[i])) { Energy->reactive_power[i] = 0; }
|
||||
if (!isnan(Energy->frequency[i])) { Energy->frequency[i] = 0; }
|
||||
if (!isnan(Energy->frequency[i]) && !Energy->type_dc) { Energy->frequency[i] = 0; }
|
||||
if (!isnan(Energy->power_factor[i])) { Energy->power_factor[i] = 0; }
|
||||
if (!isnan(Energy->export_active[i])) { Energy->export_active[i] = 0; }
|
||||
|
||||
|
@ -1345,10 +1345,10 @@ void EnergyShow(bool json) {
|
|||
ResponseAppend_P(PSTR(",\"" D_JSON_POWERFACTOR "\":%s"),
|
||||
EnergyFmt(power_factor, 2));
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_FREQUENCY "\":%s"),
|
||||
EnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_FREQUENCY "\":%s"),
|
||||
EnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (Energy->voltage_available) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_VOLTAGE "\":%s"),
|
||||
|
@ -1420,11 +1420,9 @@ void EnergyShow(bool json) {
|
|||
if (Energy->voltage_available) {
|
||||
WSContentSend_PD(HTTP_SNS_VOLTAGE, WebEnergyFmt(Energy->voltage, Settings->flag2.voltage_resolution, voltage_common));
|
||||
}
|
||||
if (!Energy->type_dc) {
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
WSContentSend_PD(PSTR("{s}" D_FREQUENCY "{m}%s " D_UNIT_HERTZ "{e}"),
|
||||
WebEnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
WSContentSend_PD(PSTR("{s}" D_FREQUENCY "{m}%s " D_UNIT_HERTZ "{e}"),
|
||||
WebEnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (Energy->current_available) {
|
||||
WSContentSend_PD(HTTP_SNS_CURRENT, WebEnergyFmt(Energy->current, Settings->flag2.current_resolution));
|
||||
|
|
|
@ -893,7 +893,7 @@ void EnergyEverySecond(void) {
|
|||
Energy->active_power[i] = 0;
|
||||
if (!isnan(Energy->apparent_power[i])) { Energy->apparent_power[i] = 0; }
|
||||
if (!isnan(Energy->reactive_power[i])) { Energy->reactive_power[i] = 0; }
|
||||
if (!isnan(Energy->frequency[i])) { Energy->frequency[i] = 0; }
|
||||
if (!isnan(Energy->frequency[i]) && !Energy->type_dc) { Energy->frequency[i] = 0; }
|
||||
if (!isnan(Energy->power_factor[i])) { Energy->power_factor[i] = 0; }
|
||||
if (!isnan(Energy->export_active[i])) { Energy->export_active[i] = 0; }
|
||||
|
||||
|
@ -1580,10 +1580,10 @@ void EnergyShow(bool json) {
|
|||
ResponseAppend_P(PSTR(",\"" D_JSON_POWERFACTOR "\":%s"),
|
||||
EnergyFmt(power_factor, 2));
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_FREQUENCY "\":%s"),
|
||||
EnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_FREQUENCY "\":%s"),
|
||||
EnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (Energy->voltage_available) {
|
||||
ResponseAppend_P(PSTR(",\"" D_JSON_VOLTAGE "\":%s"),
|
||||
|
@ -1702,11 +1702,9 @@ void EnergyShow(bool json) {
|
|||
if (Energy->voltage_available) {
|
||||
WSContentSend_PD(HTTP_SNS_VOLTAGE, WebEnergyFmt(Energy->voltage, Settings->flag2.voltage_resolution, voltage_common));
|
||||
}
|
||||
if (!Energy->type_dc) {
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
WSContentSend_PD(PSTR("{s}" D_FREQUENCY "{m}%s " D_UNIT_HERTZ "{e}"),
|
||||
WebEnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (!isnan(Energy->frequency[0])) {
|
||||
WSContentSend_PD(PSTR("{s}" D_FREQUENCY "{m}%s " D_UNIT_HERTZ "{e}"),
|
||||
WebEnergyFmt(Energy->frequency, Settings->flag2.frequency_resolution, frequency_common));
|
||||
}
|
||||
if (Energy->current_available) {
|
||||
WSContentSend_PD(HTTP_SNS_CURRENT, WebEnergyFmt(Energy->current, Settings->flag2.current_resolution));
|
||||
|
|
|
@ -286,7 +286,6 @@ void solaxX1_250MSecond(void) { // Every 250 milliseconds
|
|||
Energy->voltage[0] = ((DataRead[23] << 8) | DataRead[24]) * 0.1f; // AC Voltage
|
||||
Energy->frequency[0] = ((DataRead[25] << 8) | DataRead[26]) * 0.01f; // AC Frequency
|
||||
Energy->active_power[0] = ((DataRead[27] << 8) | DataRead[28]); // AC Power
|
||||
Energy->apparent_power[0] = Energy->active_power[0]; // U*I from inverter is not valid for apparent power; U*I could be lower than active power
|
||||
//temporal = (float)((DataRead[29] << 8) | DataRead[30]) * 0.1f; // Not Used
|
||||
Energy->import_active[0] = ((DataRead[31] << 24) | (DataRead[32] << 16) | (DataRead[33] << 8) | DataRead[34]) * 0.1f; // Energy Total
|
||||
uint32_t runtime_total = (DataRead[35] << 24) | (DataRead[36] << 16) | (DataRead[37] << 8) | DataRead[38]; // Work Time Total
|
||||
|
@ -473,6 +472,7 @@ void solaxX1_SnsInit(void) {
|
|||
void solaxX1_DrvInit(void) {
|
||||
if (PinUsed(GPIO_SOLAXX1_RX) && PinUsed(GPIO_SOLAXX1_TX)) {
|
||||
TasmotaGlobal.energy_driver = XNRG_12;
|
||||
Energy->type_dc = true; // Handle like DC, because U*I from inverter is not valid for apparent power; U*I could be lower than active power
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue