RS-485 component for some Delta Solivia G3/G4 solar inverters

I’ve implemented a component for reading the data off some models of the Delta Solivia solar inverter.

The component (WIP) and instructions can be found here: my-esphome-components/components/delta_solivia at main · robertklep/my-esphome-components · GitHub

There are already various implementations for reading Delta Solivia inverter data over RS-485 (example), but there are dozens of Solivia models and about 10 different protocol variants.

My component supports the following models:

  • SOLIVIA 2.5 EU G3
  • SOLIVIA 3.0 EU G3
  • SOLIVIA 3.3 EU G3
  • SOLIVIA 3.6 EU G3
  • SOLIVIA 2.5 NA G4
  • SOLIVIA 3.0 NA G4
  • SOLIVIA 3.3 NA G4
  • SOLIVIA 3.6 NA G4
  • SOLIVIA 4.4 NA G4
  • SOLIVIA 5.0 NA G4
  • SOLIVIA 2.5 AP G3
  • SOLIVIA 3.0 AP G3
  • SOLIVIA 3.3 AP G3
  • SOLIVIA 3.6 AP G3

This implementation is based on the document “Public Solar Inverter Communication Protocol (Version 1.2)”, published by Delta Energy Systems (Germany) GmbH, which documents all the different variants.

At the moment the component exposes 14 data fields (out of a total of 46), including DC voltage/current, AC voltage/current, grid voltage/current, current power output and total energy generated. See screenshot below.

It supports multiple inverters (I have two SOLIVIA 2.5 EU G3’s).

At the moment it relies on a Solivia Gateway to request updates from the inverter(s), but this requirement will hopefully be removed in the upcoming days, which means you’ll only need an ESP32 with an RS-485 board to read the inverter data.

It can run fully standalone, no Solivia gateway required.

1 Like

Sorry for the noob question, but do you have a guide on how to get it to run on an ESP32? I got an ESP32 board up and running with esphome, but I have no idea of how to install your software on it.

@EeyoreDK ESPHome works with configuration files (in YAML format) that are used to load external components like mine.

I don’t know how exactly you’re installing ESPHome on the ESP32 so I cannot offer specific help, but the README provides the necessary parts specific to my module. I also included a full example file.

Also, aside from an ESP32 you need an RS-485-to-TTL board before this can work.

1 Like

@robertklep I found the error. I was using the long ID strings of the inverters as address instead of just 1 and 2 (in my case). It seems to be working fine, now I just need some sun :smile: . Thanks for your work on this, it is much appreciated.

1 Like

Glad to hear you got it working :smiley:

1 Like

Hi Robert, I may have found a bug. I do not know if it is caused by your software or by HA energy. The accumulated energy from the previous day is not always reset and gets added to the following day.


Same happens for me occassionally:

The value is read directly from the inverters, but in my example YAML I filter them so the sensor goes unavailable after two hours:

      today_energy:
        name: 'Inverter#1 Today Energy'
        filters:
          - timeout: 2h

I think you use the same filter? If so, you may want to try removing it. The difference will be that the sensor will keep the last value of the day until it starts again the next day.

I forgot to update HA energy when I moved from the scraper-based setup to this new setup, but I’m using the total energy sensors for that, not the today ones.

Yes, I use the same filter, I will try to play around with it.
My first thought was also to use the total energy, to avoid the issue with daily reset, but my total energy reading is not very detailed. Is there some interval setting that I can edit for this?

No, I think the inverter only updates the value towards the end of the day (probably when it notices that the input power is decreasing significantly).

Perhaps it’s possible to use another filter to prevent the peaks at the start: Sensor Component — ESPHome

That was what I was thinking too. I will see if removing the filter makes any changes. If not I will take a look at the sensor component. If I find a solution, I will let you know. Thanks for your help :slight_smile:

1 Like