Custom Component: SolarEdge Modbus TCP

remove that and this integration will work. you can only have one of them since they share namespace it seems

@Cinamon
How did you implement that?

Hi,
The component is installed and I get the values from the inverter.
Now I would like to see or calculate the current PV production. How to do this?
According to the SolarEdge documentation it is the registers 40083 und 40084

What are the values in HomeAssistant or how did you solve this?
This is what it looks like for me



Thanks!
Henrich

Hi @der_heinrich are you sure it’s this component you are using? Looks a bit different with names of the attributes. There are other other similar SolarEdge modbus components as well.

Either way your values look very strange, and incorrect, what SolarEdge inverter model do you have?

Hi all,
I’ve got the integration installed and running as expected - but, it is causing regular crashes of the Homeassistant App and Browser Tab when I am in the Dashboard, where I am using the Components from SolarEdge Modbus TCP


Any Idea, why this could happen?

I’ve found the following error in the Logs:

Logger: custom_components.solaredge_modbus.sensor
Source: custom_components/solaredge_modbus/sensor.py:472
Integration: SolarEdge Modbus (documentation)
First occurred: 13:19:02 (858 occurrences)
Last logged: 14:30:48

error 7

Do this mean that if you have a smart meter via RS485, you have to choose between either RS485 RTU or modbus TCP? From latest pdf on Solaredge site.

"Modbus is a serial communications protocol typically used to connect data collection terminals to a centralized processing unit.
SolarEdge products use Modbus to perform SunSpec messaging over two types of physical/link-layer channels:
Modbus RTU: Remote Terminal Unit (RTU) Modbus over a serial RS485 connection
Modbus TCP: Modbus over an Ethernet connection
SolarEdge systems support a single Modbus Leader only – either single Modbus RTU or single Modbus TCP."

If you connect a smart meter to your SolarEdge inverter, those values will be exposed though Modbus TCP as well, using the read_meter1: true to the configuration. Several people had success with this that contributed back to the custom component, but I don’t own a smart meter myself to verify any functionality.

However it is true that the inverter can only handle one modbus tcp client at once for example. To allow multiple clients you will have to set up a modbus tcp proxy. A friend of mine had success using this: https://pypi.org/project/modbus-proxy/

Tack för snabbt svar! (Thanks for a quick reply!)

The bottom line for me is, am I able to read out data to HA and simultaneously upload to SolarEdgde Monitoring portal with my Smart Meter? Modbus tcp proxy seems to advanced for a beginner like me.

Thanks :slight_smile:

VarsÄgod :slight_smile: (answering in english so others can benefit)

Yes, the modbus tcp protocol is only a local read out that should not affect the portal upload. You might have to change some settings in the inverter depending on how that was configured to either adjust the meter index and enable modbus tcp, but its the easiest way to get realtime data into home assistant.

1 Like

I had some success in other modbus devices by splitting the signal, might be worth investigating if you need so:

2 Likes

Not sure what error 7 means, are you using wifi or ethernet between your Home Assistant instance and the inverter?

Hi, the Connection is Ethernet.
But it seems to happen Ehen I’m using an apex Chart for creating a curve of the produced kWh.
I have removed this Card and since then, I haven’t faced any Crash of the Lovelace ui.

Still haven’t checked the Logs yet


Can someone please explain what the difference is between this custom component by @erikarenhill and this binsentsu solaredge modbus available via HACS? (Other than installation that is), I mean function-wise.

FYI and if someone else makes the same stupid mistake (in my eager I didn’t read through this thread that I should use ethernet cable and enable TCP via Modbus) as I did last week this below could provide som information.

My Smart Meter (white one) from Solaredge lost communication with inverter and I was unable to add it again, whatever I did in SetApp. I even tried to replace the Smart Meter with my old one (yes I have two :slight_smile: ) a black one also from SolarEdge using Wattnode but without success. No communication whatsoever, only communication error 3x6e.

I solved it by installing a ethernet cable to the inverter and then I could all of a suddenly add my Smart Meter again without the communication error. Maybe this could help someone in the future, trial and error and more grey hairs and somewhat wiser perhaps


1 Like

This is the data from sample configuration yaml file running on my Hassio. I have a Solaredgde Smart Meter connected as meter #2. I’m new to Hassio and python, is there any more data you can read from the inverter than this?

@TheLordVader

I feel no. I understood Solaredge is broadcasting data’s through modbus according to sunspec protocol. So even if they can supply more info’s, you will never get it.

I have solaredge inverter+smartmeter+battery and I’m getting the same data’s

1 Like

It is possible!
I have installed binsentsu modbus and it automatically shows me 83(!) entities. I installed it via HACS.
Perhaps @erikarenhill could implement this in his version as well somehow?
There is no additional configuration in configuration.yaml, so I guess the sensors are added in some other way.

https://www.solaredge.com/sites/default/files/sunspec-implementation-technical-note.pdf page 21 and forward is what SolarEdge supports to read from the modbus for external meters. I dont have any external meters to verify that this works as expected even if I implement according to the specification.

Feel free to do a pull request at github if you want to expand more sensor values for external meters. There are a couple of PR’s lying around to support multiple meters that I didn’t have the time to merge yet where the contributor has tested this on his own system.

1 Like

Do you know which is the sensor for the actual status of the battery?

This is een awesome custom component!

The only thing I was missing is that the sensor.solaredge_status displays numbers is my setup (SE5K inverter). Those numbers where not very helpful for me. I found the meaning of them and just wrote a template to replace the numbers with the actual state description:

#Zonnepanelen status templating
- platform: template
  sensors:
    solaredge_status_text:
      friendly_name: 'Solaredge status text'
      value_template: >-
        {%- if is_state("sensor.solaredge_status", "1") %}
            Off
        {%- elif is_state("sensor.solaredge_status", "2") %}
            Sleeping (auto-shutdown) – Night mode
        {%- elif is_state("sensor.solaredge_status", "3") %}
            Grid Monitoring/wake-up
        {%- elif is_state("sensor.solaredge_status", "4") %}
            Inverter is ON and producing power
        {%- elif is_state("sensor.solaredge_status", "5") %}
            Production (curtailed)
        {%- elif is_state("sensor.solaredge_status", "6") %}
            Shutting down
        {%- elif is_state("sensor.solaredge_status", "7") %}
            Fault
        {% else %}
            Maintenance/setup
        {% endif %}

It’s working fine over here. Hope someone else can use this as well. :slight_smile:

1 Like

Hi Eric, after updating HA to latest i am getting this:
Logger: homeassistant.components.hassio
Source: components/hassio/init.py:508
Integration: Home Assistant Supervisor (documentation, issues)
First occurred: 4:32:48 PM (1 occurrences)
Last logged: 4:32:48 PM

The system cannot restart because the configuration is not valid: Component error: solaredge_modbus - Integration ‘solaredge_modbus’ not found.

What should i do to make it work again?