diy solar

diy solar

Megarevo RxLNA Discussion

Interesting, I tried to copy them and all I got was disconnected and unknown or unavailable ?
 
I created one from scratch. I only have those 6 parameters in it right now. I'm building off the data that flygeek decoded. I am able to poll all the registers and get values back, but matching up the returned values with the right parameter name is the part that's tough for me.
 
Anyone with upgraded firmware having problems? PV is reporting only 10% of what it should be. Average of 300 watts in full sun where I normally pull 3000. Still have the battery issue, will not discharge while the grid is connected (self use mode should be using battery before grid).

LCD 1.03.12
CPU 1.04.10
 
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.
 
Code:
requests:

  - start: 0x2298
    end: 0x229B
    mb_functioncode: 0x03
  - start: 0x3130
    end: 0x3157
    mb_functioncode: 0x03
    
parameters:
 - group: Solar
   items:
    - name: "PV1 Power"
      class: "power"
      state_class: "measurement"     
      uom: "W"
      scale: 1
      rule: 1
      registers: [0x3132]
      icon: 'mdi:solar-power'
      
    - 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'
      
    - name: "Battery Voltage"
      class: "voltage"
      state_class: "measurement"
      uom: "V"
      scale: 0.01
      rule: 1
      registers: [0x2299]
      icon: 'mdi:battery'

    - name: "Battery Current"
      class: "current"
      state_class: "measurement"
      uom: "A"
      scale: 0.1
      rule: 2
      registers: [0x229A]
      icon: 'mdi:battery'     
      
    - name: "Daily Production"
      class: "energy"
      state_class: "measurement"
      uom: "kWh"
      scale: .001
      rule: 1
      registers: [0x3153]
      icon: 'mdi:solar-power'
      
    - name: "Daily Consumption"
      class: "energy"
      state_class: "total_increasing"     
      uom: "kWh"
      scale: .001
      rule: 1
      registers: [0x3157]
      icon: 'mdi:lightning-bolt-outline'
 
This is what I have so far. I have other parameters discovered, but I haven't entered them into my yaml yet. If there are others you need, post here and I'll see if I have them yet or can find them. These definitions are probably published somewhere, but I haven't had any luck finding them. I requested them from my reseller (GSL) but they refused to provide them.
 
Anyone with upgraded firmware having problems? PV is reporting only 10% of what it should be. Average of 300 watts in full sun where I normally pull 3000. Still have the battery issue, will not discharge while the grid is connected (self use mode should be using battery before grid).

LCD 1.03.12
CPU 1.04.10
I had that in the beginning when I hooked up my first string. It saw volts but was not producing any serious power.
Since it was a batch of used panels, I thought it was a bad panel in the string. hooked up other panels and away it went.
I tested all panels individual: no problems. hooked them up to other mppt input and it started producing power as expected.
did you try power cycle where it totally went dark, no switch off batter/grid & pv ?
 
@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.
 

diy solar

diy solar
Back
Top