Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/PowerLimiter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,15 @@ uint16_t PowerLimiterClass::updateInverterLimits(uint16_t powerRequested,

if (matchingInverters.empty()) { return 0; }

// if we update battery-powered inverters and the battery is in the STOP state,
// we must put all battery-powered inverters into standby mode,
// regardless of whether the standby option is enabled or not.
if ((matchingInverters[0]->isBatteryPowered()) && (_batteryState == BatteryState::STOP)) {
Comment thread
AndreasBoehm marked this conversation as resolved.
for (auto pInv : matchingInverters) { pInv->standby(); }
DTU_LOGD("battery is in STOP state, all battery-powered inverters are put into standby.");
return 0;
}

int32_t diff = powerRequested - producing;

auto const& config = Configuration.get();
Expand Down
6 changes: 3 additions & 3 deletions src/PowerLimiterBatteryInverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ uint16_t PowerLimiterBatteryInverter::getMaxReductionWatts(bool allowStandby) co

if (!isProducing()) { return 0; }

if (allowStandby) { return getCurrentOutputAcWatts(); }
if (allowStandby && _config.AllowStandby) { return getCurrentOutputAcWatts(); }

if (getCurrentOutputAcWatts() <= _config.LowerPowerLimit) { return 0; }

Expand Down Expand Up @@ -44,7 +44,7 @@ uint16_t PowerLimiterBatteryInverter::applyReduction(uint16_t reduction, bool al

auto low = std::min(getCurrentLimitWatts(), getCurrentOutputAcWatts());
if (low <= _config.LowerPowerLimit) {
if (allowStandby) {
if (allowStandby && _config.AllowStandby) {
standby();
return std::min(reduction, getCurrentOutputAcWatts());
}
Expand All @@ -56,7 +56,7 @@ uint16_t PowerLimiterBatteryInverter::applyReduction(uint16_t reduction, bool al
return reduction;
}

if (allowStandby) {
if (allowStandby && _config.AllowStandby) {
standby();
return std::min(reduction, getCurrentOutputAcWatts());
}
Expand Down
2 changes: 1 addition & 1 deletion webapp/src/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@
"UpperPowerLimit": "Maximales Leistungslimit",
"UpperPowerLimitHint": "Der Wechselrichter wird stets so eingestellt, dass höchstens diese Ausgangsleistung erreicht wird. Dieser Wert muss so gewählt werden, dass die Strombelastbarkeit der AC-Anschlussleitungen eingehalten wird.",
"AllowStandby": "Standby erlauben",
"AllowStandbyHint": "Erlaubt dem Wechselrichter in Standby zu gehen, wenn das berechnete Leistungslimit unter dem minimalen Leistungslimit liegt.",
"AllowStandbyHint": "Erlaubt dem Wechselrichter in Standby zu gehen, wenn das berechnete Leistungslimit unter dem minimalen Leistungslimit liegt. Ansonsten wird der Wechselrichter auf das minimale Leistungslimit gesetzt.",
"SocThresholds": "Batterie State of Charge (SoC) Schwellwerte",
"IgnoreSoc": "Nur Spannungs-Schwellwerte nutzen",
"IgnoreSocHint": "Falls aktiviert werden nur die Spannungs-Schwellwerte berücksichtigt. Deaktiviere diesen Schalter, um Batterie State of Charge (SoC) Schwellwerte zu konfigurieren (nicht empfohlen, da der SoC-Wert häufig ungenau ist).",
Expand Down
2 changes: 1 addition & 1 deletion webapp/src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@
"UpperPowerLimit": "Maximum Power Limit",
"UpperPowerLimitHint": "The inverter is always set such that no more than this output power is achieved. This value must be selected to comply with the current carrying capacity of the AC connection cables.",
"AllowStandby": "Allow Standby",
"AllowStandbyHint": "Allow the inverter to go into standby if the calculated power limit is below the minimum power limit.",
"AllowStandbyHint": "Allow the inverter to go into standby if the calculated power limit is below the minimum power limit. Otherwise, the inverter will be set to the minimum power limit.",
"SocThresholds": "Battery State of Charge (SoC) Thresholds",
"IgnoreSoc": "Use Voltage Thresholds Only",
"IgnoreSocHint": "When enabled, only voltage thresholds are considered. Disable this switch to configure and use battery State of Charge (SoC) thresholds (not recommended as the SoC value is often inaccurate).",
Expand Down
2 changes: 1 addition & 1 deletion webapp/src/views/PowerLimiterAdminView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@
<InputElement
:label="$t('powerlimiteradmin.AllowStandby')"
:tooltip="$t('powerlimiteradmin.AllowStandbyHint')"
v-if="inv.power_source == 2"
v-if="inv.power_source == 2 || inv.power_source == 0"
v-model="inv.allow_standby"
type="checkbox"
wide
Expand Down