diy solar

diy solar

Megarevo RxLNA Discussion

@fromport I believe you have multiple strings (I only have 1 hooked up right now), these are the values you need for the other strings

PV1 Voltage0x3130
PV1 Amperage0x3131
PV1 Wattage0x3132
PV2 Voltage0x3133
PV2 Amperage0x3134
PV2 Wattage0x3135
PV3 Voltage0x3136
PV3 Amperage0x3137
PV3 Wattage0x3138
PV4 Voltage0x3139
PV4 Amperage0x313A
PV4 Wattage0x313B

So just copy the 'blocks' of code that i posted above for the PV1 input, and change the register value and title to those in this post.
 
Not sure what you mean?

So what fixed it in the end for you was switching mppt inputs?
I think it was in a weird state. In my case I shut everything down and hooked up different panels.
I think you should power down your inverter totally, nothing on the display and then power it back up again.
That might resolve the issue. There is no need to change to a different MPPT.
For some weird reason the inverter just doesn't do it's job very well. and you need to reset that behavior somehow.
 
- name: "PV1 Voltage"
class: "voltage"
state_class: "measurement"
uom: "V"
scale: 0.1
rule: 1
registers: [0x3130]
icon: 'mdi:solar-power'

- name: "PV1 Current"
class: "current"
uom: "A"
scale: 0.1
rule: 1
registers: [0x3131]
icon: 'mdi:solar-power'

I couldn't get it to work, i was going MAD
I had altered your config to start with PV2 and added 3 to each register, copied that section for PV3, added another 3 to the registers and finally the same for PV4. And it did not work!
So i went over your config with a magnifying glass and suddenly I spotted it:
Your current paragraph doesn't show the state_class: "measurement" line!
After I added that on my 3 sections and rebooted the HASS I saw the readings ;-)

From the Solarman interface:
Screenshot from 2022-08-06 11-42-11.png
and now from the HA section:

Screenshot from 2022-08-06 11-42-29.png
Cost me some time but I got it working ! ;-)

Thanks!

I attached the config file for all 4 MPPT inputs in case someone wants it, they can just delete the mppt inputs they don't use
 

Attachments

  • custom_parameters.yaml.txt
    3.3 KB · Views: 13
Is PV Power set to 100? (Idk what that value does)

I'm on firmware
  • LCD Version:V1.03.11
  • CPU1 Software Version:V2.04.11
and everything is working fairly well. The only bug that I've found so far, is that the EPS does not turn off when battery reaches "Batt End Voltage". I'm not sure if its supposed to, but I can't determine what that value controls. Maybe its only used with grid power? I'm off-grid.
But even if you were on grid, the EPS mode would not be activated unless the grid went down. So would be the same as off grid. Then again the BMS would kick off when battery reached low voltage cut off. I have an issue of the inverter picking back up after I hit Battery Low DOD on the grid. Seems to be ok when the Insulation Detection morning test thing is disabled? My thoughts are there is an bug in that area of the settings.
 
1 from before the upgrade and 1 from after:
Note the spike to 1.5 amps today when i did the reset
I have another array on pv2
 

Attachments

  • Screen Shot 2022-08-06 at 11.07.57 PM.png
    Screen Shot 2022-08-06 at 11.07.57 PM.png
    172 KB · Views: 4
  • Screen Shot 2022-08-06 at 11.10.31 PM.png
    Screen Shot 2022-08-06 at 11.10.31 PM.png
    144.4 KB · Views: 4
@fromport I believe you have multiple strings (I only have 1 hooked up right now), these are the values you need for the other strings

PV1 Voltage0x3130
PV1 Amperage0x3131
PV1 Wattage0x3132
PV2 Voltage0x3133
PV2 Amperage0x3134
PV2 Wattage0x3135
PV3 Voltage0x3136
PV3 Amperage0x3137
PV3 Wattage0x3138
PV4 Voltage0x3139
PV4 Amperage0x313A
PV4 Wattage0x313B

So just copy the 'blocks' of code that i posted above for the PV1 input, and change the register value and title to those in this post.
I tried to get some results with pysolarmanv5
I have a dedicated linux Single Board Computer (similar to RPI) and it is running Debian linux with Python3

I followed the documentation and tried the 2 examples:

I edited the basic_client to include the right data:

modbus = PySolarmanV5( "192.168.42.192", 17917xxxxx, port=8899, mb_slave_id=1, verbose=False



/usr/src/pysolarmanv5/examples# python3 ./basic_client.py
Traceback (most recent call last):
File "/usr/src/pysolarmanv5/examples/./basic_client.py", line 44, in <module>
main()
File "/usr/src/pysolarmanv5/examples/./basic_client.py", line 17, in main
print(modbus.read_input_registers(register_addr=33022, quantity=6))
File "/usr/local/lib/python3.9/dist-packages/pysolarmanv5/pysolarmanv5.py", line 347, in read_input_registers
modbus_values = self._get_modbus_response(mb_request_frame)
File "/usr/local/lib/python3.9/dist-packages/pysolarmanv5/pysolarmanv5.py", line 262, in _get_modbus_response
modbus_values = rtu.parse_response_adu(mb_response_frame, mb_request_frame)
File "/usr/local/lib/python3.9/dist-packages/umodbus/client/serial/rtu.py", line 190, in parse_response_adu
function = create_function_from_response_pdu(resp_pdu, req_pdu)
File "/usr/local/lib/python3.9/dist-packages/umodbus/functions.py", line 132, in create_function_from_response_pdu
function_code = pdu_to_function_code_or_raise_error(resp_pdu)
File "/usr/local/lib/python3.9/dist-packages/umodbus/functions.py", line 118, in pdu_to_function_code_or_raise_error
raise error_code_to_exception_map[error_code]
umodbus.exceptions.IllegalDataAddressError: The data address received in the request is not an allowable address for
the server.


/usr/src/pysolarmanv5/examples# python3 ./register_scan.py
Scanning input registers
Traceback (most recent call last):
File "/usr/src/pysolarmanv5/examples/./register_scan.py", line 31, in <module>
main()
File "/usr/src/pysolarmanv5/examples/./register_scan.py", line 14, in main
val = modbus.read_input_registers(register_addr=x, quantity=1)[0]
File "/usr/local/lib/python3.9/dist-packages/pysolarmanv5/pysolarmanv5.py", line 347, in read_input_registers
modbus_values = self._get_modbus_response(mb_request_frame)
File "/usr/local/lib/python3.9/dist-packages/pysolarmanv5/pysolarmanv5.py", line 262, in _get_modbus_response
modbus_values = rtu.parse_response_adu(mb_response_frame, mb_request_frame)
File "/usr/local/lib/python3.9/dist-packages/umodbus/client/serial/rtu.py", line 190, in parse_response_adu
function = create_function_from_response_pdu(resp_pdu, req_pdu)
File "/usr/local/lib/python3.9/dist-packages/umodbus/functions.py", line 138, in create_function_from_response_pdu
return function.create_from_response_pdu(resp_pdu, req_pdu)
File "/usr/local/lib/python3.9/dist-packages/umodbus/functions.py", line 738, in create_from_response_pdu
read_holding_registers.data = list(struct.unpack(fmt, resp_pdu[2:]))
struct.error: unpack requires a buffer of 2 bytes

How did you get it to work? use old python?
 
strange, very strange. Since it all happened after a firmware upgrade, could you upgrade to the version I posted and see how it behaves tomorrow?
Just ran a bunch of tests enabling / disabling features like arc/leak/insulation detection. Every time I reset the solar input, it would climb to ~2KW and then drop to 200 W after a few seconds.

THEN I tried disabling the grid (just by shutting off the breaker pre-inverter) and BOOM she starts working properly.

So its working fine while off grid, but if grid power is available, she's dickered. Battery will not discharge and solar input is severely throttled.

Any suggestions to get it operating properly while on grid? Ideally I don't revert to older firmware but I can try that if necessary.
 
THEN I tried disabling the grid (just by shutting off the breaker pre-inverter) and BOOM she starts working properly.
very weird indeed
One of the settings maybe?
Any suggestions to get it operating properly while on grid? Ideally I don't revert to older firmware but I can try that if necessary.
My firmware version is higher than your version, probably because it is has the parallel option.
I downgraded to your version, saw the parallel option was no longer availalble and went back to my version.
I don't think you have anything to loose by switching back & forth
 
very weird indeed
One of the settings maybe?

My firmware version is higher than your version, probably because it is has the parallel option.
I downgraded to your version, saw the parallel option was no longer availalble and went back to my version.
I don't think you have anything to loose by switching back & forth
I do have a Parallel option, #15 in the main setup menu.
 
Just for the record I changed Grid Power to 0%, but the grid is still charging my batteries at max rate. Default charge settings (80% discharge, 20% return), Self Consumption mode
 

Attachments

  • batt.png
    batt.png
    39.8 KB · Views: 9
Running the same firmware if you have the parallel option. Charges, discharges, running 6kw solar right now between loads and 3500 charging battery.

Change that 20% return higher. Still does not address the PV falling off. How are you set up? Main panel and EPS panel or what? If your battery is not 80% SOC or higher it will not discharge. Lithium and BMS communication with Megarevo?
 
Running the same firmware if you have the parallel option. Charges, discharges, running 6kw solar right now between loads and 3500 charging battery.

Change that 20% return higher. Still does not address the PV falling off. How are you set up? Main panel and EPS panel or what?
225A main with a 40A breaker to inverter grid. 60A sub panel on Load 1. Everything seems to work as expected if there is no power coming from grid. When grid is enabled, PV throttles and battery is always charging. Grid and Off Grid DOD both 80. I'll try upping the return to 50 but you can see in the picture it's still charging even at 96% soc.
 
225A main with a 40A breaker to inverter grid. 60A sub panel on Load 1. Everything seems to work as expected if there is no power coming from grid. When grid is enabled, PV throttles and battery is always charging. Grid and Off Grid DOD both 80. I'll try upping the return to 50 but you can see in the picture it's still charging even at 96% soc.
Something is not right in the unit or settings. I am just winging it here to suggest anything with not ryme or reason. But set the DOD on EPS to 85 or Grid to 75% to give them some separation. I don't see how possible that make s difference, but? Does LCD say Self Consume. Maybe go in and choose self consume, hit enter, and return out?
 
Back
Top