Scraping Delta SOLIVIA PV inverter data

I recently moved into a house that came equipped with a PV (solar) installation with two Delta SOLIVIA inverters and the SOLIVIA Gateway, a device that is hooked up to the inverters and sends their data to the cloud.

I don’t particularly care for having that data uploaded somewhere, and from what I have gathered, it requires a paid subscription if you want to be able to monitor it.

I’m only interested in the power generation statistics, and it turns out those are quite easy to scrape from the gateway directly.

Disclaimer: my gateway is running firmware 1.03.21 and has been configured to use a static IP address in my local network. I’m using 192.168.1.100 as an example below.

To retrieve inverter statistics, you need to know its serial number. The easiest way to find this is to open the following URL: http://192.168.1.100/Inverter.htm

This should list the connected inverters, including a link to the power overview page for each inverter. Below I’m using a serial number placeholder of “0000”, make sure to replace that with your actual serial number.

I’m defining two sensors, one for actual generated power (in Watt) and one for total generated energy (in kWh):

- platform: scrape
  name: Actual Power
  resource: 'http://192.168.1.100/ID_0000'
  select: 'tr:nth-child(10) td:nth-child(2)'
  value_template: '{{ value|int }}'
  scan_interval: 30
  unit_of_measurement: 'watt'

- platform: scrape
  name: Total Energy
  resource: 'http://192.168.1.100/ID_0000'
  select: 'tr:nth-child(11) td:nth-child(2)'
  value_template: '{{ value|int }}'
  scan_interval: 120
  unit_of_measurement: 'kWh'
2 Likes

Found this topic while looking to purchase an extra Delta Solivia Gateway M1 G2 for my house :slight_smile:

It’s also possible to set the gateway in a “passtrough” mode, to communicate with the inverters directly. I was having trouble with generic Ethernet-RS485 gear, but relaying the commands through the gateway got me a working communications path with the gateway.

Sadly the exact command sequences aren’t publicly documented (as far as I know), I got them directly from Delta under NDA in 2013/2014. Still, if anyone reads this and is interested, I’d be happy to help search whether it can be found publicly nowadays, or share the contact details that I used in the past to get the documents.

1 Like

Hi’

Just some comments, as I’ve just finished my ESPHome Solivia Gateway M1 G2 modbus sniffer :slight_smile:

If you want extended details from your inverter, then an ESPHome modbus sniffer is the easiest and simplest solution.
Many commands are now public available and a few guys have identified and posted the majority of registers in the different inverter package replies. There seems to be at least three different package lengths out there. All depending on model and firmware.

My specific inverter package differs a lot in both length and the registers index in the package from other examples I’ve found on the net. So I had to do the job from scratch. Only missing a few unknown registers now :laughing:

If you’re interested then take peek at this thread. I’ll publish my final config in a few days.

Regards
Henning

1 Like

Hi Robert,

Thanks for your post, I used it for my Solivia 2.5 EU G4 TR. It works okay, but there is some sort of magic line at about 160 watt. What I mean with that is that normally the Actual Power sort of defaults to 160 watt, so in the morning it starts with 160 watt until the inverter really is generating more power, and in the evening it will settle on 160 watt until it really isn’t producing any power anymore.

I do actually see the 160 watt value at the inverter page, so the sensor is doing it’s job. I see there are different solutions out there to read this inverter, but this scraping method is nice and real easy with no hardware required.

Did you, or anybody else of course, happen to stumble on this problem?

Thanks, Erik

I don’t recognize that issue:

The actual power for both my inverters is at 0 at the moment, as expected. The chart isn’t particularly smooth, but it doesn’t look like it has a magic value like you’re seeing.

1 Like

Hi Jeroen,

Could you help me with the following,
How do i put the m1g2 gateway into passthrough mode.
Have you found online the modbus adress list of the solivia 3.3.

bedankt

Hi’ @marcduyn

A bit late to the party perhaps :laughing:
Anyway, can’t help with the gateway passthrough mode.
But the public Solivia inverter datasheet is available here:

A list of all Delta Solivia inverters registers and the communication protocol is published and can be found here: https://forums.ni.com/ni/attachments/ni/170/1007166/1/Public%20RS485%20Protocol%201V2.pdf

I am new to home assistant.
In my house I have 2 inverters Delta solivia EU G3 3.3, 1 inverter delta solivia EU G3 2.5 and 2 gateways M1G2.

The inverters are logged in the cloud of delta solivia.

I searched online and I dont know what the best and easiest way is.
My inverters and gateway are not close located to my RPI.

Do I need extra hardware?

Can somebody help me to get all the data in home assistant?

Did you read my first post? That’s how I retrieve the information from my gateway (which isn’t logged in to the Solivia cloud, but I don’t think that matters).

Try retrieving this URL from your gateways: http://192.168.1.100/Inverter.htm (replace “192.168.1.100” with the IP address for your gateway).

I did. But i dont know how to get it working and visualize it in home assistant :upside_down_face:.Maybe you can help me ?

Iam new here, i believe your “scraper” is exactly what i need, but how do i implement this script and where exactly?

The scrape integration is documented here: Scrape - Home Assistant

Dear Robert, sinds about 2 months Delta ended the portall and now, at the interval, the gateway doesnt communicate, of course and the 2 values you are scraping aren’t available until you reset the gateway. Do You perhaps have a hack or crack to overwrite the gateway, whitch one is, in this state virtualy worthless?
I still don’t know how to implement your scrape scrips and where.
BTW: I am still looking at it with the webinterface.

Hallo Jeroen, ik ben heel benieuwd hoe je de M1 gateway op passtrough zet. De sequenties zijn nu inmiddels bekend en er is een .pdf van. (ps. ik heb je op linkedin gevonden daarom doe ik het nu in het Nederlands)

I never had to reset or do anything with my gateway, the data that I’m scraping has always been available (the reason why I use it like this is because the previous owner of my house never left the access password to the gateway, or the Delta portal, and I didn’t want to reset the gateway).

Can you see your inverter on this page: http://AA.BB.CC.DD/Inverter.htm (where “AA.BB.CC.DD” should be replaced by the IP address of your gateway).

I have two inverters that are both mentioned there, and for each there’s a link to the inverter data page that contains the table with the information that I’m scraping.

Hi Ton, you’re right, I’m a native Dutchie - but I’ll reply in English, I believe that’s the preferred language on the forum.
I can send you an example Perl script that polls several values from an inverter using the M1 gateway as a relay, does that help? I haven’t found the time to re-write the code in Python, but I’d be happy to co-develop and/or test if someone wants to take up this task.

1 Like

Since my gateway was starting to act up too I replaced it with a hardware solution based on an ESP32: RS-485 component for some Delta Solivia G3/G4 solar inverters

Personally I prefer wired over wireless, so I’ll stick with the M1. The 2 that I’m using work flawless. And I have 20 or 30 or so that I bought second-hand for a good price :slight_smile:

Hoi Jeroen,
I also prefer wired and the M1 gateway wasn’t cheap so. Now Delta stopped with the Azure based portal. I would like continu to make use of this gateway if posible. But now it cannot connect any more, The ‘actual power’ and the ‘total energy’ are sometimes not available anymore, until you restart the gateway, making the device worthless for automatisation, I think. But I am talking about the webinterface off it. Q: With such a script as you are using, you probely, bypass that interface. Am I correct in that asuption?

This was exactly the problem that I was having, often the values weren’t available anymore or they were wildly inaccurate. I used a smart plug to power cycle the gateway every night but that didn’t stop the issue from happening during the day, which is why I went on to look for alternatives.

My hardware solution (which, if wired is really a requirement, should also work on a WT32-ETH01 board, although I haven’t actually tried that myself) has been running without issues for about a week now.