Fix register parsing for latest SolarEdge SunSpec ModBus implementation #8
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.
On a new SE5000H, I encountered issue #2. I found that the register
parsing implementation doesn't match what's listed in the SolarEdge technical
spec for their SunSpec ModBus implementation.
The code was seeking too far forward, and from that point on it was
reading a mix of 2 registers and trying to interpret as scaling factors
or measurements. This caused seemingly random, extremely large values
that triggered the "int too large to convert to float". The issue, at
least for my unit, was not with the field that could not be parsed.
With these new values, all measurements supported by my unit are
reporting values that match the SolarEdge monitoring website.
I'm not positive if this is specific to only some units, but the
technical note does not indicate they use different registers for
different inverter models.