Skip to content
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

OpenDTU Inverter in der Früh offline - Command Queue voll #242

Closed
martin-st-81 opened this issue Sep 13, 2024 · 17 comments
Closed

OpenDTU Inverter in der Früh offline - Command Queue voll #242

martin-st-81 opened this issue Sep 13, 2024 · 17 comments
Assignees
Labels
enhancement New feature or request

Comments

@martin-st-81
Copy link

martin-st-81 commented Sep 13, 2024

Ich verwende 3 Hoymiles Inverter mit OpenDTU v24.8.5
Opendtu verwendet hier 2 Status (reachable & producing) um die Erreichbarkeit der Wechselrichter zu signalisieren.

reachable -> hier wird aufgrund Zeit und den jeweiligen Dämmerungseinstellungen, versucht die Wechselrichter zu erreichen
producing -> sobald eine Kommunikation aufgebaut ist geht "producing" auf true

Wenn ich dieses tolle Script richtig verstehe, wird auf "reachable" kontrolliert und nicht zusätzlich auf "producing" was dazu führt, dass das Script "ActivePowerLimit" commands an OpenDTU sendet ... auch wenn der Inverter aufgrund "producing" - false nicht erreichbar ist.
Dies führt dazu, dass in der Früh die command Queue von Opendtu voll ist und die Inverter offline bleiben

Ist es möglich auf beide Faktoren (reachable & producing) zu kontrollieren, bevor das Script ein neues Limit setzen möchte ?
image

@reserve85 reserve85 self-assigned this Sep 13, 2024
@reserve85
Copy link
Owner

reserve85 commented Sep 13, 2024

Wozu dann reachable wenn er nicht "erreichbar" ist? Ist das feature neu?
Ist jedenfalls nur eine kleinigkeit zu implementieren. Das würde auch manche Probleme mit OpenDTU erklären, bei denen die Kommunikation dann irgendwann abbricht.

@reserve85 reserve85 added the enhancement New feature or request label Sep 13, 2024
@martin-st-81
Copy link
Author

Für mein Verständnis sollte er aufgrund errechneten Sonnenstand "reachable" sein, und Opendtu versucht diesen an zu funken.
Was aber nicht bedeutet, dass er dann auch immer erreichbar ist. zB bei Schlechtwetter, oder Verschattung.
Das Funkmodul der Hoymiles werden ja von der DC Seite gespeist. Erst mit "producing" true, liefert der Wechselrichter Leistung und hat gleichzeitig eine aktive Verbindung zu OpenDTU.

Ob das neu ist kA, dieses Verhalten beobachte ich schon des längeren in Früh und muss das Script stoppen & die Opendtu rebooten damit er dann nach 5-10min eine Verbindung aufbaut. Dann starte ich das Script und es läuft wieder wie gewünscht.
Unmittelbar nach dem reboot der OpenDTU steht "reachable" auf TRUE obwohl noch keine Leistungsdaten ausgelesen wurden.
Sobald die ersten Daten angeliefert werden, geht OpenDTU auf "producing" true

@reserve85
Copy link
Owner

reserve85 commented Sep 13, 2024

Ja, schau mal hier: #211
Das ist genau der Fall.

Wäre ja Top, wenn die Lösung so einfach wäre...
Ich baue es später ein und gebe dir bescheid.

@martin-st-81
Copy link
Author

in #211
scheint es ebenfalls so zu sein, denn um 21:20 "reachable: True" kann ja keine aktive Verbindung zum Wechselrichter (mangels Sonnenschein) sein. Dieses Verhalten ist bei mir jedenfalls das Gleiche.

Sollte dies wirklich an OpenDTU scheitern werden ich wohl auf AhoyDTU wechseln.

Jun 18 21:19:52 raspberrypi python3[506]: 2024-06-18 21:19:52 INFO OpenDTU: Inverter "HMS-1600-4T": setting new limit from -1 Watt to 1003 Watt
Jun 18 21:19:58 raspberrypi python3[506]: 2024-06-18 21:19:58 INFO OpenDTU: Inverter "HMS-1600-4T": Limit timeout!
Jun 18 21:19:58 raspberrypi python3[506]: 2024-06-18 21:19:58 INFO OpenDTU: Inverter "HMS-2000-4T": setting new limit from 1933 Watt to 1253 Watt
Jun 18 21:20:04 raspberrypi python3[506]: 2024-06-18 21:20:04 INFO OpenDTU: Inverter "HMS-2000-4T": Limit timeout!
Jun 18 21:20:10 raspberrypi python3[506]: 2024-06-18 21:20:10 INFO OpenDTU: Inverter "HMS-1600-4T" reachable: True
Jun 18 21:20:10 raspberrypi python3[506]: 2024-06-18 21:20:10 INFO OpenDTU: Inverter "HMS-2000-4T" reachable: True

@reserve85
Copy link
Owner

Für mein Verständnis ist das ganz klar falsch, reachable bedeutet für mich "erreichbar".
Also nur wenn auch kommuniziert werden kann.

@martin-st-81
Copy link
Author

Ich werde heute am Abend, wenn die Opendtu keine Werte mehr empfängt, die Werte nochmal kontrollieren/vergleichen - möchte keine unnötige Arbeit verursachen. Dieses Script arbeitet so hervorragend dass ev. ein Fehler in Opendtu nicht hier zu Arbeitsaufwand führen sollte

@reserve85
Copy link
Owner

habs mal eingebaut (ist nur eine Zeile) -> Könntest du die "DEV" Version mal testen (V1.104)

@martin-st-81
Copy link
Author

ich lass es mal laufen und werde am Abend die Daten vergleichen, Danke für deine rasche Hilfe !

image

@reserve85
Copy link
Owner

Ich glaube das geht aber so nicht bei Akku-Inverterm, da wird ja der Inverter (optional) komplett ausgeschaltet (Turn Off) -> dann dürfte auch das Flag "producing" auf "false" stehen...
Da würde der Inverter dann nie wieder aktiviert werden?

@martin-st-81
Copy link
Author

Meine Vermutung hat sich bestätigt.
Reachable geht erst mit der Abenddämmerung auf false
Producing geht auf false sobald der Wechselrichter keine Daten mehr liefert und somit auch keine Empfangen kann... ein paar Minuten davor
Ob das jetzt bei OpenDTU gewünscht ist oder ein Bug, kann ich nicht beurteilen
Aufgrund deiner Änderung im Dev. Script V1.104, sendet das Script keine "ActivePowerLimit" commands mehr an die OpenDTU welche dann in der Früh die Queue blockieren da diese nicht an den Wechselrichter weitergereicht werden konnten

Ich hoffe meine Interpretierung ist korrekt und ich konnte bei der Problematik behilflich sein.

2024-09-13 18_59_25-
2024-09-13 19_08_28-Mozilla Firefox

@reserve85
Copy link
Owner

Ja ich glaube trotzdem es ist nicht die Lösung… könntest du morgen mal probieren was passiert, wenn du den inverter aus schaltest? Also über OpenDTU. Dann müsste producing auf false gehen und für mich wäre dann der inverter nicht erreichbar.

Normal müsste die queue einfach intern in der dtu gelöscht werden wenn nix übertragen werden kann. Und reachable auf false gehen…

@martin-st-81
Copy link
Author

martin-st-81 commented Sep 15, 2024

Wenn ich zB Hoymiles1 manuell via OpenDTU abschalte kann dein Script selbst nach einem Neustart des Scriptes diesen nicht wieder einschalten. Für mich würde das Script - da ich keinen Speicher verwende - jetzt funktionieren, in der Früh hatte ich keine Ausfälle mehr. Da dieses Script laut Doku auf AhoyDTU konzipiert ist und ich den Fehler auch bei OpenDTU sehe, werde ich vermutlich auf AhoyDTU (wenn es meine HW zulässt) umsteigen.

Welche AhoyDTU Version kannst du empfehlen oder verwendest du ? die letzte Version dürfte mit dem HMS Chipsatz CMT2300A aktuell Probleme haben laut den Issue Einmeldungen.

2024-09-15 08_36_36-Window

2024-09-15 08_37_22-Window

2024-09-15 08_39_40-Window

@reserve85
Copy link
Owner

Ja, das hab ich auch so befürchtet. Das Flag reachable ist für mich das Problem, das dürfte nicht true sein wenn der inverter nicht erreichbar ist.

Ich nehme die Änderung in der dev wieder zurück.

@martin-st-81
Copy link
Author

Welche AhoyDTU Version kannst du empfehlen oder verwendest du ?

@reserve85
Copy link
Owner

Ich hab die 0.8.143

@reserve85
Copy link
Owner

Vielleicht könntest du das reachable Problem mal bei OpenDTU als bug melden. Wäre super!

@reserve85
Copy link
Owner

Aja, da gibt’s schon einige Meldungen.

tbnobody/OpenDTU#2237

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants