Limiter inverter with RS485 load setting


DIY BATTERY AUCTIONS Winston LifePo4, 18650 cells, 12/24/48v batteries www.batteryhookup.com

grundholm

Member
Joined
Oct 3, 2020
Messages
111
def read_consumed_power(ser):
time.sleep(0.1) # Wait and clear input buffer to ensure proper packet synchronization
ser.reset_input_buffer()
try:
raw = ser.read(8) # Read 8 bytes
except: return -1

(a,b,divider,c,consumed_power,d,crc) = struct.unpack('>BBBBHBB', raw)
if computeCRC(consumed_power) != crc: return -2 # Checksum mismatch

return consumed_power
I don't know Python very well, but maybe this can help
 
E

E-t0m

Guest
Thanks grundholm!
I know CarlosGS code, it is actually working for reading the measurement box.
Its frame is different in the number of bytes.

If my two soyo are not broken, reading the status frame is somehow different... :-(
 
Last edited by a moderator:

grundholm

Member
Joined
Oct 3, 2020
Messages
111
I made this now, it works on my 'broken' Soyo in Windows... Just remember to change the serial port. It prints out the first bit as hex (a)


Python:
import struct
import time
import serial

ser_port = serial.Serial('COM3',4800)

def read_power(ser):
    time.sleep(0.1)
    try:
        raw = ser.read(15)
    except: return -1
      
    (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) = struct.unpack('>BBBBBBBBBBBBBBB', raw)
  
    return a

def send_request(ser):
    a = 0x24
    b = 0x00
    c = 0x00
    d = 0x00
    e = 0x00
    f = 0x00
    g = 0x00
    h = 0x00
  
    send = struct.pack('>BBBBBBBB',a,b,c,d,e,f,g,h)
    ser.write(send)
    ser.flush()
  
send_request(ser_port)
print(hex(read_power(ser_port)))

ser_port.close()
 
Last edited:
E

E-t0m

Guest
I made this now, it works on my 'broken' Soyo in Windows... Just remember to change the serial port. It prints out the first bit as hex (a)
Thank you very much for your code!
I still get nothing from soyo...
At least my code attempts have not been fundamentally wrong.

Your bricked soyo is answering in standby mode right?
 

grundholm

Member
Joined
Oct 3, 2020
Messages
111
My Soyo is not completely bricked, I connected it to my solarpanels again, it converts the power to the grid, but after 20 sec. it reboots - starts again and send power to the grid, 20 sec. reboot - and the cycle continues - I tried with the Python code and if I run it during the 20 secs where the inverter is working, then I get a responce back. The weird thing is that the display continues to show 239 Volt (grid Voltage) - I also get 239 in the serial output, so the display and serial output the same values - maybe a false reading causes the reboots, I don't know...

Did you try with the code like I wrote it? (without any reset of the buffer etc.) It sends the command once and wait for one reply (just to keep it simple) - try to run the code 3-4 times and see if the inverter respond.

How old is your Soyo? maybe they changed something in the firmware, would be interesting to find out.
 
E

E-t0m

Guest
I tried your code!☺️

The older soyo which is working by RS485 demand without any Problem since weeks is a 2021-301.
The brand new one is a "STC8-2022-218" it displays "RS485" in the lower right corner when it receives power demands. (see below)
After 3 sec without a power demand the RS485 is removed in the display.
It doesn't react on status requests, only on power demands.

Both don't answer my status requests....
 

Attachments

  • signal-2022-04-18-150833.jpeg
    signal-2022-04-18-150833.jpeg
    86.5 KB · Views: 61
Last edited by a moderator:

grundholm

Member
Joined
Oct 3, 2020
Messages
111
Did anyone here buy the 'new' Soyo with the Wifi-Stick?
-and sniff the data between the Soyo and the stick - I looked at the pictures of the Wifi-Stick and it seems like the 'USB' is actually just a serial port connected to RX, TX and a 'set' button, the last pin is not visible, but probably just 5v or 3.3v for the (ESP12)
 

grundholm

Member
Joined
Oct 3, 2020
Messages
111
Interesting, Danke! I also noticed that the wires between the driverboard (behind the screen) and the screen has the 5v, RX, TX and GND markings, the same as the TTL 'USB' port - wonder if it's actually the same...
 

delboy711

New member
Joined
Aug 5, 2018
Messages
2
I tried your code!☺️

The older soyo which is working by RS485 demand without any Problem since weeks is a 2021-301.
The brand new one is a "STC8-2022-218" it displays "RS485" in the lower right corner when it receives power demands. (see below)
After 3 sec without a power demand the RS485 is removed in the display.
It doesn't react on status requests, only on power demands.

Both don't answer my status requests....
I also have a new Soyo with software version STC8-2022-218 and it also does not respond to status requests. I can control the power output just fine, but cannot persuade it to give me a status report.
 

grundholm

Member
Joined
Oct 3, 2020
Messages
111
@etom - are you in Germany? I am :) -If you want I could send you the CPU board from my bricked inverter, this way we can find out if it's a firmware thing and also see if my CPU works....
 

Cell-King

Member
Joined
Sep 23, 2019
Messages
60
Hi All, quick question about this device. Does anyone know the ramp speed of the inverter? I'm polling my import feed at 750ms and sending commands to the inverter to match it at a rate of 1 second but I was wondering how quickly the inverter can ramp up (and down) its output rate so that I can minimise error. All advice appreciated!
 

NikA

New member
Joined
Apr 30, 2022
Messages
19
I just got my soyo 1200W inverter and I'm a little sad or unhappy as it has NO LCD at all. Just the wifi stick and limiter.
The manual and how-to papers show the inverter with LCD and describe how to set it up using the buttons.

I downloaded the app and configured the inverter with it, but I planned to see data/informations on the fr*kken LCD -_-
Anyway: I did not yet try to set the power via RS485 as I still wait for the USB converters to arrive, I hope it is possible to get and set some data via RS485 :/

BTW: the 1200W inverter is not as efficient as the SUN-2000 GTIL2, it produces at least 15W less but displays varying wattage values in the app :/
I installed a (house installation) smartmeter to see what's really being produced.
My SUN-2000 GTIL2 actually shows a lower wattage than it actually generates, the 1200W soyo shows more than it generates.
 
E

E-t0m

Guest
My first soyo has a "milage" of 270 kWh now - and is still working.
I know you run this device much longer than me, whats your soyos "milage"?
 
E

E-t0m

Guest
I think there is a bug in CarlosGS code:
Code:
def computeCRC(power):
  pu = power >> 8
  pl = power & 0xFF
  return (264 - pu - pl) & 0xFF

it should be something like:
Code:
def computeCRC(power):
  pu = power >> 8
  pl = power & 0xFF
  cs = 264 - pu - pl
  if cs >= 256: cs = 8
  return(cs)

Thanks for sharing your code!
 

completelycharged

Active member
Joined
Mar 7, 2018
Messages
1,082
I know you run this device much longer than me, whats your soyos "milage"?
One unit that failed (low voltage - capacitor failure) was about 3,500kWh (800W max)
The three that have displays are :
1,384kWh - RS485 - Newer unit (900W max)
3,902kWh - RS485 - Older (900W max)
3,585kWh - RS485 - Older (900W max)
1,798kWh - no RS485 supplying constant baseload of around 200W 24x7 - oldest unit
 
Top