fmeili1
Solar Enthusiast
I’d like to share my findings with you so you may not run into the same problems.
After trying for quite a while, I finally have reliable communication between SolarAssistant (SA) and all inverters and batteries.
My setup:
I had very unreliable and unstable SA connections at the beginning. Also the values are not updated reliable (Sa showing old values over long period of time). It looks like the Pi has not enough power on the USB connector to power 7 external USB adapters with a passive USB hub. So an external powered USB hub is a must! Also I found that one type of USB-to-RS232 adapter cable type is not working reliable even with an external powered USB hub. I’ve changed to a different adapter and this works perfect, now.
For what reason ever, this USB-to-RS232 adapter cable is working (https://www.amazon.com/dp/B000A1KD1K)!
For what reason ever, this USB-to-RS232 adapter cable is NOT working (https://www.ebay.com/itm/255666926991)!
The working USB-to-RS232 cable uses a pl2303 chipset and the cable which fails uses a ch341 chipset. But that's not the explanation because the USB-to-RS485 cable for battery communications uses also a ch341 chipset (with the same driver in the SA Pi) and this adapter is working without issues. So it seems it has to do with the additional electronic in the failed USB-to-RS232 adapter... but I'm not sure. The kernel log does not really helps here.
The working adapter shows (e.g.) the following information in the kernel log of the SA Pi (for each adapter):
The passive RS485 hub's I'm using are from growatt (e.g. SignatureSolar offer these, https://signaturesolar.com/growatt-rs485-can-hub-with-8-ports/).
I'm using this external powered USB hub with 10+1 ports (https://www.amazon.com/dp/B0BH252R3J)
Open issues:
In the following picture the "missing serial number problem" is shown - in this example only the first 2 inverters SN are displayed:
As an example, the following grafana screenshot shows the temperatures of each inverter (I've activated the "show dot" just to be sure that I receive reliable and updating data) represents the temperature values of all 6 inverters in idle (no load, no PV, no AC-in) together with the ambient temperature (I receive this data via SA MQTT bridge in my OpenHAB for further processing and visualization).
Off topic:
I need the reliable temperature curves because I'm still in the phase of modding the really loud fans in the EG4-6500EX inverters to make them much more silent via temperature controlled PWM fan control - but this is a different story and I will post the results when it's done. Without reliable inverter temperature I will not be able to proof the modding and do a comparison with un-modded inverters.
After trying for quite a while, I finally have reliable communication between SolarAssistant (SA) and all inverters and batteries.
My setup:
- 6x EG4-6500EX-48 inverters in split phase
- 3 inverters per phase
- all manufactured in 09/2022
- firmware (stationary) updated in all inverters to versions DSP=79.63 and MCU=61.12
- 9x EG4-LLv2 batteries (all bought in 11/2022)
- 2 racks, one with 5 and one with 4 batteries
- firmware updated in all batteries to version Z01T13
- common neutral (no SDS); bonding screws removed in all 6 inverters
- still in building phase (still no PV panels connected, no load so far and no AC-in connected but the AC-outs are already connected together for the three L1 and three L2; just using the pre-charged batteries to do some testing)
- Get ALL possible data from ALL inverters and ALL batteries in SA in a reliable way.
- It’s not possible to get ALL available data if SA is only connected to the master inverter (and master battery). Inverter values like temperature, BUS voltage and MPPT2 are only available if connected individually to SA (it’s documented in SA).
- To get ALL inverter data, each inverter has to be connected individually via a separate USB-to-RS232 cable to SA (so I need 6 USB-to-RS232 cables!).
- EG4 inverter to EG4 battery communication (RS485) can’t be used when you want to see ALL data in SA. Instead you have to set the inverter battery type setting (program 05) to “USE” in all inverters (even in the master inverter) and start with #2 dip switch address for the first battery and up (as documented in the SA manual for EG4)!
- Use “working” USB-to-RS232 cables (some types are NOT working), these adapter cables have to be bought separately and needs to be connected to the special EG4 serial DP9-to-RJ45 cables (included for each inverter) !
- To get ALL battery data, each battery has to be connected individually via RJ45. Because it’s RS485, all of the batteries could be wired separately to one passive RS485 hub(in my case I use two cascaded RS485 hub’s, one in each rack and they are connected together)
- One USB-to-RS485 adapter cable (Signature Solar include one adapter usually in your battery order) has to be connected from the passive RS485 hub to SA.
- Use an external powered USB hub to connect all individual USB adapters to SA (in my case 7; six for each inverter and one for the batteries)
I had very unreliable and unstable SA connections at the beginning. Also the values are not updated reliable (Sa showing old values over long period of time). It looks like the Pi has not enough power on the USB connector to power 7 external USB adapters with a passive USB hub. So an external powered USB hub is a must! Also I found that one type of USB-to-RS232 adapter cable type is not working reliable even with an external powered USB hub. I’ve changed to a different adapter and this works perfect, now.
For what reason ever, this USB-to-RS232 adapter cable is working (https://www.amazon.com/dp/B000A1KD1K)!
For what reason ever, this USB-to-RS232 adapter cable is NOT working (https://www.ebay.com/itm/255666926991)!
The working USB-to-RS232 cable uses a pl2303 chipset and the cable which fails uses a ch341 chipset. But that's not the explanation because the USB-to-RS485 cable for battery communications uses also a ch341 chipset (with the same driver in the SA Pi) and this adapter is working without issues. So it seems it has to do with the additional electronic in the failed USB-to-RS232 adapter... but I'm not sure. The kernel log does not really helps here.
The working adapter shows (e.g.) the following information in the kernel log of the SA Pi (for each adapter):
- new full-speed USB device number 16 using xhci_hcd
- New USB device found, idVendor=067b, idProduct=23a3, bcdDevice= 6.05
- New USB device strings: Mfr=1, Product=2, SerialNumber=3
- Product: USB-Serial Controller
- Manufacturer: Prolific Technology Inc.
- SerialNumber: xxxxxxxxxxx
- pl2303 converter detected
- pl2303 converter now attached to ttyUSBx
- new full-speed USB device number 20 using xhci_hcd
- New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
- New USB device strings: Mfr=0, Product=2, SerialNumber=0
- Product: USB2.0-Ser!
- ch341-uart converter detected
- ch341-uart ttyUSB1: break control not supported, using simulated break
- ch341-uart converter now attached to ttyUSB1
The passive RS485 hub's I'm using are from growatt (e.g. SignatureSolar offer these, https://signaturesolar.com/growatt-rs485-can-hub-with-8-ports/).
I'm using this external powered USB hub with 10+1 ports (https://www.amazon.com/dp/B0BH252R3J)
Open issues:
- The inverters serial number are not showing reliably (sometimes I see only 2 or only 4 and they will never displayed if not filled after first connect).
- In my situation this is really annoying because I have no chance to identify which of the inverters #1 to #6 does correspond to which physical unit (this is discussed in a different thread in detail)
In the following picture the "missing serial number problem" is shown - in this example only the first 2 inverters SN are displayed:
As an example, the following grafana screenshot shows the temperatures of each inverter (I've activated the "show dot" just to be sure that I receive reliable and updating data) represents the temperature values of all 6 inverters in idle (no load, no PV, no AC-in) together with the ambient temperature (I receive this data via SA MQTT bridge in my OpenHAB for further processing and visualization).
Off topic:
I need the reliable temperature curves because I'm still in the phase of modding the really loud fans in the EG4-6500EX inverters to make them much more silent via temperature controlled PWM fan control - but this is a different story and I will post the results when it's done. Without reliable inverter temperature I will not be able to proof the modding and do a comparison with un-modded inverters.
Last edited: