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

Solis Firmware 4B00 #1142

Open
fboundy opened this issue Nov 20, 2024 · 15 comments
Open

Solis Firmware 4B00 #1142

fboundy opened this issue Nov 20, 2024 · 15 comments
Labels
bug Something isn't working non solax non solax

Comments

@fboundy
Copy link
Contributor

fboundy commented Nov 20, 2024

Describe the bug

Solis firmware 4B00 introduces a completely new set of registers for time based control. It also adds a target SOC (and a voltage though it’s unclear what this is used for) to each slot.

The old registers are no longer read so the registers used need to depend on the FW version.

I’ve polled the API and Modbus and come up with this list: fboundy/pv_opt#305 (comment)

Integration Version

2024.11.2

Homeassistant core version

2024.11.2

Inverter brand

Solis

Plugin used

plugin_solis.py

Serial prefix

NA

Connection Method

Waveshare

Detailed Error Log

No response

Additional context

No response

@fboundy fboundy added bug Something isn't working non solax non solax labels Nov 20, 2024
@alienatedsec
Copy link
Contributor

alienatedsec commented Nov 21, 2024

@wills106 Is it possible to introduce a switch that uses a new set of registers if, for example, another register represents a specific value?

The input register hex value is part of the firmware version.

The below 33002 is the HMI version - 4A in my case (currently unaffected)
image

This is usually followed with 00, and combines with the register 33001 the DSP version - 4C in my case - and 33069 both unrelated at this moment - or could be if DSP has any specific function defined.
image

FW version 33002 + 00 + 33001 + HMI subversion 33069
image

So, the final logic should be that if the register 33002 is 0x004b or higher, then the new set of registers should be used.

@fboundy @infradom @jmccrohan FYI

@fboundy
Copy link
Contributor Author

fboundy commented Nov 21, 2024

@alienatedsec - I think it might be easier just to use a separate plugin then all the logic will be very similar but a separate set of registers etc

@fboundy
Copy link
Contributor Author

fboundy commented Nov 21, 2024

Should be addressed by #1143

@alienatedsec
Copy link
Contributor

alienatedsec commented Nov 21, 2024

Should be addressed by #1143

That looks ok for now, cannot test at the moment.

@alienatedsec - I think it might be easier just to use a separate plugin then all the logic will be very similar but with a separate set of registers etc

There would be a period for maintaining two sets of solis plugins. I guess the new registers will not be changed moving forward.

@fboundy
Copy link
Contributor Author

fboundy commented Nov 26, 2024

I've been running this for a few days now. The integration works but the firmware is buggy. The time slots can appear set but they don't start working until the SOC is changed.

@alienatedsec
Copy link
Contributor

@fboundy
I got the new firmware files from Solis, but I am delaying to load them. I also believe it's a newer version than 4B00, so I guess I will have to decide at some point.

@fboundy
Copy link
Contributor Author

fboundy commented Nov 28, 2024 via email

@wills106
Copy link
Owner

If the Firmware was read at the same time as the Serial Numer then it should be possible to use the unused GEN block to split it up?

If lower than y = GEN if above x = GEN2?
Depends how the version numbering works as a whole really on Solis.

@fboundy
Copy link
Contributor Author

fboundy commented Dec 3, 2024

The differences between the f/w setups are so significant that I think it is simpler to simply use a different plugin as has been done for other brands

@alienatedsec
Copy link
Contributor

The firmware needs to be read in either plugin as it would be the condition for correct functionality. It's no longer just a Serial Number dependency.

@MattSpeke
Copy link

I was told yesterday that 4B00 is still the latest

On 26 Nov 2024 at 10:03 +0000, alienatedsec @.>, wrote: @fboundy I got the new firmware files from Solis, but I am delaying to load them. I also believe it's a newer version than 4B00, so I guess I will have to decide at some point. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.>

I have version 4C0048 for inverter S5-EH15PK-L

@MattSpeke
Copy link

Hi, is there any progess on this issue? I have the latest firmware and would like to control my Solis inverter via this integration. I have firmware 4C0050-650000 and serial number 6031 S5-EH1P5K-L inverter.

I have copied the code from fboundy and made a file solis_fb00_py and added the code to this file. I am able to select the file in HA config but no data available. is there something else that I need to do to enable this to work?

@fboundy
Copy link
Contributor Author

fboundy commented Dec 15, 2024 via email

@MattSpeke
Copy link

How do I install the whole folder? I only see the one file solis_fb00.py

I removed the integration, then tried to re-add, but the old names were still in the files, so I deleted the integration from HACS, but that has also deleted the solis_fb00.py file. I'm back to where I started.

@fboundy
Copy link
Contributor Author

fboundy commented Dec 15, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working non solax non solax
Projects
None yet
Development

No branches or pull requests

4 participants