OpenTherm: Reset internal state on handshake #12195
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
This PR fixes a pretty interesting bug with the OT internal state I observed twice.
The boiler may perform a restart. This might happen because of the power blip, internal watchdog reset, or software bug/feature. OT integration sees this as a timeout, and transitions to the
OTC_DISCONNECTED
state and reconnect.On reconnect, OT integration does not send all parameters, such as boiler setpoint or DHW temperature. In my case, this leads to the default DHW temperature and a condition when the boiler is unable to start by the
ot_ch 1
or by theHeat Request
signal from the mechanical thermostat.This PR adds a reset logic of the internal state before the handshake. That way all the parameters will be queued for sending after the boiler reset.
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass