Skip to content

OpenDTU: Update WaitForAck #263

Closed
ms49434 wants to merge 4 commits intoreserve85:mainfrom
ms49434:main
Closed

OpenDTU: Update WaitForAck #263
ms49434 wants to merge 4 commits intoreserve85:mainfrom
ms49434:main

Conversation

@ms49434
Copy link
Contributor

@ms49434 ms49434 commented Feb 26, 2025

With the release of OpenDTU v25.2.3, the queue management was improved and set limit / status requests can no longer flood the queue.
The code of OpenDTU::WaitForAck was removed and the method always returns true.
HoymilesZeroExport requires version v25.2.3 of OpenDTU.

@ms49434 ms49434 closed this Feb 26, 2025
@reserve85
Copy link
Owner

Hi, didn´t work?

@ms49434
Copy link
Contributor Author

ms49434 commented Feb 27, 2025

Hi, didn´t work?

It worked but I was facing several issues.
One inverter went offline and wasn't responding for 15-20 minutes. It could be that the interval between 2 set limit commands is too short after the code change.
Other inverters didn't acknowledge a new limit on the first attempt. This would indicate that WaitForAck is still required.

@reserve85
Copy link
Owner

yep i think so... and i am stuggeling because i think the script needs to receive an error response when there was a problem with setting the limit. if you do not get any response from openDTU/Ahoy the script don´t know that the last command was not successful...

@ms49434
Copy link
Contributor Author

ms49434 commented Feb 27, 2025

yep i think so... and i am stuggeling because i think the script needs to receive an error response when there was a problem with setting the limit. if you do not get any response from openDTU/Ahoy the script don´t know that the last command was not successful...

A code change where the main loop queries the limit_set_status of the inverters with a new helper method DTU::GetLimitStatus can replace DTU::WaitForAck and would improve the speed of your script (and it would run asynchronously). DTU::SetLimit would only fire when limit_set_status is Ok.

From the log (modified code to log limit_set_status)
OpenDTU: Inverter "holli": setting new limit from 859 Watt to 936 Watt
OpenDTU: Inverter "holli": Limit status is Pending
OpenDTU: Inverter "holli": Limit status is Pending
OpenDTU: Inverter "holli": Limit status is Pending
OpenDTU: Inverter "holli": Limit acknowledged

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.

2 participants