Giter Club home page Giter Club logo

solaredge-modbus-multi's Introduction

hacs_badge

SolarEdge Modbus Multi

Home Assistant integration solaredge-modbus-multi supports SolarEdge inverters with Modbus/TCP local polling. It works with single inverters, multiple inverters, meters, batteries, and many other improvements over other integrations that didn't work well with a multi-device setup.

It is designed to communicate locally using Modbus/TCP where you have a single Leader inverter connected with one or more Follower inverters chained using the RS485 bus. Each inverter can connect to three meters and two batteries.

Simple single inverter setups are fully supported - multiple devices is a feature, not a requirement.

Features

  • Inverter support for 1 to 32 SolarEdge inverters.
  • Meter support for 1 to 3 meters per inverter.
  • Battery support for 1 to 3 batteries per inverter.
  • Supports site limit and storage controls.
  • Automatically detects meters and batteries.
  • Supports Three Phase Inverters with Synergy Technology.
  • Polling frequency configuration option (1 to 86400 seconds).
  • Configurable starting inverter device ID.
  • Connects locally using Modbus/TCP - no cloud dependencies.
  • Informational sensor for device and its attributes
  • Supports status and error reporting sensors.
  • User friendly configuration through Config Flow.

Read about more features on the wiki: WillCodeForCats/solaredge-modbus-multi/wiki

Note: The modbus interface currently only defines up to 2 batteries per inverter (even if the SolarEdge cloud monitoring platform shows more).

Installation

Install with HACS: Search for "SolarEdge Modbus Multi" in the default repository,

OR

Copy the solaredge_modbus_multi folder into to your Home Assistant config/custom_components folder.

After rebooting Home Assistant, this integration can be configured through the integration setup UI.

Configuration

WillCodeForCats/solaredge-modbus-multi/wiki/Configuration

Documentation

WillCodeForCats/solaredge-modbus-multi/wiki

Required Versions

  • Home Assistant 2024.3.2 or newer
  • Python 3.11 or newer
  • pymodbus 3.6.6 or newer

Specifications

WillCodeForCats/solaredge-modbus-multi/tree/main/doc

Project Sponsors

solaredge-modbus-multi's People

Contributors

dependabot[bot] avatar jacktams avatar jefvda avatar mpredfearn avatar stephanfo avatar willcodeforcats avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

solaredge-modbus-multi's Issues

Known Issue: Temperature Conversions since 2022.5

Since Home Assistant version 2022.5, temperature conversions from the native Celsius value to Fahrenheit (if your HA is configured for °F instead of °C) no longer work, which causes temperatures to be always displayed in °C. This is a design issue with the original code base and will be fixed in v2.0.

Set up procedure with optional meter installed in inverter

The component works when set up with "standard" entries IP address and port no. Then the actual inverter values are shown in Home Assistant.
I was not successfull to readout the power meter, which is installed additionally in the inverter to measure the total ingoing/outgoing current to my house. The SolarEdge App shows these additional values.
I tried to turn on the 3 checkboxes in the configuration dialog in many different ways. Only then no values at all were reported, not even the values transmitted before.
There are two lines after you have to enter the TCP port (in my case 502). These default both to "1", without detailing, what the "1"s are used for. Other entries needed ?
I use this integration, because it works. I only have 1 inverter.
The additional meter may have ID 2 ?
Please help, maybe with adding some text to the wiki.
Thank you.

2.2.1 to 2.2.2: grid meter now shown as two devices with different model but only one has entities

Describe the bug
On 2.2.1 I had two devices:
I1 (inverter)
M1 (attached meter with model SE-RGMTR-1D-240C-A).
Attached meter showed as model "SE-RGMTR-1D-240C-A".
Since 2.2.2.
I have:
I1 (inverter)
M1 (SE-MTR-3Y-400V-A) <- no entities
M1 (SE-RGMTR-1D-240C-A) <- has all the expected entities

Expected behavior
not sure if this is really a bug or expected, but at least physically only one meter is attached.

Screenshots

image
image

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.9.5
  • solaredge-modbus-multi Version: 2.2.2

Battery DC Voltage and Current values are massive

Describe the bug

The values being reporting for DC voltage and current are way out of proportion and hopefully not valid.

Entity ID: sensor.solaredge_b1_dc_current
State: -3.40282346638529e+38

Entity ID: sensor.solaredge_b1_dc_voltage
State: -3.40282346638529e+38

Expected behavior

Sane/reasonable values. :)

Screenshots
2022-10-07 (1)
2022-10-07

Logs
Copy any log warnings or errors in Home Assistant from "custom_components.solaredge_modbus" and "pymodbus.client.sync".

No warnings or errors.

Debug Logs

2022-10-07 17:15:19.097 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_DID 0x65
2022-10-07 17:15:19.097 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_Length 0x32
2022-10-07 17:15:19.118 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_DID 0x65
2022-10-07 17:15:19.118 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Current 0x1c4
2022-10-07 17:15:19.118 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Current_A 0x1c4
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Current_B 0xffff
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Current_C 0xffff
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Current_SF -0x2
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_AB 0x97c
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_BC 0xffff
2022-10-07 17:15:19.119 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_CA 0xffff
2022-10-07 17:15:19.120 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_AN 0x97c
2022-10-07 17:15:19.120 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_BN 0xffff
2022-10-07 17:15:19.120 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_CN 0xffff
2022-10-07 17:15:19.120 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Voltage_SF -0x1
2022-10-07 17:15:19.120 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Power 0x2411
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Power_SF -0x1
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Frequency 0xc315
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Frequency_SF -0x3
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_VA 0x2ae6
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_VA_SF -0x1
2022-10-07 17:15:19.121 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_var -0x173a
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_var_SF -0x1
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_PF -0x20d7
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_PF_SF -0x2
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Energy_WH 0x7e1c
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: AC_Energy_WH_SF 0x0
2022-10-07 17:15:19.122 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Current 0x62d2
2022-10-07 17:15:19.123 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Current_SF -0x4
2022-10-07 17:15:19.123 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Voltage 0xe79
2022-10-07 17:15:19.123 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Voltage_SF -0x1
2022-10-07 17:15:19.123 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Power 0x249d
2022-10-07 17:15:19.124 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_DC_Power_SF -0x1
2022-10-07 17:15:19.124 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Temp_Cab -0x8000
2022-10-07 17:15:19.124 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Temp_Sink 0xee7
2022-10-07 17:15:19.125 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Temp_Trns -0x8000
2022-10-07 17:15:19.125 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Temp_Other -0x8000
2022-10-07 17:15:19.125 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Temp_SF -0x2
2022-10-07 17:15:19.125 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Status 0x4
2022-10-07 17:15:19.125 DEBUG (SyncWorker_8) [custom_components.solaredge_modbus_multi.hub] Inverter 1: I_Status_Vendor 0x0
2022-10-07 17:15:19.146 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: C_SunSpec_DID 0xcb
2022-10-07 17:15:19.146 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: C_SunSpec_Length 0x69
2022-10-07 17:15:19.171 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: C_SunSpec_DID 0xcb
2022-10-07 17:15:19.171 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Current 0x2f
2022-10-07 17:15:19.171 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Current_A 0x2e
2022-10-07 17:15:19.171 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Current_B 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Current_C 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Current_SF -0x1
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_LN 0x5f0b
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_AN 0x5f0b
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_BN 0x17
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_CN 0x8
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_LL 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_AB 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_BC 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_CA 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Voltage_SF -0x2
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Frequency 0x1383
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Frequency_SF -0x2
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Power -0x2d8
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Power_A -0x2d4
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Power_B 0x0
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Power_C -0x3
2022-10-07 17:15:19.172 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Power_SF 0x0
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_VA 0x340
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_VA_A 0x334
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_VA_B 0x0
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_VA_C 0x12
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_VA_SF 0x0
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_var -0x193
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_var_A -0x181
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_var_B 0x0
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_var_C -0x12
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_var_SF 0x0
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_PF 0x22ac
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_PF_A 0x19e5
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_PF_B 0x2710
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_PF_C 0x2710
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_PF_SF -0x2
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Exported 0x2cfb
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Exported_A 0x2d17
2022-10-07 17:15:19.173 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Exported_B 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Exported_C 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Imported 0x33d6
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Imported_A 0x3382
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Imported_B 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_Imported_C 0x70
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: AC_Energy_WH_SF 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Exported 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Exported_A 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Exported_B 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Exported_C 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Imported 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Imported_A 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Imported_B 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_Imported_C 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_VAh_SF -0x8000
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q1 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q1_A 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q1_B 0x0
2022-10-07 17:15:19.174 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q1_C 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q2 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q2_A 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q2_B 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Import_Q2_C 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q3 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q3_A 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q3_B 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q3_C 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q4 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q4_A 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q4_B 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_Export_Q4_C 0x0
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_varh_SF -0x8000
2022-10-07 17:15:19.175 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1 meter 1: M_Events 0x0
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Temp_Average 19.654592514038086
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Temp_Max 0.0
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_DC_Voltage -3.4028234663852886e+38
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_DC_Current -3.4028234663852886e+38
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_DC_Power 0.0
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Export_Energy_WH 0x17a2
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Import_Energy_WH 0x1fc5
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Energy_Max 9700.0
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Energy_Available 9565.4404296875
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_SOH 96.0
2022-10-07 17:15:19.208 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_SOE 48.84709548950195
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Status 0x1
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Status_Vendor 0x1
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log1 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log2 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log3 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log4 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log5 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log6 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log7 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log8 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor1 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor2 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor3 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor4 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor5 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor6 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor7 0x0
2022-10-07 17:15:19.209 DEBUG (SyncWorker_3) [custom_components.solaredge_modbus_multi.hub] Inverter 1 batt 1: B_Event_Log_Vendor8 0x0
2022-10-07 17:15:19.211 DEBUG (MainThread) [custom_components.solaredge_modbus_multi] Finished fetching SolarEdge Coordinator data in 0.210 seconds (success: True)

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.10.1
  • solaredge-modbus-multi Version: 2.2.3

Additional context

The inverter and battery were only installed yesterday.

Not working with 2 inverters

Hello, thanks for the work as it is useful for installations with more than 1 inverter

I first tried https://github.com/binsentsu/home-assistant-solaredge-modbus but it was only detecting one inverter and only importing solar production reading from the master inverter then I realised you started this great add-on so I downloaded through HACS.

The Solaredge installation

  • 2 inverters
  • Master ID: 1
  • Meter 1 ID: 2
  • Master ID connected with ethernet

Installation of addon

  • First I deleted the initial home-assistant-solaredge-modbus addon, restarted HA and then install solaredge-modbus-multi
  • After restarting again HA, I introduced the data: local IP, port number, inverter ID (1), inverters amount (2), Meter 1 and polling 10 seconds

The result is that no data is imported to HA, Unavailable

Inverter device ID 1 not found.

It's a completely new installation.
If I install 2.0.0 and manually add the IP of the inverter, I get every time the error "Inverter device ID 1 not found."

I removed the devices, downgraded to 1.2.2 and it recognises 238 entities (don't know if they all work, I'm not at that part at the moment).

I'm on the latest versions, I think:
Home Assistant Core 2022.6.7
HA Supervisor: 2022.05.3
HA OS 8.2
HACS 1.25.5

Battery data - unknown

Hi,

I am using your integration now for a few days and it is working great. The only thing what sometimes goes wrong is the energy import and export of the Battery:
image
When the battery is loading it gives both import and export as unknown. When there is a bigger load it looks like that it is working. For example the battery is loading at the moment, but I see an unknown. History shows that the sensor is working:
image

The sensor looks updated 8 minutes ago.

two integrations with the same file location - how to safely remove one?

it's probably not a bug per se, but - maybe you can help me ;)
I was using the Solaredge Modbus integration by bitsentsu - lets call it "A", and because I wanted to give a try to your integration (as being updated "more ecently", and I like to have my software "up-to-date") without changing anything I went full Leeroy Jenkins and additionaly installed your Solaredge Modbus Multi-Inverter integration - lets call it "B". both integrations installed via HACS.

integration B started to work without anything additional, as it probably read all configurations from the A, with one exception: as the integration B is planned for multi-inverter setup, an "I1" was added to entity names so now I had twice as many entities. I've noticed, that entities from integration A went unknown/unavailable, but all from your integration showed all the readings correctly. so - as I wanted to keep all my readings/history/recorder/influxdb archive to be consistent, I went to the dashboard and entity by entity started to delete entity from A, and to rename entity from B (by deleting "I1" - I'm not planning multi-inverter setup anyway). everything went smooth, and is working without problems.

BUT - after that I've noticed, that I still have the A integration listed in HACS... I've checked custom_components folder and if I'm correct, A & B use the same folder, just the files were overwritten ;)

so now goes my question: is it safe to uninstall the A integration via HACS, or it would remove the B integration along with data? or maybe there's some other way to delete the A integration by hand, so it won't be recognized by HACS as also installed in the system?

New KeyError for B_RatedEnergy with 2.2.5-pre2

Describe the bug

After upgrading to 2.2.5-pre2, the following KeyError appears in my logs:

2022-10-10 07:36:35.065 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up solaredge_modbus_multi platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 428, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 691, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 777, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 533, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 571, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 404, in state
    value = self.native_value
  File "/config/custom_components/solaredge_modbus_multi/sensor.py", line 1760, in native_value
    > self._platform.decoded_model["B_RatedEnergy"]
KeyError: 'B_RatedEnergy'

This is most likely happening because my battery got fully drained overnight and is currently showing 0% in the app for available energy.

I can grab logs if necessary, but I suspect it's just a case of checking for the existence of the key in decoded_model before creating the sensor.

Export Control

The export control block of registers allows control of how much power is exported from the system to the grid. This may be useful, for example, to prevent export if the export rate is negative.

Once the select / number controls are merged, it will be relatively easy to add support for this feature which should be the last one to bring this integration up to feature parity with https://github.com/binsentsu/home-assistant-solaredge-modbus (this was merged there in binsentsu/home-assistant-solaredge-modbus#42)

Power control functions

If you are interested in power control functions, please follow this issue for updates. We will also need testers.

Produced kwh

Hi!
I can find imported kwh and exported kwh via meter, but not produced kwh via inverter.
Is i possible to get this information (totalt produced energi) from the inverter?
//Flisan

Fronius modbus

I have a SolarEdge inverter and also a Fronius Galvo inverter. I've installed this component for both inverters. The sensors of the Solaredge inverter looks very good. Better then other modbus components I've tested so far. Good work!

image

image

The sensors of the Fronius inverter looks good. Some small improvement could be made.
As you can see the main sensor values are ok. The Fronius status codes are different and also the power factor is different.
So with no modifications I can use this custom component already for both inverters!

I think with some minor changes this component could also be interesting for other inverter brands e.g. Fronius.
@WillCodeForCats are you interested? If so, I could help you with debugging/testing the Fronius inverter for sure.

Use battery data in Energy dashboard

Hi,

I receive import and export kWh data from my LG battery via this integration, but I can't select that yet in the Energy dashboard (think because it is not long term statistics entities):

2022-09-30_16-54-11

Would it be possible to use those energy import and export sensor from a battery in the energy dashboard?

Monitor Electric Vehicule charger SE inverter

Hello.

One of my SE inverter is a EV charger and I wonder if we could read the power sent to the car as an independent load, this way we could read how much energy we are "using and storing" in the car.

Would this be possible? How could I help make it possible?

The power shows with a downside

Hi. I start use your integration with solar panels and counter. All looks good but in HA the power shows with a downside ? Why ?
minus

Platform solaredge_modbus_multi does not generate unique IDs.

Everything appears to be working correctly. I have two inverters and one meter which are all correct.

Describe the bug
I get an error message in the logs about unique IDs, which I suspect is related to 2022.7 beta release.

Expected behavior
Integration should generate unique IDs and not report an error message.

Screenshots
image
image
image
image

Logs
Copy any log messages/errors from Home Assistant from "custom_components.solaredge_modbus" and "pymodbus.client.sync".

Logger: homeassistant.components.sensor
Source: helpers/entity_platform.py:620
Integration: Sensor (documentation, issues)
First occurred: 11:54:24 AM (28 occurrences)
Last logged: 11:54:24 AM

Platform solaredge_modbus_multi does not generate unique IDs. ID SE-MTR-3Y-400V-A_606773955_exported_c_kwh already exists - ignoring sensor.solaredge_m1_exported_c_kwh
Platform solaredge_modbus_multi does not generate unique IDs. ID SE-MTR-3Y-400V-A_606773955_imported_kwh already exists - ignoring sensor.solaredge_m1_imported_kwh
Platform solaredge_modbus_multi does not generate unique IDs. ID SE-MTR-3Y-400V-A_606773955_imported_a_kwh already exists - ignoring sensor.solaredge_m1_imported_a_kwh
Platform solaredge_modbus_multi does not generate unique IDs. ID SE-MTR-3Y-400V-A_606773955_imported_b_kwh already exists - ignoring sensor.solaredge_m1_imported_b_kwh
Platform solaredge_modbus_multi does not generate unique IDs. ID SE-MTR-3Y-400V-A_606773955_imported_c_kwh already exists - ignoring sensor.solaredge_m1_imported_c_kwh

Home Assistant (please complete the following information):

  • Home Assistant 2022.7.0b2
  • Supervisor 2022.06.2
  • Frontend 20220630.0 - latest
  • solaredge-modbus-multi Version: 2.0.0

Additional context
I deleted the old integrations before installing 2.0.0, all the history came across correctly.

Ethernet is also for Solaredge comms - no wireless or cell options

Hi,
I can't get this working.

Logger: pymodbus.client.sync
Source: /usr/local/lib/python3.9/site-packages/pymodbus/client/sync.py:201
First occurred: 15 November 2021, 12:54:21 (4656 occurrences)
Last logged: 14:46:11

Connection to (192.168.178.13, 502) failed: [Errno 111] Connection refused
Connection to (192.168.178.13, 502) failed: timed out
Connection to (192.168.178.13, 502) failed: [Errno 113] Host is unreachable

Also

Logger: custom_components.solaredge_modbus
Source: custom_components/solaredge_modbus/init.py:170
Integration: SolarEdge Modbus Multi-Inverter (documentation)
First occurred: 15 November 2021, 12:54:41 (4655 occurrences)
Last logged: 14:46:11

No open Modbus/TCP connection for solaredge

I can ping the inverter.

Is it something to do with your instruction that "Ethernet is also for Solaredge comms - no wireless or cell options" because my inverter is connected over WIFI not Ethernet? If so, is there any simply fix for this?

[cosmetic bug] warning about polling

Before reporting a bug, make sure your configuration is correct and your LAN is working.
https://github.com/WillCodeForCats/solaredge-modbus-multi/wiki/Configuration

Describe the bug
getting following warning every restart:

2022-09-20 09:32:18.237 WARNING (MainThread) [custom_components.solaredge_modbus_multi] Polling frequency < 10, requiring keep modbus open.

Expected behavior
would expect to suppress this warning when keep modbus open is checked.

Screenshots
image

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.9.5
  • solaredge-modbus-multi Version: 2.2.2

Additional context
same applied for version 2.2.1.

Help with reading the sensor values

This is not a bug report but rather a request for better understanding.

Background:
I have two inverters with one battery connected to each inverter.
What I want is to know at any given time:
How many power is being produced by my solar cell per inverter
How much power is being exported to the grid (per inverter or in total)
How much power is being used by my home (per inverter or in total)
How much power is being imported from the grid (per inverter or in total)
How much power is being used to charge my batteries (per inverter)
How much power is used from my batteries (per inverter).

I do want these values in "power" (Watts) to visualize the actual flow of power.

At the end of a day I am also interested in the energy (kwh) of
Energy Exported to Grid (Net-Metering)
Energy Used to feed the home
Energy used to charge the batteries
Energy Imported from Grid
Energy produced by Solar

I am sure all the values are there, but its hard to figure out exactly what values need to be calculated in what way to get to these numbers.
All my values collected are exported via Prometheus to Grafana and visualization happens there. HASS is just the "collector".

Any help is very appreciated

Language Translations

Looking for better language translations. The current translations are just the English version run through Google Translate.

Please help by reviewing and submitting updated translations, or new ones for languages we don't have yet.

Bug / feature request: make entities stale data aware

I'm building some automation around energy optimization in my house. For my use case, it would be fantastic if a failure to read the modbus-sensors would make them unavailable so the automation can go to safe defaults.

At present, the sensors will keep displaying the last value they had if the network connection between homeassistant and solaredge inverter is interrupted. I am willing to help and/or test, I had a look at the code but didn't see any obvious place to plug in what I'm looking for but then again I'm far from an expert in Python and even less so in home-assistant integration specifics.

Add config option to hold modbus connection open

Add config option to hold modbus connection open instead of connecting every polling cycle.

Also consider polling minimum interval less than 10 seconds but require hold open for short polling intervals.

1.2.1 upgrade, less entities

Hello,

thank you for this integration is really great.

I just followed the upgrade process and it worked really well, no duplicated entities. However, I had to rollback to the previous setup mainly because the new integration only detected 30 entities rather than the 100 that previous one detected.

not sure where the issue can be but would be able to point me to what am I missing in the configuration of it? I did it a few months back but just remember to use the default (I have only one inverter and no battery).

Thank you!

Config entry 'SolarEdge' for solaredge_modbus_multi integration not ready yet: 'NoneType' object is not subscriptable

Describe the bug
After update from 2.1.3 to 2.2.0 performed according to the documentation I got an error saying:

2022-09-05 20:22:56.936 ERROR (MainThread) [custom_components.solaredge_modbus_multi] Unexpected error fetching SolarEdge Coordinator data: 'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
    self.data = await self._async_update_data()
  File "/config/custom_components/solaredge_modbus_multi/__init__.py", line 121, in _async_update_data
    return await self._hub.async_refresh_modbus_data()
  File "/config/custom_components/solaredge_modbus_multi/hub.py", line 283, in async_refresh_modbus_data
    await self._async_init_solaredge()
  File "/config/custom_components/solaredge_modbus_multi/hub.py", line 118, in _async_init_solaredge
    await self._hass.async_add_executor_job(new_inverter.init_device)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/solaredge_modbus_multi/hub.py", line 486, in init_device
    self.decoded_mmppt["mmppt_DID"] == SUNSPEC_NOT_IMPL_UINT16
TypeError: 'NoneType' object is not subscriptable
2022-09-05 20:22:56.938 WARNING (MainThread) [homeassistant.config_entries] Config entry 'SolarEdge' for solaredge_modbus_multi integration not ready yet: 'NoneType' object is not subscriptable; Retrying in background
2022-09-05 20:23:01.942 ERROR (SyncWorker_6) [pymodbus.client.sync] Connection to (192.168.178.16, 1502) failed: [Errno 111] Connection refused

Expected behavior
Normal initialization of SolarEdge device

Debug Logs

2022-09-05 20:55:02.112 DEBUG (SyncWorker_2) [pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.178.21', 53269)
2022-09-05 20:55:02.117 DEBUG (SyncWorker_1) [pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.178.21', 40793)
2022-09-05 20:55:02.128 DEBUG (SyncWorker_0) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-09-05 20:55:02.128 DEBUG (SyncWorker_12) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-09-05 20:55:02.146 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_ID 0x53756e53
2022-09-05 20:55:02.146 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_DID 0x1
2022-09-05 20:55:02.146 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_Length 0x41
2022-09-05 20:55:02.146 DEBUG (SyncWorker_12) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_Manufacturer SolarEdge
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_Model SE5000H-RW000BNN4
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_Option
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_Version 0004.0012.0028
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SerialNumber 74020113
2022-09-05 20:55:02.175 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_Device_address 0x1
2022-09-05 20:55:02.176 DEBUG (SyncWorker_12) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-09-05 20:55:02.321 DEBUG (SyncWorker_12) [custom_components.solaredge_modbus_multi.hub] Inverter 1 MMPPT: ReadHoldingRegistersResponse (65)
2022-09-05 20:55:02.349 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_ID 0x53756e53
2022-09-05 20:55:02.349 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_DID 0x1
2022-09-05 20:55:02.349 DEBUG (SyncWorker_0) [custom_components.solaredge_modbus_multi.hub] Inverter 1: C_SunSpec_Length 0x41
2022-09-05 20:55:02.349 DEBUG (SyncWorker_0) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-09-05 20:55:02.360 ERROR (MainThread) [custom_components.solaredge_modbus_multi] Unexpected error fetching SolarEdge Coordinator data: 'NoneType' object is not subscriptable
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
self.data = await self._async_update_data()
File "/config/custom_components/solaredge_modbus_multi/__init__.py", line 121, in _async_update_data
return await self._hub.async_refresh_modbus_data()
File "/config/custom_components/solaredge_modbus_multi/hub.py", line 283, in async_refresh_modbus_data
await self._async_init_solaredge()
File "/config/custom_components/solaredge_modbus_multi/hub.py", line 118, in _async_init_solaredge
await self._hass.async_add_executor_job(new_inverter.init_device)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/solaredge_modbus_multi/hub.py", line 486, in init_device
self.decoded_mmppt["mmppt_DID"] == SUNSPEC_NOT_IMPL_UINT16
TypeError: 'NoneType' object is not subscriptable
2022-09-05 20:55:02.362 DEBUG (MainThread) [custom_components.solaredge_modbus_multi] Finished fetching SolarEdge Coordinator data in 0.254 seconds (success: False)
2022-09-05 20:55:02.362 WARNING (MainThread) [homeassistant.config_entries] Config entry 'SolarEdge' for solaredge_modbus_multi integration not ready yet: 'NoneType' object is not subscriptable; Retrying in background

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.8.7
  • solaredge-modbus-multi Version: 2.2.0

Rename this integration?

Consider renaming this integration to something less SolarEdge specific if it's going to support more than just SolarEdge inverters.

I don't really like the current name anyway but couldn't think of anything better.

Final Call for Pre-Release 2.0.0 Testing

I've been running the 2.0.0 pre-releases on my real Home Assistant system with the fixes in pre.1 through pre.6 to address issues I noticed. WIth 2.0.0-pre.6 I believe it's ready for a general 2.0.0 release, which will happen next week on Monday, June 20th, unless something comes up that needs more time to test.

Only basic battery device detection will be included with 2.0.0 since there hasn't been any confirmation for this release that auto-detection works for batteries. If you can test batteries please participate in #22

Meter and Battery Auto-Detection

  • Make a separate config flow for meters now auto-detects
  • Inverter device id configurable for meters not necessary since auto-detect checks all inverters for meters

Status codes wrong in v2.1.2?

Describe the bug
I've noticed that after updating to v2.1.2 some status codes are changed - normally at night my inverter went to "sleep" mode with status code "2" ["Sleeping (auto-shutdown) – Night mode"]. now night status is "5" ["Production (curtailed)"].

when operating at day it is ok - status "4" ["Inverter is ON and producing power"]

Expected behavior
I suppose that night mode should by status "4" as "sleeping", because inverter is indeed off, or am I missing something?

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.8.6
  • solaredge-modbus-multi Version: 2.1.2
  • inverter: SolarEdge SE7K

Error: filedescriptor out of range in select()

Before reporting a bug, make sure your configuration is correct and your LAN is working.
https://github.com/WillCodeForCats/solaredge-modbus-multi/wiki/Configuration

Describe the bug
A clear and concise description of what the bug is.
I'm using your integration for about a half year now.
But now the integration stops working after a while.
When I restart HA it works again for some time

Expected behavior
A clear and concise description of what you expected to happen.
I expect it keeps working

Screenshots
If applicable, add screenshots of the problem and/or configuration.
Schermafbeelding 2022-04-22 om 10 54 29

Logs
Copy any log messages/errors from Home Assistant from "custom_components.solaredge_modbus" and "pymodbus.client.sync".

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.solaredge_modbus
Source: custom_components/solaredge_modbus/__init__.py:491
Integration: SolarEdge Modbus Multi-Inverter (documentation, issues)
First occurred: 10:49:17 (7 occurrences)
Last logged: 10:55:17

Error reading inverter at id 1: filedescriptor out of range in select()

Home Assistant (please complete the following information):

  • Version: 2022.4.6

Additional context
Add any other context about the problem here.

Feature list

Hi,
Could you please add a feature list?
I’m on the binsentsu version now and not sure if I should change to this one.

Thank you for the great work

Does anyone have RRCR on their inverter?

I'm looking for someone who has an RRCR connected to their inverter to check a new sensor for RRCR status.

An RRCR is an external device that the power company can use to send grid control commands to the inverter, such as to reduce output or turn off.

Support for inverters with no consecutive IDs

I my system I've two inverters, the first one has ID 1, the other one ID 3.
I'm currently testing this component with an hard coded


        for inverter_index in [1,3]:
            inverter_unit_id = inverter_index # + self.start_device_id

in line 89 hub.py
I'm happy to contribute on this project and add support for this scenario. What about a list for IDs? Or multiple ID entries?

Secondary Inverter not visible

First of all, thanks for creating this alternative implementation :)
We have an exsiting Solaredge Setup consiting of one SE17K-RW000BNN4 as as Slave and another SE10K-RWS48BNN4 with LG Resu 13 Battery and a Grid Meter.
All showing up on the monitoring website just fine.
Also Modbus TCP over Ethenret is working stable and reliable.
Previously using another binsentsu/home-assistant-solaredge-modbus integration with a refreshrate of 1s
But: Yours and theirs both show only the Data from the Secondary Inverter with meter and Battery.
The First/Bigger one is completly invisible :O

I checked both inverters and the first one is configured as Solaredge Secondary Device on modbus and Visible and acessible for the second one.

Reported production data is also only showing the second inverter.
Adding the Plugin using Parameter "Amount of Inverters: 2" Leads to the Integration failing with "Inverter with ID:2 not found" -
but i noticed the Meter beeing configured on ID:2 for the Secondary Modbus Connection of the Second Inverter.

Expected behavior
I was expection to see both Inverters to be detected or at least see their data combined into one "virtual" inverter

Logs
Their are no error messages as the Integrations failed to start using parameter "Amount of Inverters: 2" and working fine with one

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.10.3
  • solaredge-modbus-multi Version: v.2.2.4

I will try to set the first Inverter to ID 2 or route another modbus cable to it, but i am not expection much improvement

upgrade from 2.1.1 to 2.2+: duplicate m2 serial

Discussed in #96

Originally posted by Robby-Swartenbroekx September 18, 2022
I followed the procedure and first removed the integration from the settings page.
Then I did the upgrade.
Rebooted
Then I reinstalled the integration in the settings page, but I get the error: "Duplicate m2 serial 606857732"
even after rebooting again, I keep having this issue.

Glad I did make a esxi snapshot, reverting to that solved the issue.
I tried upgrading from 2.1.1 to 2.1.3 after that, but same issue.

Also removed the integration from HACS, reboot, and readd everything.

I'm guessing the "Duplicate m2 serial ..." message is actually an error that is returning over modbus, so something that the inverter is saying. Anybody know how I continue now? it works for me on 2.1.1, but I would like to keep following all updates, so if there is a solution, I would like to try it out.

ModbusTcpClient(redacted:1502): Connection unexpectedly closed

Basically there two, connected, error messages (copies from Log)

2022-08-20 23:08:40.007 ERROR (MainThread) [custom_components.solaredge_modbus_multi] Error fetching SolarEdge Coordinator data: Failed to update devices: Modbus Error: [Connection] ModbusTcpClient(.......:1502): Connection unexpectedly closed 0.000131 seconds into read of 8 bytes without response from unit before it closed connection

2022-08-21 05:54:43.009 ERROR (MainThread) [custom_components.solaredge_modbus_multi] Error fetching SolarEdge Coordinator data: Failed to update devices: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 8 bytes (0 received)
2022-08-21 05:55:46.007 ERROR (SyncWorker_5) [pymodbus.client.sync] Connection to (......., 1502) failed: timed out
2022-08-21 05:56:49.006 ERROR (SyncWorker_0) [pymodbus.client.sync] Connection to (......., 1502) failed: timed out
....... continuing...

Solaredge thru modbus is unreachable. No data is coming into HA. Solaredge entities are: not available.
Getting control back by either by resetting or reinstall of the integration Solaredge.
Reconfigured the WiFI connection with my LAN brought no solution.
Every time within a few hours after a restart, both errors appear.

Solaredge Support updated my Solaredge and stated that the transformer is operating ok.

Home Assistant (please complete the following information):

  • Home Assistant Core Version: 2022.8.6 and .5
  • solaredge-modbus-multi Version: 2.1.2 also 2.1.1. The integration is standard configured.

Please, do you have a solution?

Connection time out

I'm getting a lot of connection time out using a polling interval below 10 secs. I was getting the same problems with other component for modbus-solaredge.
I think that this is related to the new HA version 7.2, and I was hoping that this component wasn't affected using a much more recent pymodbus library.

Screenshot 2022-07-12 at 14 12 30

Do you have the same problems?

Support for two inverters with different IP-adress

I tried to find my question/solution in your documentation, the issues and the comments, but I found nothing.
How can I use your component for two (or more) inverters in my local network, which are not connected by rs485?
Thank you in advance.

Feature request - Add Inverter Model MODBUS Register Mappings

Hi
There are whole lot of inverter registers that are not polled by this I believe.
They are those set out at p.16 and following of the Sunspec document. https://www.solaredge.com/sites/default/files/sunspec-implementation-technical-note.pdf

They are picked up in Tapematch/home-assistant-solaredge-modbus fork as below.
Although that has an error in the defintion of 'I_AC_Energy_WH' as it incorrectly refers to 'I1_AC_Energy_KWH'

INVERTER1_SENSOR_TYPES = {
"I1_AC_Current": ["I1 AC Current", "i1_accurrent", "A", "mdi:current-ac"],
"I1_AC_CurrentA": ["I1 AC Current A", "i1_accurrenta", "A", "mdi:current-ac"],
"I1_AC_CurrentB": ["I1 AC Current B", "i1_accurrentb", "A", "mdi:current-ac"],
"I1_AC_CurrentC": ["I1 AC Current C", "i1_accurrentc", "A", "mdi:current-ac"],
"I1_AC_VoltageAB": ["I1 AC Voltage AB", "i1_acvoltageab", "V", None],
"I1_AC_VoltageBC": ["I1 AC Voltage BC", "i1_acvoltagebc", "V", None],
"I1_AC_VoltageCA": ["I1 AC Voltage CA", "i1_acvoltageca", "V", None],
"I1_AC_VoltageAN": ["I1 AC Voltage AN", "i1_acvoltagean", "V", None],
"I1_AC_VoltageBN": ["I1 AC Voltage BN", "i1_acvoltagebn", "V", None],
"I1_AC_VoltageCN": ["I1 AC Voltage CN", "i1_acvoltagecn", "V", None],
"I1_AC_Power": ["I1 AC Power", "i1_acpower", "W", "mdi:solar-power"],
"I1_AC_Frequency": ["I1 AC Frequency", "i1_acfreq", "Hz", None],
"I1_AC_VA": ["I1 AC VA", "i1_acva", "VA", None],
"I1_AC_VAR": ["I1 AC VAR", "i1_acvar", "VAR", None],
"I1_AC_PF": ["I1 AC PF", "i1_acpf", "%", None],
"I1_AC_Energy_KWH": ["I1 AC Energy KWH", "i1_acenergy", "kWh", "mdi:solar-power"],
"I1_DC_Current": ["I1 DC Current", "i1_dccurrent", "A", "mdi:current-dc"],
"I1_DC_Voltage": ["I1 DC Voltage", "i1_dcvoltage", "V", None],
"I1_DC_Power": ["I1 DC Power", "i1_dcpower", "W", "mdi:solar-power"],
"I1_Temp_Sink": ["I1 Temp Sink", "i1_tempsink", "°C", None],
"I1_Status": ["I1 Status", "i1_status", None, None],
"I1_Status_Vendor": ["I1 Status Vendor", "i1_statusvendor", None, None],
}

INVERTER2_SENSOR_TYPES = {
"I2_AC_Current": ["I2 AC Current", "i2_accurrent", "A", "mdi:current-ac"],
"I2_AC_CurrentA": ["I2 AC Current A", "i2_accurrenta", "A", "mdi:current-ac"],
"I2_AC_CurrentB": ["I2 AC Current B", "i2_accurrentb", "A", "mdi:current-ac"],
"I2_AC_CurrentC": ["I2 AC Current C", "i2_accurrentc", "A", "mdi:current-ac"],
"I2_AC_VoltageAB": ["I2 AC Voltage AB", "i2_acvoltageab", "V", None],
"I2_AC_VoltageBC": ["I2 AC Voltage BC", "i2_acvoltagebc", "V", None],
"I2_AC_VoltageCA": ["I2 AC Voltage CA", "i2_acvoltageca", "V", None],
"I2_AC_VoltageAN": ["I2 AC Voltage AN", "i2_acvoltagean", "V", None],
"I2_AC_VoltageBN": ["I2 AC Voltage BN", "i2_acvoltagebn", "V", None],
"I2_AC_VoltageCN": ["I2 AC Voltage CN", "i2_acvoltagecn", "V", None],
"I2_AC_Power": ["I2 AC Power", "i2_acpower", "W", "mdi:solar-power"],
"I2_AC_Frequency": ["I2 AC Frequency", "i2_acfreq", "Hz", None],
"I2_AC_VA": ["I2 AC VA", "i2_acva", "VA", None],
"I2_AC_VAR": ["I2 AC VAR", "i2_acvar", "VAR", None],
"I2_AC_PF": ["I2 AC PF", "i2_acpf", "%", None],
"I2_AC_Energy_KWH": ["I2 AC Energy KWH", "i2_acenergy", "kWh", "mdi:solar-power"],
"I2_DC_Current": ["I2 DC Current", "i2_dccurrent", "A", "mdi:current-dc"],
"I2_DC_Voltage": ["I2 DC Voltage", "i2_dcvoltage", "V", None],
"I2_DC_Power": ["I2 DC Power", "i2_dcpower", "W", "mdi:solar-power"],
"I2_Temp_Sink": ["I2 Temp Sink", "i2_tempsink", "°C", None],
"I2_Status": ["I2 Status", "i2_status", None, None],
"I2_Status_Vendor": ["I2 Status Vendor", "i2_statusvendor", None, None],
}

INVERTER3_SENSOR_TYPES = {
"I3_AC_Current": ["I3 AC Current", "i3_accurrent", "A", "mdi:current-ac"],
"I3_AC_CurrentA": ["I3 AC Current A", "i3_accurrenta", "A", "mdi:current-ac"],
"I3_AC_CurrentB": ["I3 AC Current B", "i3_accurrentb", "A", "mdi:current-ac"],
"I3_AC_CurrentC": ["I3 AC Current C", "i3_accurrentc", "A", "mdi:current-ac"],
"I3_AC_VoltageAB": ["I3 AC Voltage AB", "i3_acvoltageab", "V", None],
"I3_AC_VoltageBC": ["I3 AC Voltage BC", "i3_acvoltagebc", "V", None],
"I3_AC_VoltageCA": ["I3 AC Voltage CA", "i3_acvoltageca", "V", None],
"I3_AC_VoltageAN": ["I3 AC Voltage AN", "i3_acvoltagean", "V", None],
"I3_AC_VoltageBN": ["I3 AC Voltage BN", "i3_acvoltagebn", "V", None],
"I3_AC_VoltageCN": ["I3 AC Voltage CN", "i3_acvoltagecn", "V", None],
"I3_AC_Power": ["I3 AC Power", "i3_acpower", "W", "mdi:solar-power"],
"I3_AC_Frequency": ["I3 AC Frequency", "i3_acfreq", "Hz", None],
"I3_AC_VA": ["I3 AC VA", "i3_acva", "VA", None],
"I3_AC_VAR": ["I3 AC VAR", "i3_acvar", "VAR", None],
"I3_AC_PF": ["I3 AC PF", "i3_acpf", "%", None],
"I3_AC_Energy_KWH": ["I3 AC Energy KWH", "i3_acenergy", "kWh", "mdi:solar-power"],
"I3_DC_Current": ["I3 DC Current", "i3_dccurrent", "A", "mdi:current-dc"],
"I3_DC_Voltage": ["I3 DC Voltage", "i3_dcvoltage", "V", None],
"I3_DC_Power": ["I3 DC Power", "i3_dcpower", "W", "mdi:solar-power"],
"I3_Temp_Sink": ["I3 Temp Sink", "i3_tempsink", "°C", None],
"I3_Status": ["I3 Status", "i3_status", None, None],
"I3_Status_Vendor": ["I3 Status Vendor", "i3_statusvendor", None, None],
}

It would be great if you could incorporate these in your fork.

Find another Energymeter

Hi,

first the SE-RGMTR-1D-240C-A was found and i got the sensor values. A day later no values were available and another sensor pop up
SE-MTR-3Y-400V-A (and this one is really installed)

grafik

Integration Missing from Devices & Services

I installed the repo via HACS and then rebooted HA. after it came back online I went to Devices & Services to add the integration. The only integrations for SolarEdge available where the normal SolarEdge and SolarEdge Modbus. The SolarEdge Modbus Multi wasn't listed. This is the a clean install of SolarEdge Modbus Multi, and it also didn't auto-populate to the integrations page either as some do. I am running Hassio on a RPI4B with version 2022.6.6 and HACS version 1.25.5. Let me know if you need anything to further investigate the issue.

image

image

Change to data update coordinator

Home Assistant provides a DataUpdateCoordinator class to help manage fetching data. Change the architecture of the integration to use this class.

After install, I cannot find it in integration

Before reporting a bug, make sure your configuration is correct and your LAN is working.
https://github.com/WillCodeForCats/solaredge-modbus-multi/wiki/Configuration

Describe the bug
After installing it through HACS and reboot, I cannot find the integration. The onlye integration I find is the one Solaredge API.

Expected behavior
Find the SolarEdge (local)

Screenshots
*

Logs
*

Home Assistant (please complete the following information):

  • Version: 2022.5.0 (Fresh install without any modules installed)

Enhancement request: Reconfigure integration via UI

Describe the bug enhancement request
I set up the integration and like it. However I wanted to now lower the scan interval, and could not do so via the UI, though the setup worked fine via the UI.

Expected behavior
The UI config should allow me to make changes to the existing integration config.

Screenshots
n/a

Logs
n/a

Home Assistant (please complete the following information):

  • Version: 2022.4.7

Additional context
I could change the scan_interval by editing my .storage/core.config_entries, but this is not as comfortable as using a config UI.

Update to pymodbus v3.0.0

Describe the current behavior
Currently pinned to pymodbus==2.5.3

What should be updated or changed?
Update to pinning to pymodbus==3.0.0

Additional context
pymodbus 3.0.0 contains significant changes. The following issues are possibly related to modbus communications:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.