Skip to content
Seth edited this page Aug 2, 2024 · 37 revisions

Important: If you have more than one inverter, the inverters must have sequential unit IDs (i.e. 1, 2, 3, ...). Either RS485 bus can be used for your inverter chain is on as long as it's configured as SolarEdge leader/follower. When you have meters the RS485 meter Device ID does not conflict with the inverter's Device ID because they are on different RS485 busses using different bus modes.

Each inverter must have a unique unit ID. The SolarEdge monitoring platform still works if there are duplicate unit IDs, but modbus will not.

SolarEdge inverters only allows one Modbus/TCP connection at a time. Additional TCP connection attempts will result in a "connection refused" error. Other integrations that connect to the same inverter using Modbus/TCP must be disabled or removed.

Enabling Modbus/TCP

For SetApp inverters without LCD

  1. Enable WiFi Direct on the inverter by switching the red toggle switch on the inverter to "P" position for less than 5 seconds.
  2. Connect to the inverter access point like you would for a normal network. The WiFi password is published at the right side of the inverter, OR scan the QR code on the side of your inverter.
  3. Open up a browser and go to http://172.16.0.1 then click on Site Communication. From this page you can enable Modbus/TCP.

Screenshot_20220702-171625_Chrome Screenshot_20220702-171650_Chrome Screenshot_20220702-171713_Chrome

This only needs to be done on the Leader (or single) inverter with the IP network connection.

Inverter Configuration

Important: If you have more than one inverter, the inverters must have sequential unit IDs (i.e. 1, 2, 3, ...). Either RS485 bus can be used for your inverter chain is on as long as it's configured as SolarEdge leader/follower. When you have meters the RS485 meter Device ID does not conflict with the inverter's Device ID because they are on different RS485 busses using different bus modes.

Each inverter must have a unique unit ID. The SolarEdge monitoring platform still works if there are duplicate unit IDs, but modbus will not.

If you only have one inverter: the default Device ID is 1 and no other changes are required beyond enabling modbus.

On the Leader (or single) inverter

Screenshot_20220702-171625_Chrome Screenshot_20220702-171650_Chrome Screenshot_20220702-171947_Chrome

On a Follower inverter

Screenshot_20220702-171625_Chrome Screenshot_20220702-172028_Chrome Screenshot_20220702-172041_Chrome

Make sure the Device ID of your second (or third, forth, etc. ) inverter is set correctly on the RS485 connection. Each inverter on the bus must have a unique Device ID. If your Leader inverter is Device ID 1, then the Follower inverters must start with Device ID 2 and increase by one. If the Device ID is not set correctly the inverters can still report data to SolarEdge, but will not work with Modbus/TCP or this integration.

Depending on the firmware version of your inverter it may read Master or Leader for the first inverter, and Slave or Follower for additional inverters.

Meter Settings

The RS485 meter Device ID does not conflict with any inverter's Device ID because they are on different RS485 busses. The SolarEdge meter ships with default ID 2.

Screenshot_20220702-171650_Chrome Screenshot_20220702-173918_Chrome Screenshot_20220702-173931_Chrome

For inverters with LCD or without SetApp or without WiFi Direct mode

Note that these inverters (like SE5000H) can also have Modbus/TCP enabled. To do so:

  1. Enter Installer mode on the inverter by pressing the "OK" button for 5 seconds and entering the installer password. The default password is "12312312", which maps to "⬆️⬇️✅⬆️⬇️✅⬆️⬇️" buttons on the inverter.
  2. Go to "Communications" menu, then "LAN setup", where there will be an option to enter port for Modbus/TCP.
  3. While you are there, if you have a multi-inverter configuration, check that Modbus IDs are set up correctly and no two identical Modbus IDs are used on the same RS485 interface. If you update Modbus IDs, ensure that inverter IDs are sequential and the master inverter has the ID of 1.

Integration Configuration

In Home Assistant, add a new integration and search for "SolarEdge Modbus Multi".

Screen Shot 2022-07-02 at 5 53 49 PM

Enter the IP address or host name of your inverter with Modbus/TCP enabled. The default port number is 1502.

If you only have one inverter, leave "Number of Inverters" set to the default of 1. Otherwise, set this number to the total number of inverters in your Leader/Follower chain.

You can configure the Leader inverter address with the "Inverter Modbus Address (Device ID)" option when setting up the integration. This will be the starting Device ID if "Number of Inverters" is greater than 1. For example, if you configure the Device ID to 4 and Number of Inverters to 3, then your inverters will be addressed as IDs 4, 5, 6. The default is 1, which will address the inverters as 2, 3, 4, etc.

Meters will be automatically detected by default. If you want to enable battery auto-detection, configure the integration after adding it (see Integration Configuration Options).

Important: SolarEdge inverters only allows one Modbus/TCP connection at a time. Other integrations that connect to the same inverter using Modbus/TCP must be disabled or removed. Additional TCP connection attempts will result in a "connection refused" error. You can use multiple instances of solaredge-modbus-multi as long as the Keep Modbus Connection Open option is disabled and the polling interval is greater than 10 seconds.

Integration Configuration Options

After setting up the integration, you can configure it by clicking on the "configure" button on your integrations panel:

Screenshot 2023-07-01 at 8 34 55 PM Screenshot 2023-05-29 at 7 38 24 AM

Polling Frequency

Default 300 seconds (5 minutes). This option changes how often the inverters are polled for updates.

Keep Modbus Connection Open

When enabled, this option will tell the integration to try and hold the connection to the inverter open at all times. The default is to close the connection after a polling cycle completes.

If the polling interval is 10 seconds or less this option is automatically enabled.

Auto-Detect Meters

Automatically look for and add meter devices on start up. Default is enabled.

Auto-Detect Batteries

Automatically look for and add battery devices on start up. Default is disabled.

Battery registers are not officially supported by SolarEdge. If you enable this and your batteries aren't detected, read Known Issues: Not All Inverters Support Battery Data

Power Control Options

This option allows enabling storage controls and site limit controls.

Warning: The Power Control Options can violate utility agreements, alter your utility billing (i.e increase your bills if used improperly), may require special equipment to be installed (such as meters), and overwrite provisioning by SolarEdge or your installer. Use at your own risk!

Battery Options

Additional options for batteries are available when Auto-Detect Batteries is enabled.

Screenshot 2024-05-22 at 11 09 28

Allow Battery Energy to Reset

This option is used with batteries that do not treat battery energy import and export as lifetime counters. When enabled, this option allows battery energy to go backwards or reset to zero. For more information see: Known Issues -> Battery Energy. The default is disabled.

Update Cycles to Reset Battery Energy

This number of polling intervals must pass before a battery energy value is allowed to reset. A value of 0 means immediately.

Battery Rating Adjustment

Some batteries may report some values that are higher than their rated (nameplate) values. Setting this option allows related sensors to display values over the rated values in validation checks.

Default: 0 percent. Valid range: 0-100 percent.

Power Control Options

By enabling these functions the user agrees that if something bad happens, or a large bill is generated, or you change a setting required by local laws or utility agreements, it's your problem. Don't open an issue to complain about settings: power control functions are disabled by default for this reason. If you know what you are doing and you recorded the original settings in case there are problems so you can revert to the last known good configuration, then you should be relatively safe.

Screen Shot 2022-11-27 at 10 29 43 PM

Enable Storage Control

This option enables commands related to battery storage. The default is disabled.

Enable Site Limit Control

This option enables commands related to export sites limits and production site limits. The default is disabled.

Inverter Command Delay

After sending a command the integration will wait the configured number of seconds before trying to read data from the inverter. Some inverters will refuse reads while processing a command , which will cause entities to become unavailable, or may return bad data while processing a command.

Default: 0 seconds. Valid range: 1 to 60 seconds.

Advanced Configuration with YAML

The solaredge-modbus-multi supports some settings in configuration.yaml for advanced users.

Changing these settings is not supported. The defaults work for a majority of cases. If you have problems after changing these settings you will be asked to remove them from your config.

These are the options available for YAML configuration with default values:

solaredge_modbus_multi:
  retry:
    time: 800  # First attempt in milliseconds.
    ratio: 3  # Time multiplier between each attempt.
    limit: 5  # Number of attempts before failing.
  modbus:
    timeout: 3  # Timeout for a request, in seconds.
    reconnect_delay: 0   # Minimum in seconds.milliseconds before reconnecting.
    reconnect_delay_max: 3.0  # Maximum in seconds.milliseconds before reconnecting.

For example, if you want to change the retry logic to retry up to 15 times at a fixed interval of 10 seconds (up to 2.5 minutes before changing to unavailable state) you would use settings like this:

solaredge_modbus_multi:
  retry:
    time: 10000 
    ratio: 1
    limit: 15

These settings could be changed in config.py but placing them in YAML config allows changes to be persistent across updates. These settings are not in the configuration options UI because changing these (intentionally or accidentally) can easily cause undesirable results.