mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-26 04:06:34 +00:00
Fix ESP32 MaxPowerHold edge case (#21695)
This commit is contained in:
parent
0b54d49181
commit
640aabe1b3
@ -835,10 +835,11 @@ void EnergyMarginCheck(void) {
|
|||||||
if (Energy->Settings.phase[phase].max_power_limit) {
|
if (Energy->Settings.phase[phase].max_power_limit) {
|
||||||
energy_power_u = (uint16_t)(Energy->active_power[phase]);
|
energy_power_u = (uint16_t)(Energy->active_power[phase]);
|
||||||
bool power_on = (TasmotaGlobal.power & (1 << phase));
|
bool power_on = (TasmotaGlobal.power & (1 << phase));
|
||||||
if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
|
// if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
|
||||||
|
if (energy_power_u > Energy->Settings.phase[phase].max_power_limit) {
|
||||||
if (!Energy->mplh_counter[phase]) {
|
if (!Energy->mplh_counter[phase]) {
|
||||||
Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold;
|
Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold +1;
|
||||||
} else {
|
}
|
||||||
Energy->mplh_counter[phase]--;
|
Energy->mplh_counter[phase]--;
|
||||||
if (!Energy->mplh_counter[phase]) {
|
if (!Energy->mplh_counter[phase]) {
|
||||||
ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
|
ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
|
||||||
@ -855,7 +856,6 @@ void EnergyMarginCheck(void) {
|
|||||||
Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
|
Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (power_on && (energy_power_u <= Energy->Settings.phase[phase].max_power_limit)) {
|
else if (power_on && (energy_power_u <= Energy->Settings.phase[phase].max_power_limit)) {
|
||||||
Energy->mplh_counter[phase] = 0;
|
Energy->mplh_counter[phase] = 0;
|
||||||
Energy->mplr_counter[phase] = 0;
|
Energy->mplr_counter[phase] = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user