Renesola Micro Replus solar micro-inverter MRG monitoring! BACK FROM THE DEAD!

I bought a used inverter from eBay but it ended up being DOA so I opened the case and removed most of the potting.

Top

Bottom

how do you automatically run it on boot every time? I tired it and runs ok on ssh but not automatically. I tried to use the GUI date synchronization. It says it will reboot the gateway but the time is never really changed.

OlĂĄ amigo, passei por isso hoje com um bdg 256 nep e consegui lendo um manual dele, vocĂȘ precisa por id do inversor Ă© o da etiqueta colada no frontal e traseira do inversor somente os nĂșmeros apĂłs e antes dos traços
 Boa sorte!!

1 Like

Anybody know how to change the Time Zone? Data is displayed in UTC and data restarts at UTC times.

wanted to share my configuration file with the community. The integration has been working fine for a couple of months now. I added Error codes decodifications as the first inverter I got gave me a 2000 error (which I detected with the gatweway), and they ended replacing the whole inverter.

- platform: rest
  name: NEP MRG
  scan_interval: 60
  resource: http://192.168.0.63/data/0/min.dat
  headers:
    range: bytes=-83
  value_template: "{{ value.split('\n')[1] }}"
- platform: template
  sensors:
    nep_time:
      friendly_name: 'NEP Time'
      value_template: "{{states('sensor.nep_mrg').split(' ')[1]}}"
    nep_power:
      friendly_name: 'NEP Power'
      unit_of_measurement: 'W'
      device_class: power
      value_template: "{{states('sensor.nep_mrg').split(' ')[2]|float * 1000}}"
    nep_temperture:
      device_class: temperature
      unit_of_measurement: '°C'
      friendly_name: 'NEP Temperature'
      value_template: >-
        {% set x = states('sensor.nep_mrg').split(' ')[7]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    nep_energy:
      device_class: energy
      friendly_name: 'NEP Energy'
      unit_of_measurement: 'kWh'
      value_template: "{{states('sensor.nep_mrg').split(' ')[8]|float}}"

- platform: rest
  name: Panel 1 MRG
  scan_interval: 60
  resource: http://192.168.0.63/data/1/min.dat
  headers:
    range: bytes=-83
  value_template: "{{ value.split('\n')[1] }}"
- platform: template
  sensors:
    panel_1_power:
      friendly_name: 'Panel 1 Power'
      unit_of_measurement: 'W'
      device_class: power
      value_template: "{{states('sensor.panel_1_mrg').split(' ')[2]|float * 1000}}"
    panel_1_vdc:
      unit_of_measurement: 'V'
      friendly_name: 'Panel 1 Solar Panels DC Voltage'
      value_template: >-
        {% set x = states('sensor.panel_1_mrg').split(' ')[3]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_1_vac:
      friendly_name: 'Panel 1 AC Voltage'
      unit_of_measurement: 'V'
      value_template: >-
        {% set x = states('sensor.panel_1_mrg').split(' ')[4]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_1_ac_current:
      friendly_name: 'Panel 1 AC Current'
      unit_of_measurement: 'A'
      value_template: "{{states('sensor.panel_1_mrg').split(' ')[5]|float}}"
    panel_1_hz:
      friendly_name: 'Panel 1 AC Frequency'
      unit_of_measurement: 'Hz'
      value_template: >-
        {% set x = states('sensor.panel_1_mrg').split(' ')[6]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_1_energy:
      device_class: energy
      friendly_name: 'Panel 1 Energy'
      unit_of_measurement: 'kWh'
      value_template: "{{states('sensor.panel_1_mrg').split(' ')[8]|float}}"
      
    panel_1_rssi:
      friendly_name: 'Panel 1 RSSI'
      unit_of_measurement: 'index'
      value_template: "{{states('sensor.panel_1_mrg').split(' ')[9]|float}}"      

    panel_1_error:
      friendly_name: 'Panel 1 Error'
      value_template: "{{states('sensor.panel_1_mrg').split(' ')[10]}}"   

    panel_1_status:
      friendly_name: 'Panel 1 Status'
      value_template: >-
        {% set status = states('sensor.panel_1_mrg').split(' ')[11] %}
        {{ {
        "0": "OK [0]",
        "1": "DC over voltage [1]",
        "2": "DC under voltage [2]",
        "4": "Instant protection [4]",
        "8": "Inverter over voltage [8]",
        "10": "Frequency over [10]",
        "20": "Frequency under [20]",
        "40": "AC voltage RMS over [40]",
        "80": "AC voltage RMS under [80]",
        "100": "Peak AC voltage over [100]",
        "200": "AC current RMS over [200]",
        "400": "Peak AC current over [400]",
        "800": "Temperature over [800]",
        "1000": "ADC error [1000]",
        "2000": "GFDI fault indicator [2000]",
        "4000": "Relay error [4000]",
        "8000": "Low Light [8000]"
        }[status]|default(status) }}

- platform: rest
  name: Panel 2 MRG
  scan_interval: 60
  resource: http://192.168.0.63/data/2/min.dat
  headers:
    range: bytes=-83
  value_template: "{{ value.split('\n')[1] }}"
- platform: template
  sensors:
    panel_2_power:
      friendly_name: 'Panel 2 Power'
      unit_of_measurement: 'W'
      device_class: power
      value_template: "{{states('sensor.panel_2_mrg').split(' ')[2]|float * 1000}}"
    panel_2_vdc:
      unit_of_measurement: 'V'
      friendly_name: 'Panel 2 Solar Panels DC Voltage'
      value_template: >-
        {% set x = states('sensor.panel_2_mrg').split(' ')[3]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_2_vac:
      friendly_name: 'Panel 2 AC Voltage'
      unit_of_measurement: 'V'
      value_template: >-
        {% set x = states('sensor.panel_2_mrg').split(' ')[4]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_2_ac_current:
      friendly_name: 'Panel 2 AC Current'
      unit_of_measurement: 'A'
      value_template: "{{states('sensor.panel_2_mrg').split(' ')[5]|float}}"
    panel_2_hz:
      friendly_name: 'Panel 2 AC Frequency'
      unit_of_measurement: 'Hz'
      value_template: >-
        {% set x = states('sensor.panel_2_mrg').split(' ')[6]|float %}
        {% if x > 0 %} {{ x }} {% endif %}
    panel_2_energy:
      device_class: energy
      friendly_name: 'Panel 2 Energy'
      unit_of_measurement: 'kWh'
      value_template: "{{states('sensor.panel_2_mrg').split(' ')[8]|float}}"
      
    panel_2_rssi:
      friendly_name: 'Panel 2 RSSI'
      unit_of_measurement: 'index'
      value_template: "{{states('sensor.panel_2_mrg').split(' ')[9]|float}}"      

    panel_2_error:
      friendly_name: 'Panel 2 Error'
      value_template: "{{states('sensor.panel_2_mrg').split(' ')[10]}}"   

    panel_2_status:
      friendly_name: 'Panel 2 Status'
      value_template: >-
        {% set status = states('sensor.panel_2_mrg').split(' ')[11] %}
        {{ {
        "0": "OK [0]",
        "1": "DC over voltage [1]",
        "2": "DC under voltage [2]",
        "4": "Instant protection [4]",
        "8": "Inverter over voltage [8]",
        "10": "Frequency over [10]",
        "20": "Frequency under [20]",
        "40": "AC voltage RMS over [40]",
        "80": "AC voltage RMS under [80]",
        "100": "Peak AC voltage over [100]",
        "200": "AC current RMS over [200]",
        "400": "Peak AC current over [400]",
        "800": "Temperature over [800]",
        "1000": "ADC error [1000]",
        "2000": "GFDI fault indicator [2000]",
        "4000": "Relay error [4000]",
        "8000": "Low Light [8000]"
        }[status]|default(status) }}

2 Likes

WOW. What a great accomplishment. Tenacious.

Hi Ben: Are you able to showcase a few screenshots?

Were you able to find the firmware some place?

misetup password is the last five digits of the serial number. This was offered on your githubs’ Issues tab by oldwindmill → Setup password · Issue #1 · DrFrankReade/ReneSola_MRG · GitHub

I found somewhere the root password for the gateway is NEP
(or nep maybe)
Hope this adds to the community knowledge base

I have 36 used 250A inverters on Los Angeles Craigslist; $10 each. I wanted to message you but I just signed up and evidently don’t have that option.

HAHAHA. just saw this thread is 2 1/2 years old. Oh well.

I am still interested and I emailed you through your Craigslist post! Let me know what you think. Thanks!

Never heard back from my Craigslist inquiries. Are these still available?

Been following this thread for a while and just wondering if anyone would know what the error code 0x4000 means? I have 9 inverters with this code and generating nothing. More importantly, does anyone know how to get these inverters up and running again? I believe that the 3 inverters returning 0x8000 error codes is due to no comms.

8 inverters working out of 20 is just crap


Thanks everyone for the great contributions as well


Hello, i installed about 200 of these inverters, about 12 years ago, for about a dozen friends.
I went through alot of inverters initially, turns out power spikes would fault out random inverters. I installed whole house surge protectors, and this stopped the failure there.
Through trial and error, i have found, 9 out of 10 inverters that have comm failures, are still producing, just not commuunicating with the mrg. 0x4000 is a ground fault code.
I initially was in contact with the main engineer for Renesola fo the US market, back around 2017, he no longer works for them. He sent me his list of codes for MI faults.

1 Like

Thanks for that info Pete,

Do you know whether the ground fault is repairable, or should I just have them all ripped out and start again? I think there must have been something like a spike, for 9 of them to develop this fault. I realised something was wrong when my feed-in kWh dropped significantly from one bill to another. I have surge protection now
 unfortunately too late.

Best regards,
Louis.

This is the info I pull from the gateway. I only have 1 inverter with 2 panels. Will be adding 2 more panels this month.