-
-
Notifications
You must be signed in to change notification settings - Fork 16
Configuration
This documentation has been updated for Release v3.0.0 which supports a list of Device IDs.
Important: If you have more than one inverter chained as Leader/Followers, each one must have a different device IDs. The Device IDs will be configured in the Inverter Device ID List in Home Assistant. The RS485 bus can be used for your inverter chain is on as long as it's configured as SolarEdge Leader with one or more Followers. The default Device ID is 1
. Each inverter must have a unique Device ID for Modbus/TCP. The SolarEdge monitoring platform still works if there are duplicate Device 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. This integration polls by default and is compatible with other polling-type connections. Other integrations that open an exclusive connection must be disabled or removed.
- Enable WiFi Direct on the inverter by switching the red toggle switch on the inverter to "P" position for less than 5 seconds.
- 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.
- 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.
This only needs to be done on the Leader (or single) inverter with the IP network connection.
Important: If you have more than one inverter chained as Leader/Followers, each one must have a different device IDs. The Device IDs will be configured in the Inverter Device ID List in Home Assistant. The RS485 bus can be used for your inverter chain is on as long as it's configured as SolarEdge Leader with one or more Followers. The default Device ID is 1
. Each inverter must have a unique Device ID for Modbus/TCP. The SolarEdge monitoring platform still works if there are duplicate Device 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/TCP.
Each inverter on the bus must have a unique Device ID. If the Device ID is not set correctly the inverters can still report data to SolarEdge, but will not work with Modbus/TCP.
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.
The RS485 meter Device ID does not conflict with an inverter's Device ID when they are on different RS485 busses. The SolarEdge meter ships with default ID 2.
Note that these inverters (like SE5000H) can also have Modbus/TCP enabled. To do so:
- 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.
- Go to "Communications" menu, then "LAN setup", where there will be an option to enter port for Modbus/TCP.
- 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.
In Home Assistant, add a new integration and search for "SolarEdge Modbus Multi".
Enter the IP address or host name of your inverter with Modbus/TCP enabled. The default port number is 1502.
The Inverter Device ID List accepts the following configurations:
- List:
1,2,3,4
or1,3,10
- Range:
1-4
becomes1,2,3,4
- Combination:
1-3,5,10
becomes1,2,3,5,10
If you only have one inverter, leave it at the default setting of 1
. Otherwise, set this to the Device IDs in your Leader/Follower chain.
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.
After setting up the integration, you can configure it by clicking on the "configure" button on your integrations panel:
Default 300 seconds (5 minutes). This option changes how often the inverters are polled for updates.
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 (recommended).
Automatically look for and add meter devices on start up. Default is enabled.
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
This option tries to detect support for Dynamic Power Control and Grid Control settings on the inverters.
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!
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.
Additional options for batteries are available when Auto-Detect Batteries is enabled.
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.
This number of polling intervals must pass before a battery energy value is allowed to reset. A value of 0
means immediately.
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.
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.
This option enables commands related to battery storage. The default is disabled.
This option enables commands related to export sites limits and production site limits. The default is disabled.
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.