Custom Component: SolarEdge Modbus TCP

@timolol i cant imagine changing those settings caused it but I can not make any guarantees for doing this on your own. Maybe the inverter got damaged in the power cut ?

Yes, I already have the original SE meter WND-3Y400, which is giving correctly the consumption values through the solaredge component . I do not see those numbers in your component, though. Can you please tell me the exact name of the value, please?

I donā€™t think it was the settings, something else caused your homeā€™s grid to turn off in my opinion.

@kostasyrtariotis i see you opened an issue at github specifying the exact adress. Ill have a look!

Been quite busy past weeks so not been able to keep up with the discussion here sorry.

Iā€™ll respond to your issue in github

1 Like

What SolarEdge firmware are you guys running? I was able to enable Modbus TCP from the setapp address over wifi but still nothing.

nmap still shows the port as closed.

Iā€™m wondering if you all are on a newer firmware.

First of all, I want to say thank you for this component.

Iā€™m trying to simulate my electric bill on home assistant using the utility_meter.
For the utility_meter source Iā€™ve created a sensor that gets the Imported energy:

- platform: template
  sensors:
    home_imported_energy:
      friendly_name: 'EnergĆ­a importada'
      unit_of_measurement: 'W'
      value_template: "
        {% if (state_attr('sensor.solaredge_modbus_meter_1', 'ac_power_output') | int) < 0 -%}
            {{ state_attr('sensor.solaredge_modbus_meter_1', 'ac_power_output') | int | abs}}
        {%- else -%}
            0
        {%- endif %}"

The problem is that Iā€™m getting weird data, probably because the utility_meter is expecting to get data in Wh and not in W.

Which is the param that I have to use for the utility_meter? or how can I create a sensor for that?

Ok, I think that I found the correct param:

    home_total_imported_energy:
      friendly_name: 'EnergĆ­a Total importada'
      value_template: "{{ (state_attr('sensor.solaredge_modbus_meter_1', 'imported') / 1000.0) | round(2) }}"
      unit_of_measurement: 'kWh'

:+1:

Can anyone tell me (or at least direct me where to learn) how to get these sensors available in Alexa via HA Cloud? I would like to be able to ask Alexa what my production numbers are. Thanks.

What can I do about this error?

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/loader.py", line 391, in _load_file
    module = importlib.import_module(path)
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/config/custom_components/solaredge_modbus/__init__.py", line 5, in <module>
    from pyModbusTCP.client import ModbusClient
ModuleNotFoundError: No module named 'pyModbusTCP'

Sidenode: I can reach the modbus manually at my configured :, so this should not be a connection issue. Do I have to make additional installations?

It seems I have to install pyModbusTCP. But where to get this file from, and where to place it?

Go it: I added the modbus into configuration.yaml before restarting HA. That caused the issue.

1 Like

How can I create a senor that shows the currently unused energy (W)? If I understand correctly, ac power output is what is currently produced. But Iā€™d like to get the value how many energy is left subtracting the in-use energy. Is that possible at all?

And one more question: can I deactivate sensors like ac current phase a?

Silly question but I assume this should work over Wi-Fi and itā€™s not a requirement to have a LAN cable plugged into my inverter as well? Iā€™ve enabled Modbus TCP on the inverter (SE3680H) and have used the App ā€˜Poll Modbusā€™ mentioned in this thread to test with. It connects for a few moments with a green flashing icon but then disconnects and repeats the same process. Poll Modbus also displays ā€˜Transaction Failedā€™.

Iā€™ve also added the required config to my configuration.yaml file and placed the files in custom_componentsā€¦ I get nothing in the logs to report any issues and I have a sensor.solaredge_modbus in developer tools but itā€™s showing as unavailable.

Anyone with any thoughts?

Should work over wifi as well since this is modbus TCP it only requires a network, but cable is usually more stable.

1 Like

@membersound To show the unused energy you must have a smart meter that measure how much you export and calculate the difference.

To disable ac current phase a you must remove, or comment out some code in the plugin here: https://github.com/erikarenhill/solaredge-modbus-hass/blob/49d1cd4864abc1c9306f5a63e0c2ddf04fd4f4a9/custom_components/solaredge_modbus/sensor.py#L96

Just put an # in front of every line with values['.......'] that you want to disable, but you may never touch any lines containing data.decode_16bit_uint() or similiar, as this will put the readings off for the next sensor.

@pirateNati0n hade you tried to include it through the include_entities configuration?

@arc2v please refer to this post: Custom Component: SolarEdge Modbus TCP

If you can enable it in setapp, it should work!

Can this be used in conjunction with the mobile App provided by SolarEdge or is it one or the other?

Update for my own question and to help anyone else:
Yes, you can us both simultaneouslyā€¦ I couldnā€™t get mine to work over Wi-Fi (TCP) but as soons as I plugged a network cable into the invertor it kicked in and I was gethering data via Modbus TCP. Iā€™m also still getting data via the mobile app mySolarEdge.

2 Likes

Hello againā€¦ Iā€™ve set read_meter1: true but Iā€™m not sure if itā€™s doing anything as I donā€™t appear to be able to find any values in Home Assistant that represent what I would assume itā€™s gathering. I have a sensor.solaredge_power_consumption but that value appears to be wrong and itā€™s not updated very often. I also have a sensor.solaredge_meters which contains the following so think I should have the required hardware.

meters: 
- name: Consumption Meter
  firmwareVersion: ''
  type: Consumption
  form: virtual
- name: Export Meter
  manufacturer: WattNode
  model: 'WNC-3Y-400-MB '
  firmwareVersion: '24'
  type: FeedIn
  form: physical
  SN: '3038392'
- name: Import Meter
  manufacturer: WattNode
  model: 'WNC-3Y-400-MB '
  firmwareVersion: '24'
  type: Purchased
  form: physical
  SN: '3038392'
- name: Self Consumption
  firmwareVersion: ''
  connectedTo: Inverter 1
  connectedSolaredgeDeviceSN: 718654C492-RE
  type: SelfConsumption
  form: virtual

friendly_name: solaredge (Meters)

Many thanks for the excellent work :slight_smile:

Update:

I do have a sensor.solaredge_modbus_meter_1 with the following:

ac_current: 0
ac_current_phase_a: 0
ac_current_phase_b: 0
ac_current_phase_c: 0
ac_voltage_phase_ll: 0
ac_voltage_phase_ab: 0
ac_voltage_phase_bc: 0
ac_voltage_phase_ca: 0
ac_voltage_phase_ln: 0
ac_voltage_phase_an: 0
ac_voltage_phase_bn: 0
ac_voltage_phase_cn: 0
ac_frequency: 0
ac_power_output: 0
ac_va: 0
ac_var: 0
ac_pf: 0
exported: 0
imported: 0
exported_va: 0
imported_va: 0
imported_var_q1: 0
imported_var_q2: 0
exported_var_q3: 0
exported_var_q4: 0
events: 131072
unit_of_measurement: W
friendly_name: SolarEdge Modbus Meter #1
icon: mdi:power-plug

Does that mean I could have it sending imported\exported data but itā€™s not configured correctly within my invertor (is it sending to SolarEdge for the App as I have those values displaying in the App)?.. what does events: 131072 mean?

Today I finally have my inverter replaced with the newer version without the LCD display. Went to SetApp to enable Modbus over TCP, then everything polled automatically. Thank you @erikarenhill. Still not sure what has caused my inverter to blow up. :stuck_out_tongue:

2 Likes

Hi @jaminben,
Does sensor.solaredge_modbus exist under your states? If it does not, that means it may not have been set up correctly, hence those sensor values.