Fix an issue if not all configured MPPTs delivers valid Data #1118
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hallo @schlimmchen ,
in #975 wurde noch ein Problem entdeckt wenn mehrere Victron MPPTs konfiguriert wurden, aber mindestens einer keine Daten über die VE.Direct Schnittstelle sendet.
Das Problem ergibt sich aus der Kombination der Funktion VictronMpptClass::isDataValid() und einer weiteren wie VictronMpptClass::getOutputVoltage()
Die VictronMpptClass::getOutputVoltage()
liefert den kleinsten Wert aus der Menge an MPPTs die gültige Daten senden.
Die VictronMpptClass::isDataValid()
liefert nur true wenn alle konfigurierten MPPTs gültige Daten liefern.
Und wenn man das wie in der Funktion PowerLimiterClass::getBatteryVoltage() kombiniert
float chargeControllerVoltage = -1;
if (VictronMppt.isDataValid()) {
res = chargeControllerVoltage = static_cast(VictronMppt.getOutputVoltage());
}
Dann ist das Ergebnis immer -1 wenn ein MPPT ausfällt.
Dieser PR sollte das Problem beheben. Ich bin mir nicht sicher ob die aktuelle Logik
nicht aus Gründen die ich nicht kenne absichtlich so geplant war.
Ich finde 3 Stellen im Code wo VictronMpptClass::isDataValid() verwendet wird und an keiner der 3 Stellen sehe ich ein Problem wenn wir die Logik umdrehen.