Skip to content

default retry for modbus communication#3390

Merged
LKuemmel merged 5 commits into
openWB:masterfrom
andlem74:feature-venus_c_e-modbus-retries
Jun 15, 2026
Merged

default retry for modbus communication#3390
LKuemmel merged 5 commits into
openWB:masterfrom
andlem74:feature-venus_c_e-modbus-retries

Conversation

@andlem74

Copy link
Copy Markdown
Contributor

Wegen häufiger (mehr als einer pro Stunde) Fehler bei der TCP-Modbus-Kommunikation wurde Retry ergänzt. Zusätzlich muss das Pymodbus-Modul von 2.5.2 auf 2.5.3 upgegradet werden. Die 2.5.3 ist eine Bugfix-Version der 2.5.2. Ohne dieses Upgrade schlägt der Retry mit einer internen Fehlermeldung im Pymodbus-Modul fehl.

@LKuemmel LKuemmel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich finde es sinnvoll, wenn das allgemein für alle Aufrufe in

super().__init__(ModbusTcpClient(host, port, framer, **kwargs), address, port, sleep_after_connect)
ergänzt wird.
Funktioniert das auch für ModbusSerial?

@LKuemmel LKuemmel added this to the 2.3.0 milestone Jun 12, 2026
@andlem74

Copy link
Copy Markdown
Contributor Author

Ich habe die Argumente als Defaults nach common/modbus.py verschoben.
Meines Wissens funktioniert das auch für ModbusSerial.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Diese PR ergänzt Retry-Logik für Modbus-TCP-Kommunikation (laut Beschreibung zur Stabilisierung der Marstek Venus C/E Kommunikation) und aktualisiert dafür die pymodbus-Abhängigkeit auf eine Bugfix-Version.

Changes:

  • Upgrade von pymodbus von 2.5.2 auf 2.5.3.
  • Setzen von Retry-/Timeout-Defaults beim Aufbau von ModbusTcpClient_ (TCP).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 2 comments.

File Description
requirements.txt Bump von pymodbus auf 2.5.3 als Voraussetzung für Retry-Verhalten.
packages/modules/common/modbus.py Ergänzt Default-Retry-/Timeout-Parameter beim Erzeugen des TCP-Modbus-Clients.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +308 to +311
kwargs.setdefault('retry_on_empty', True)
kwargs.setdefault('retry_on_invalid', True)
kwargs.setdefault('retries', 2)
kwargs.setdefault('timeout', 2)
kwargs.setdefault('retry_on_invalid', True)
kwargs.setdefault('retries', 2)
kwargs.setdefault('timeout', 2)
super().__init__(ModbusTcpClient(host, port, framer, **kwargs), address, port, sleep_after_connect)
@LKuemmel LKuemmel changed the title Add retries for Marstek Venus C/E modbus communication default retry for modbus communication Jun 15, 2026
@LKuemmel LKuemmel merged commit 438fcce into openWB:master Jun 15, 2026
1 check passed
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.

3 participants