Skip to content

EVSE-Auslesen: Retry-Lücke und fehlende Synchronisierung beheben - #3895

Open
seaspotter wants to merge 1 commit into
openWB:masterfrom
seaspotter:fix-evse-hardware-check-retry
Open

EVSE-Auslesen: Retry-Lücke und fehlende Synchronisierung beheben#3895
seaspotter wants to merge 1 commit into
openWB:masterfrom
seaspotter:fix-evse-hardware-check-retry

Conversation

@seaspotter

Copy link
Copy Markdown
Collaborator

Zusammenfassung

  • Retry-Schleife beim EVSE-Auslesen in hardware_check.py erfasst jetzt beliebige Exceptions statt nur ModbusIOException/ConnectionException — schließt die Lücke, durch die ein einzelner RS485-/CRC-Glitch oder ein kurzzeitiger FAILURE-Status der EVSE sämtliche Wiederholungsversuche übersprungen und sofort "Erneutes Auslesen der EVSE" ausgelöst hat.
  • threading.RLock in modbus.py ergänzt, der alle Connect-/Lese-/Schreib-/Close-Operationen auf einem gemeinsam genutzten Modbus-Client serialisiert, da der Haupt-Poll-Loop und die Phasenumschaltungs-/CP-Unterbrechungs-Threads sonst unsynchronisiert gleichzeitig auf dieselbe Verbindung zugreifen können.

Testplan

  • Neue parametrisierte Regressionstests in hardware_check_test.py, die beide zuvor übersprungenen Fehlerpfade jetzt nachweislich per Retry abfangen
  • Neuer Nebenläufigkeits-Test in modbus_test.py, der beweist, dass Zugriffe serialisiert werden und dabei kein Aufruf verloren geht (ohne Lock schlägt der Test fehl, mit Lock besteht er)
  • Vollständige relevante Testsuite grün, keine Regressionen

@seaspotter
seaspotter requested a review from LKuemmel September 6, 2026 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant