deye-inverter-mqtt icon indicating copy to clipboard operation
deye-inverter-mqtt copied to clipboard

Support multiple batteries if possible

Open c0ldtech opened this issue 10 months ago • 12 comments

Currently only one batterie is supported, i.e. you only get the overall values if you have multiple batteries.

For example:

Battery 1 SOC is 20% Battery 2 SOC is 40%

The value shown for battery SOC will be 30%.

In the Solman app it's possible to view the actual values for every single battery.

I don't know if the values per battery are even exposed through modbus, so it might not be possible to actually get the values. If testers are needed to try stuff out, I'd be happy to help!

Thanks for all the work so far!

c0ldtech avatar Apr 09 '24 09:04 c0ldtech

What is your inverter model?

kbialek avatar Apr 09 '24 19:04 kbialek

Sorry, completely forgot to mention this. It's a Deye SUN 10K-SG04LP3 with two Deye SE-G5.1 Pro batteries.

c0ldtech avatar Apr 09 '24 20:04 c0ldtech

Try out metric group deye_sg01hp3_battery instead of deye_sg04lp3_battery. SG01HP3 and SG04LP3 have similar register layout.

kbialek avatar Apr 09 '24 20:04 kbialek

Unfortunately, that doesn't seem to have worked. The values that were shown as overall values for both batteries under "battery" are now shown under "battery/1" (and power and voltage are wrong by a factor of 10), values for "battery/2" are all 0.

c0ldtech avatar Apr 09 '24 21:04 c0ldtech

Since you can chain something like 32 batteries they might not have implemented single batteries in modbus - I don't have any official documentation, so I can't look it up myself.

c0ldtech avatar Apr 10 '24 04:04 c0ldtech

I found this, maybe it will work. Try to read the registers using the command documented here https://github.com/kbialek/deye-inverter-mqtt?tab=readme-ov-file#reading-and-writing-raw-register-values

image image

kbialek avatar Apr 15 '24 06:04 kbialek

So I should do "r 600" to get the value for Module Voltage? I do get values, but none of the registers I tried make sense, the values do not match with anything expected. But it's good to know that I can try some stuff out this way, I'll try to do some trial and error if I find the time.

c0ldtech avatar Apr 15 '24 07:04 c0ldtech

So I should do "r 600" to get the value for Module Voltage?

Yes, exactly

In the doc I have, the 1st battery pack address is 600, the 2nd pack address is 614, the 3rd starts at 628, and so on, up until pack 15 starting at 800. Good luck!

kbialek avatar Apr 15 '24 07:04 kbialek

I found the same registers in my documentation, it is a bit confusing though. I actually do get values for a lot of registers above 600, but they either are 0 (which they shouldn't be, according to the docs), or have values that do not make sense. For example the value for 609 (Max Cell V) is 5000, which might actually be true, but the value for 610 (Min Cell V) is 505, which can not be correct.

Also I would expect the values to repeat/be about the same for the second battery pack, but they do not match at all.

c0ldtech avatar Apr 15 '24 09:04 c0ldtech

Perhaps your batteries are mapped as packs other than 1 and 2? How is the solarman app showing the metrics?

kbialek avatar Apr 15 '24 20:04 kbialek

I already tried the values for pack 15, but basically everything has a value of 0 there.

I'm currently inclined to think that either they do not have the packs exposed through modbus, or it is just not supported for my battery configuration (even though I am using Deye batteries).

c0ldtech avatar Apr 16 '24 06:04 c0ldtech

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar May 17 '24 02:05 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar May 31 '24 02:05 github-actions[bot]