March 7, 20242 yr On 2023/12/27 at 2:03 PM, Ivan_E said: Hi All, Well I have found the issue with my inverter and finally have it working with Home Assistant. If turns out there are 2 * 5.5kW Ecco inverters in the UK. One has the conbined BMS \ CAN port and my 5.5kW inverter has the CAN and RS485 port which are seperate (Ports.jpg) Now on the RS485 port you can not use pins 1 + 2 for RX / TX, you have to use ping 1 and 7. You can see why on this photo when I got a flashlight behind the connection board. (Track.jpg) Once I wired up Orange\White to B- and Brown\White to A+ (rj45.png) and altered the ModBus SN from 0 to 1 (Inverter will require a reboot to get rid of the error) I was able to pull data from it. Hi @Ivan_E I'm in the UK and I think my SunSynk 5.5kW inverter is the same one as yours. See pic below: I'm looking to set up a similar ESP32 set up like yours. I was wondering how you have it set up. How are you powering the ESP32 board? If you have a link of which ESP32 board you bought plus modules would be a great help. Many Thanks
March 12, 20242 yr I am looking for the lastest modbus table for the 8k Sunsynk Inverter. I found several but they are not correct, like the "no chinese" Word file that can be found anywhere. I can't access several of the values there and get read errors. Does anyone have a validated version? Thank you!
March 12, 20242 yr Author This is the latest document that I received from DEYE MODBUS RTU三相储能通信规约V104(高压).doc
March 12, 20242 yr Author 39 minutes ago, Sc00bs said: and the translated one MODBUS RTU Translated.docx 81.01 kB · 0 downloads This looks like it is the 3-phase document
March 12, 20242 yr Thank you, Sc00bs. Unfortunately these are for the three phase inverters and I am looking for the single phase 8 k inverter modbus table. Do you have these by chance?
March 12, 20242 yr 37 minutes ago, Joerg said: Thank you, Sc00bs. Unfortunately these are for the three phase inverters and I am looking for the single phase 8 k inverter modbus table. Do you have these by chance? The 3.6k, 5k and 8k single phase use the same registers. Deye, sunsynk, TurboE what are you trying to read that gives a timeout?
March 12, 20242 yr 1 hour ago, kellerza said: The 3.6k, 5k and 8k single phase use the same registers. Deye, sunsynk, TurboE what are you trying to read that gives a timeout? Aha, ok. I try to read register 065 for example which should give me "Month PV Power"...but I get 0 back. It is not always an error but many times registers that should work, don't.
March 12, 20242 yr Author 42 minutes ago, Joerg said: Aha, ok. I try to read register 065 for example which should give me "Month PV Power"...but I get 0 back. It is not always an error but many times registers that should work, don't. Hi @Joerg You could just use the Total Daily energy sensor in ESPHome and then just add them up using Home Assistant. https://esphome.io/components/sensor/total_daily_energy
March 12, 20242 yr 1 minute ago, Sc00bs said: Hi @Joerg You could just use the Total Daily energy sensor in ESPHome and then just add them up using Home Assistant. https://esphome.io/components/sensor/total_daily_energy Hi @Sc00bs I am not using Home Assistant but iobroker. Do you have an actual modbus table for the single phase 8k Sunsynk inverter?
March 12, 20242 yr Author 1 hour ago, Joerg said: Hi @Sc00bs I am not using Home Assistant but iobroker. Do you have an actual modbus table for the single phase 8k Sunsynk inverter? Only the old translated one that I uploaded some time ago
March 12, 20242 yr 3 hours ago, Joerg said: Do you have an actual modbus table for the single phase 8k Sunsynk inverter? I've been working on compiling a table of modbus registers from my 8kW Sunsynk but will be a few weeks longer as I'm not able to work on it continuously. Happy to share once I finish.
March 13, 20242 yr 5 hours ago, Rob99 said: I've been working on compiling a table of modbus registers from my 8kW Sunsynk but will be a few weeks longer as I'm not able to work on it continuously. Happy to share once I finish. That would be great. I can share the registers that are working for me so far, if you are interested...
March 13, 20242 yr Author This is the latest single phase modbus register document that I have Modbus储能-组串-微逆宁波德业V118.pdf Modbus_translated V118_compressed.pdf
March 13, 20242 yr 24 minutes ago, Joerg said: That would be great. I can share the registers that are working for me so far, if you are interested... 6 hours ago, Rob99 said: I've been working on compiling a table of modbus registers from my 8kW Sunsynk but will be a few weeks longer as I'm not able to work on it continuously. Happy to share once I finish. It’s not a table, but these generally work well for Sunsynk/Deye and others https://github.com/kellerza/sunsynk/blob/main/src/sunsynk/definitions.py
March 13, 20242 yr 28 minutes ago, kellerza said: It’s not a table, but these generally work well for Sunsynk/Deye and others https://github.com/kellerza/sunsynk/blob/main/src/sunsynk/definitions.py Thank you @kellerza, that helps! What I don't understand is that I get most but not all the data, for example I can't get the load data at all. Where can I check my firmware version, btw.? And what is the latest Version for the 8k single phase?
March 13, 20242 yr 7 minutes ago, Joerg said: Thank you @kellerza, that helps! What I don't understand is that I get most but not all the data, for example I can't get the load data at all. I use essential_1_power & non-essential power. My load_power returns a value, but in your case might be that your "load" is wired to AUX.
March 13, 20242 yr 4 hours ago, Joerg said: That would be great. I can share the registers that are working for me so far, if you are interested... Yes, that would be useful to compare with what I have. @Sc00bs @kellerza thanks for that info too Once I finish my table I will share it here
March 13, 20242 yr Hi @Rob99, here we go. I checked most of the data registers of @kellerza's script from Register 59 on. I did check the registers that are on the list (and some others which are not so important). The colour-code is at the bottom. Unfortunately I am missing some important information like Inverter Power or maximum charge Power to the battery and all the accumulated values like .....Month/Year Sunsynk 8k LG01 modbus register.xlsx Edited March 13, 20242 yr by Joerg
March 13, 20242 yr 26 minutes ago, Joerg said: Hi @Rob99, here we go. I checked most of the data registers of @kellerza's script from Register 59 on. I did check the registers that are on the list (and some others which are not so important). The colour-code is at the bottom. Unfortunately I am missing some important information like Inverter Power or maximum charge Power to the battery and all the accumulated values like .....Month/Year Sunsynk 8k LG01 modbus register.xlsx 13.11 kB · 0 downloads Thanks @Joerg At the moment I'm getting around 150 confirmed data points extracted. My aim is to check and list all registers although so far I've not found much above 320
March 13, 20242 yr 33 minutes ago, Rob99 said: Thanks @Joerg At the moment I'm getting around 150 confirmed data points extracted. My aim is to check and list all registers although so far I've not found much above 320 I have less than 100 until now. Another file with the datapoints I am actually polling (I don't need many of the other points so I left them out) Sunsynk 8k LG01 modbus register in use.xlsx Edited March 13, 20242 yr by Joerg
March 14, 20242 yr Greetings good folk. First time writing here, but been lurking for well over a year. I've had my SunSynk 8.8kw inverter for the duration of that time, but only got solar panels about a month back. I've been keen to get some stats and graphs, but as long as the setup was just for the avoidance of load-shedding, there wasn't really much motivation. I dabbled around with the Home Assistant setup - but it took a chunk of time to get even the most basic setup going. I started studying all the code and pretty quickly came to the conclusion that it's all just way too complex. I'm really not interested in fancy graphs, blinking lights and sexy fonts. I'm a numbers guy - just the basic facts please. I'm also a professional programmer, with 40+ years experience, going from assembler on mainframes in the 80s, to C on Unix in the 90's, to Python on Linux in the 00's to now. I tried to see if I could get it all going in a MUCH simpler fashion - no Home Assistant, no NodeRed, no Mosquito, no containers, no databases ... in short : simple Python. My little system requires this : a raspberry pi (3+ is fine), mbusd and a rs485-usb dongle. That is it. I wrote 2 programs : ss.py connects to the mbusd and pulls down the register values, logging them to simple csv files and also 2 small summary html files; ss_graph.py reads the logged files and creates 2 matplotlib graphs, saved as png files suitable for looking at on a web page. That's it. The 2 python modules that are not batteries-incuded and need to be installed manually (pip3 install...) are pyModbusTCP and matplotlib. Please find attached some screenshots of my simple web views, the graphs for today, an extract of the log file, and then the source code. License : I am a true believer in the power of the GNU licenses. So the code is licensed as GPL3. I did obtain the register settings by studying KellerZA code and documentation - thank you - your codebase is inspirational. To get it working, you must have mbusd installed and running exactly as all the documentation in the forum here shows. As a test, you can run ss.py from the command line and then within a few minutes it should start populating the csv log files. Once you have data, you can graph it by running ss_graph.py. Then view the png file as you please. The work is a bit rough at the moment - I've concentrated on getting it to meet MY needs. If this coincides with YOUR needs, feel to use and abuse as you wish, albeit respecting the license. What's not done yet is a fancy wraparound setup. I envisage running this from cron on a pi. I would write the day log file and graphs to a ramdisk. I would get a simple web page setup going on nginx to pick up the generated html files, as well as some new ones to show the graphs. The graphs can be generated every few seconds. The logging can be done frequently - any value that is a factor of 60 (ie 2,3,4,5,6,10,12,15,20,30) seconds. This is an ongoing development - but the attached below is my first dump. ss_graph.py ss.py Edited March 14, 20242 yr by MarkPettit Typo
March 17, 20242 yr Greetings again. I now have my setup (described above) fully running off a single pi (actually a Pi4). As can be expected, there were a few bugs, so I'll be adding the latest code base below again. However, before then I'll describe the exact steps I did. As the pi generally uses a SD card, and these things are notoriously slow and have limited write/rewrite capability, the use of a ramdisk for frequently updated items (csv log file and png graphs) is encouraged. However, if you are running from an actual hard disk, or SSD, this step is not required. The downside of this is that IF the pi is rebooted, the stats for the current day will likely be lost. A shutdown task which saves the log might help, but a direct power down by pulling the plug will not save you. Do note that the ss.py program uses a hardwired IP address for the mbusd process - this works just fine on my setup - but is highly unlikely to work on yours - so you must modify that setting. If you have everything running on a single machine, you may be able to set that to "127.0.0.1" - I guess it depends on the mbusd process. Create a mount point : "mkdir /ramdisk" You will either need to be root or sudo'd In /etc/fstab add a line like this : none /ramdisk tmpfs defaults,nodev,nosuid,noexec,nodiratime,size=256M 0 0 For our purpose (1 days logs and 2 png graphs), you really won't need more than 32M "memory". Either reboot, or force mount with "mount /ramdisk". The 2 programs use the following common code : RPT_DIR = "/ramdisk/SunSynk" HTML_DIR="/ramdisk/SunSynk" ARCH_DIR="/home/pi/SunSynk" If you do not use a ramdisk, you can modify the code to use a single common directory. Or the scripts can be started with optional arguments to force different settings. Create an archive directory : mkdir -p /home/pi/SunSynk Initialise the system : run 'init_ss.sh'. This simply creates /ramdisk/Sunsynk. We need to do this at first start, but also at every reboot - so in the crontab we add this line : @reboot /home/pi/init_ss.sh Now that we have the directories ready, and we have the mbusd daemon running (described by other experts in other articles), we need to start the stats gathering process. This can be done many ways (systemd, rc scripts, etc), but I like things simple, so add this to the crontab : @reboot /home/pi/run_ss.sh The above script will simply start the python progam - and upon failure, force a restart. At this stage a reboot is probably best, so we can test the start-up sequence, and to make sure it actually starts writing data into the ramdisk directory. If you can see the csv log file growing (do a tail -f on it), then we can start looking at creating graphs. For this, add the following line into the crontab : */1 * * * * /home/pi/ss_graph.py >> /ramdisk/SunSynk/graph.log This will create the graphs every ONE minute. These files will be in HTML_DIR. Now - I used nginx to display the data - you may need to adjust if you use apache or something else. Place yourself into the /var/www/html directory Copy the file below - power.html - to here. The create some soft links to get around permission issues : ln -s /ramdisk/SunSynk/power_consumption.png power_consumption.png ln -s /ramdisk/SunSynk/power_supply.png power_supply.png ln -s /ramdisk/SunSynk/system_state_detailed.html system_state_detailed.html ln -s /ramdisk/SunSynk/system_state_summary.html system_state_summary.html The above steps are a once-off. After 2/3 minutes you should be able to visit the web pages. These pages automatically refresh after a useful interval - so they can be left open on some screen. http://YOUR.PI.IP/power.html http://YOUR.PI.IP/system_state_detailed.html http://YOUR.PI.IP/system_state_summary.html At the end of the day, a new csv log file will be created. The previous day will be gzip compressed. The graphing program can be passed an optional date - and it will automatically uncompress if needed. At this point you can force the png graphs to go somewhere else. power.html run_ss.sh init_ss.sh ss_graph.py ss.py Edited March 17, 20242 yr by MarkPettit Typo
March 25, 20242 yr As promised, here is my schedule of modbus registers. These are based on the registers in my single phase 8kW ECCO inverter and various documents and information I have found and been sent by others. Interestingly, I asked Sunsynk for a copy of the registers and they sent me the v118 chinese drafted document 🤣😂 Some explanations: The registers are listed from 0 as my modbus device doesn't require the full "40000" number so you may need to add 40000 if your modbus device requires the full register address to read correctly. My modbus converter only reads individual registers and values so, for example, the serial number registers are shown seperately but some modbus devices will read these as a multi-register single string output. Some registers have no further information or detail but are still listed numerically for completeness. As and when I find out more details I will post them here as updated versions. Please let me have any comments and any additional information to fill in any blanks etc. 8kW ECCO Register Info v1.xlsx Edited March 25, 20242 yr by Rob99 Typo
March 26, 20242 yr 20 hours ago, Rob99 said: As promised, here is my schedule of modbus registers. These are based on the registers in my single phase 8kW ECCO inverter and various documents and information I have found and been sent by others. Interestingly, I asked Sunsynk for a copy of the registers and they sent me the v118 chinese drafted document 🤣😂 Some explanations: The registers are listed from 0 as my modbus device doesn't require the full "40000" number so you may need to add 40000 if your modbus device requires the full register address to read correctly. My modbus converter only reads individual registers and values so, for example, the serial number registers are shown seperately but some modbus devices will read these as a multi-register single string output. Some registers have no further information or detail but are still listed numerically for completeness. As and when I find out more details I will post them here as updated versions. Please let me have any comments and any additional information to fill in any blanks etc. 8kW ECCO Register Info v1.xlsx 27.19 kB · 1 download Did Sunsynk support provide any register documentation for their batteries?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.