Custom Component: ABB/Power-One/FIMER PV Inverters - SunSpec Modbus TCP

that’s the view you built, show me the sensors on the device page…it’s impossible you don’t see all the sensors.

BTW: your model is not in the list, I will add it. Do you have an error msg in HA log saying to contact me and provide some info, right? I see Options: 0x10ED. So your model is 0x10 and it is a UNO-DM-6.0-TL-PLUS.

I added all the sensor from the “devices” tab.
Here is the view:

Same if I check Entities:

Here is the error for the unknown model:

Questo errore ha avuto origine da un'integrazione personalizzata.

Logger: custom_components.abb_powerone_pvi_sunspec
Source: custom_components/abb_powerone_pvi_sunspec/__init__.py:145
Integration: ABB Power-One PVI SunSpec (documentation, issues)
First occurred: 11:28:57 (788 occurrences)
Last logged: 17:26:01

(opt_comm_model) Model unknown, report to @alexdelprete on the forum the following data: Manuf.: ABB - Model: -3P31- - Options: 0x10ED/0xFF69/ - OptModel: 0x10ED/0xFF69/ - OptModelInt: 16
(read_inv) Reading data failed! Please check Slave ID: 247
(read_inv) Reading data failed! Please check Reg. Base Address: 40000
(read_data) Reading data failed! Please check Slave ID: 247
(read_data) Reading data failed! Please check Reg. Base Address: 40000

Ok, so OptModelInt is 16, I’ll add your model to the list so in next version you’ll see it instead of those 0x strings.

Regarding the strings, I think I know what the problem is: I read strings registers only for 3-phase models, I see you use a single-phase inverter. How many strings do you have? How many kwh total?

I have 2 strings, 6kW in total (3,2kW and 2,88kW each string)

And it’s a single-phase, right?

I’ll modify the logic so I’ll read MPTT info also for single-phase inverters. I’ll release a beta version so you can test it, if it works, I’ll release an official version.

Thank you for providing the info.

Yes, single phase. Thanks for update!

@Polvere791 can you please test v2.1.1-beta.1? You need to enable beta releases in HACS. You should then see the two DC modules with their sensors and also your model# instead of the 0xYYY strings.

If it works for you, I’ll realease the official version. Thanks for the help.

Hi Alex, model number works, but I still see one single string.
I reloaded the integration after having downloaded the beta version. Do I have to un install it and reinstall?


the second screenshot reporting the version is not the version you installed, but the version on the repository, so it doesn’t provide any meaningful information unfortunately. But since I see that now the model of the inverter is correct, I assume you upgraded it correctly, so we need to understand why it doesn’t read the MPPTs info.

If you have qmodmaster, I need you to check the registers starting from 122 (for a total of 125 registers), my component reads register 122 (value should always be 160) and then register 130 whose value represents the number of MPPT modules (DC modules) installed in the system, in my case it’s 2, see screenshot below:

So the only thing I can think of is that you don’t have the value 160 in register 122, but I need you to check that for me.

Let me know…

Now I understand where your problem is, reading the register configuration that you were using before the component: did you notice that you have system registers in the 40xxx address (base address 40000, the standard), then you have DC modules registers at 41xxx, and that is not normal.

This is the ABB official sunspec document for MPTT registers (the registers for DC modules):

The component respects the spec, so it looks for registers starting at the base address you configure (40000), then the register address offset, for example at addres 40122 you should read the ID (value 160).

Another example: you had String 1 Output W at 41125, but if you check the spec above, the component expects that at address 40143.

So it seems your system does not respect the spec. Can I ask you how you interface the inverter? Does it have the VSN300 or VSN700 card embedded? Or are you using a generic RS485 gateway?

It’s odd that my inverter doesn’t respect the specs from ABB itself…but I don’t know how to check because i tried qmodmaster but it doesn’t start (“the procedure entry point CreateEventW could not be located in the dynamic link library api-ms-win-core-synch-l1-2-0.dll”, the dll is present, I wasn’t able to fix this).

I interface the inverter via TCP (WiFi), don’t know what kind of card is installed.

So, how did you find does 41xxx register addresses without using a modbus utility like qmodmaster? If you have other tools use them, it’s ok, I only need to see what your inverter returns at those addresses.

So you connect to the inverter directly, it has an embedded card right? Does it have a webserver? It should tell you what card it is in the webserver. Anyway, if it’s an ABB embedded card, it’s the VS300 or VS700.

Sorry, without having further info, I can’t do much else. I have to respect ABB Sunspec specifications for the register maps, can’t make exceptions for a specific inverter. You’re the first case I see that has two different register base addresses.

I found those values in another forum.
Anyway, here is what I see at register 40130:

I checked registers starting 41000, here is what I have:




These values are not in line with the ABB VSNx00 ModBus Sunspec.

Did you find what are you using for the system? Does it have a web interface? The VSN300/700 have a web interface.

It does, but there is no mention of the type of the card. The web interface is rebranded “fimer” though, maybe this is the cause.

Anyway, not a big issue, I can leave without knowing data from string 2…

Onw thing I noticed about the package: sometimes it gets “stuck”, all the values are unavailable, by reloading the integration all cames back to normal.
I’ll check the logs, if I find something I’ll let you know

Hi Alex, i just tried all of the possible settings showed here in the post but i cant connect to mi inverter (the integration says “succes!” but i cant find any device or entity.
Maybe i have a non supported inverted model?
here is my configuration:
Logger card vsn300
Inverter model PVI-10.0-OUTD Universal


Can you help me plese?
Thanks in advance!

Ciao Lorenzo,

  1. check HA logs for errors output by the component and post them here.
  2. Show me the screenshot of the configuration before submitting it.
  3. Are you sure you’re configuring the correct values in the config? Double-check IP + Slave ID + start address.

Ciao Alessandro grazie per la velocissima risposta!

here is the log:

2022-12-28 10:56:51.645 ERROR (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_inv) Reading data failed! Please check Slave ID: 247

2022-12-28 10:56:51.652 ERROR (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_inv) Reading data failed! Please check Reg. Base Address: 40000

2022-12-28 11:04:40.439 ERROR (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_inv) Reading data failed! Please check Slave ID: 247

2022-12-28 11:04:40.442 ERROR (MainThread) [custom_components.abb_powerone_pvi_sunspec] (read_inv) Reading data failed! Please check Reg. Base Address: 0

This is the config screenhot (one of them)

Ip is correct (the ABB web interface is working)

Did you read the notes in the OP?

Try Slave ID=2. If not working, get the inverter Slave ID from the inverter’s display.

Great Alex! Now i can get inverter and entities!
Grazie mille! :wink:

1 Like