Implementation DEYE Inverter - Approach

Hello ! Do you have any solution to Ai control Deye hybrid inverter to use on grid ?

1 Like

Hello and welcome to the Community,

it would be great if you first tell us a little bit about yourself before you demand Information from the Community :slight_smile:

Greetings

…yes…no…maybe. I have a solution but it´s not working properly, i.e.:

  • Deye takes a long time for switching between charge/discharger: about 20 seconds.
  • The only way seems to be to re-write the registers for ToU
  • There is no direct way to set charge powers
  • Deadband-handling: for lower active power demands I´ve tried to use the internal regulation. This ended up in PV-limitation

Feel free to use my “experiment”. It is in a pre-alpha state…

Regards,

klinki

Hello! I also want to add a Deye PV-Inverter to OpenEMS, and I have the same question:

Did you manage to add the 3 features into a single Component?
I didn’t find an answer in the thread. I am currently using separate Components.

1 Like

Dear community, dear Klinki,

unfortunately my PV projects have come to a bit of a standstill for work-related reasons (lack of time). Sadly, this is still the case at the moment, which is why it’s difficult for me to become more active again here in the forum and on my projects.

@Klinki I only just noticed that you’ve apparently been putting time into further development. That’s why I’d like to share a few findings, because I think they could fundamentally change the approach we need to take.

When I tried to integrate my Deye into openEMS at the beginning of this year, I asked Deye support whether the inverter could be controlled simply via an external energy manager, like a battery storage system. The reason was that I had found a Modbus document online describing registers for “Remote Mode” starting at register 1100, which suggested that such a function was intended.

Support replied fairly quickly that this would be possible via a firmware update to the latest version. On 17/02/2025, support installed the firmware remotely. Since then, I’ve been able to operate the Deye very easily as a “pure battery” via a Modbus register and charge/discharge it using a +/- power value. It works exactly the way I had hoped in my last post.
In addition, there is a configurable watchdog that resets the value to 0 if no external updates are received.

My device: SUN-15K-SG05LP3-EU-SM2

Important note: In this mode, the battery limit values configured in the Deye apparently do not take effect. Minimum/maximum SOC and protection mechanisms would then need to be implemented in openEMS.

I also had the issue that when the Deye stays in standby for a longer time, it continuously draws power from the battery for its own operation. I noticed this because my temporary balcony PV system didn’t generate enough surplus to charge during winter. As a result, the BMS eventually shut down due to undervoltage. After that, the Deye also went into an “Error” state, and the battery had to be charged externally to bring the Deye back online. (At the time, I also had the impression that the Deye would continue drawing power even while in the error state, but I can’t confirm that reliably at the moment.)

As mentioned before, I’m not very experienced in programming. However, based on Rayleigh3105’s project and with the help of ChatGPT, I managed to integrate my Deye far enough to control it via openEMS (manual power control as well as via the ESS Balancer Controller). In my test environment, though, I ran into the problem that Modbus values eventually were no longer read/written reliably: the Deye did respond to the power values, but the status updates no longer arrived consistently in openEMS. I spent quite a while looking for the cause (system resources, the Waveshare Modbus adapter, openEMS cycle time, etc.), but then had to drop the topic due to lack of time.

It’s also possible that my handling of combining high/low words for values that the Deye does not provide as consecutive registers causes issues for openEMS — I can’t say for sure. Since my implementation is probably not particularly “clean,” I haven’t posted it publicly so far. If there’s still interest, feel free to send me a PM.

If anyone is interested in the Modbus document V105.4 that I received from support back then, feel free to send me a PM as well.
Note: My information reflects the status as of February 2025 — I don’t know what may have changed since then.

I hope these findings are helpful!

1 Like

Hi,

@mrdomek I sit here with my mouth open and speachless. This would solve many problems.
You´ve said that Deye installed firmware via remote. Can you tell me which version is installed on your inverter right now?
I´ve tried to get information from Deye support - without success.
Maybe you can share the contact to Deye support.

Is your firmware ‘official’? Cannot find one on Deye´s website…

Thanks very much for sharing your information. If I was able to update my inverter I can continue development!

..but: good news anyway. Thanks!

regards,

klinki

Hello,

@Klinki, I figured this information could significantly change the situation. Sorry that I’m only sharing it so late.

Yes, that’s correct: Deye installed it for me remotely. My SG05LP3 already came with the Wi-Fi module from the factory—no idea whether that’s standard for every SG05LP3. If you register the inverter in the Deye Cloud, support can update the firmware using the serial number.

There is also an option to do this offline, but first you need the firmware file—and as far as I know, Deye does not provide it publicly for the SG05LP3. So in both cases you need contact with support (or someone who has already received the file), and you need the Wi-Fi module.

Here’s a how-to for doing a manual update. (If it’s already connected via Wi-Fi, it’s best to find the corresponding IP address via your router.)
https://zinnzgreen.de/service/deye-mikrowechselrichter-systemupdate/

You can also use this method to identify the firmware version. I couldn’t find any firmware details on the display; under “Device Info” it apparently only shows hardware information.

On my unit, this version is installed: LSW3_32U_5406_1.0B
I assume this is an official firmware release—based on how quickly it was installed, it doesn’t seem like something that was custom-built specifically for me.

My support contact was someone named Wendy → servicede@deye.com.cn

Thanks for the update @mrdomek

I´ve already contacted Deye support. Maybe I can talk to an expert next week at the exhibition in Düsseldorf.

Let´s see what happens…