-
-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VeDirectFrameHandler behandelt fragmentierte Nachrichten falsch #689
Comments
Hallo @schlimmchen ,
Aber, alle 3 Punkte sollten nicht zu falschen Daten führen. Das solle die Frame checksum abfangen. Update: |
Ok, jetzt habe ich Zeit und eine Idee wie man das relativ einfach fixen kann. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns. |
What happened?
@poolcat4711 berichtet in #551 (comment) plausibel, dass der VeDirectFrameHandler mit fragmentierten Paketen nicht richtig umgeht. In einem Paket stehen Infos, die im anderen fehlen, und andersherum. Da aber der frame handler nach jedem Paket den Buffer zurücksetzt und dann alle Werte aus dem Buffer in die höheren Schichten transportiert, werden so insb. gültige Werte in den höheren Schichten zurückgesetzt.
To Reproduce Bug
Einen Victron MPPT 250|85 per VE.Direct anschließen.
Expected Behavior
Wenn ein Paket vom charge controller verarbeitet wird, dann sollen die darin enthaltenen Werte an die höheren Schichten übermittelt werden, ohne anzunehmen, dass die nicht enthaltenen Werte ihre Gültigkeit verlieren.
Install Method
Pre-Compiled binary from GitHub
What git-hash/version of OpenDTU?
123456
Relevant log/trace output
Anything else?
Der von @poolcat4711 vorgeschlagene Quick-Fix (temporären Buffer gar nicht zurücksetzen) ist nicht ideal, weil dann beispielsweise nicht auffällt, dass nur jedes zweite Paket richtig dekodiert wurde. Besser wäre es, alle Daten gepaart mit einem Timestamp vorzuhalten, an dem man erkennen kann, ob ein Wert gültig ist und wenn ja, wann er kam. Das hat dann aber auch Auswirkungen auf die Implementierung für den SmartShunt, weil diese Komponenten sich Code teilen... Ein Data Store wie der fürs JK BMS wäre wohl gut, aber kostet auch Zeit den zu adaptieren und einzusetzen.
The text was updated successfully, but these errors were encountered: