Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMA CAN Help #34

Open
ironcowboysolar opened this issue Jun 24, 2024 · 59 comments
Open

SMA CAN Help #34

ironcowboysolar opened this issue Jun 24, 2024 · 59 comments

Comments

@ironcowboysolar
Copy link

Hi! I love what you’ve got going here. I recently built a battery pack with three Daly BMS and I am attempting to establish EXTBMS comms with SMA.

I saw your post on a forum and I have some rPi 4b’s laying around. I’m a novice in programming and raspbian. The most I’ve done on a rPi is emulation and tweak config files.

I’m also new to GitHub and I’m not even sure if this is where I post this kind of stuff.

Anyways, I’m looking for some dumbed down guidance on creating this tool. I’ll gladly support this project and I’ll send more to keep this project going and for your time.

Thanks!

@ai-republic
Copy link
Owner

Hi @ironcowboysolar,
first of all, thanks for liking and supporting this project!!!

Before we get you up and running I have a couple of questions on your setup:

  1. Did you get your Daly BMSes specifically CAN enabled by the sales support when you bought them?
  2. What CAN adapter/hat do you have for your RPI 4B?

Best regards,
Torsten

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Jun 26, 2024

Thanks for the response! I purchased the BMS from Amazon. They’re Daly Smart BMS with Parallel Module and the Comm interface board. The technical documentation mentioned that they were ready for both CAN and RS485.

Included is a picture of the batteries I build. I’m really hoping to be able to work this out otherwise in future builds I may switch reluctantly to Batrium.

I bought a wave share can hat.

IMG_2202
IMG_2207

@ai-republic
Copy link
Owner

Those boxes look great :)
I have the same setup really, also with 8 Daly's with parallel module and interface board, but nime doesn't look so clean ;)

Did you already receive/install your Waveshare 2CH CAN hat? If you need any help I can assist you with that.
Once that is installed you can connect all of the interface boards with RJ45 cables like you have now, but in the left ports (which are the CAN ports). Make sure you set the DIP switches for each connected interface board starting from 0 to 2. From the first BMS put a RJ45 cable in the 2nd CAN port of the interface board and from there to your can0 port of you 2CH CAN hat. You need to cut the cable and only use the wires of PIN 4 (CAN L) and PIN 5 (CAN H) to connect to the 2CH CAN hat (see following image) but I also tested PIN 1 (CAN H) and PIN 2 (CAN L) and they also work:

Daly_RJ45_CAN_pins

You count the pins from the left side when the clip of the RJ45 plug is facing down. Then you are basically ready to run the Configurator app, choose log-level debug in the general settings and then add your BMSes with IDs 1-3 on port can0. Choose inverter as NONE for now. And then start the application. Please read also the Wiki - How to use for guidance.

If you encounter any problems, just contact me :)

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Jul 17, 2024

Thanks for the response. Looks like I ordered the wrong CAN hat - the one I ordered is the single channel unit. I ordered the 2 channel unit which should be here tomorrow.

-Edit- I finally found your detailed instructions. I have installed Java SDK on my computer and completed the configurator parameters as detailed for SMA. Created a clean install file.

Most of the questions I have are mostly related to setting up the Rpi. Here's my questions:

  1. For the Raspberry Pi, I'm assuming that I'll need to reformat the SD card and set it up as a fresh install. Do I use Raspberry Pi OS 32 or 64 bit? Should I install the full OS with the desktop environment or just the minimum build? What instructions do you have for installing the CAN hat?

  2. Is it possible to set up the Rpi so that it works automatically when its plugged into the power supply, or will I need to bring a monitor and keyboard onsite to set it up? Will it need to be set up and started up manually each time if it loses power and comes back on?

  3. On the Daly BMS - on the "Upper Computer" app, there is an option to change the communication protocol from RS485 (default) to CAN. When I try to do this it doesn't let me make the change. From what I am beginning to understand, plugging the BMS directly from the UART port on the BMS doesn't allow you to change that parameter, and to do this you will need to connect to the BMS somehow via the interface board. The interface board has a RS232/RJ11 port, and it came with an RJ11 to USB cable. Is this how I connect my computer to it?

  4. Which models of Rpi will work for this? In the future, if i can achieve the same thing using a Pi Zero or a 2 or 3, I'll probably use one of those instead.

  5. If my Daly BMS are stuck in RS485 mode, can the Rpi translate Daly RS485 to SMA CAN?

Thanks again!

@ai-republic
Copy link
Owner

Alright, cool. So

  1. yes, its probably best to use a clean Raspian OS 64bit. The instructions for you CAN hat can usually be found on the manufacturer's site and differs from device to device so I can't really give general instructions here ;)
  2. You can SSH to your PI if you know its IP, then there's no need for keyboard and monitor. To have it restarted each time it reboots you can add a call to the start shell script to you sudo nano /etc/rc.local file. As the PI will not automaticall reboot after a power loss you can add a PI battery UPS so that it will not power off when there's an outage
  3. The Daly with CAN support needs to ordered specifically via the online support. The Daly's found in online shops usually only support UART and/or RS485. I have mine connected via interface boards which offer both RS485 and CAN. But as I mentioned, if you didn't order these via customer support you probably don't have the CAN version
  4. I recommend PI 3B or 4B, but any PI with enough memory and 64bit will do. With the PI 5 I have some issues getting the Waveshare 2CH CAN hat running.
  5. Yes, that is what this program is for ;) To translate between different communication specifications and protocols :)

@ironcowboysolar
Copy link
Author

Ok, I have some good news and some not good news.

The good news is that I got the CAN hat installed and was able to validate the function of can1 sending and can0 receiving.

I ended up installing configurator directly on the rPi.

I created a clean install file.

here’s where I ran into an issue:

When I execute the shell script “Start” nothing happens. If I select execute in terminal, the terminal window opens and quickly closes without any indication that it’s doing anything.

so I tried to open terminal to manually execute the start file from root user. When I do that, it says “cannot access the jarfile”

In response to this, I copied the jarfile path from the “lib” folder, as detailed the “start” file, then from terminal I executed the file directly “Java -jar lib/bms-to-inverterblahblah.jar”
When I did this, a terminal window started reporting CAN data and kept doing it until I closed the window.

In a nutshell, it seems like the start sh file may not be working, but the .jar file it says it doesn’t have access to definitely works.

thoughts?

@ai-republic
Copy link
Owner

ai-republic commented Jul 26, 2024

Did you change the permissions like described in the Wiki:

chmod 744 start
chmod 744 configurator

I think that will solve your issue.

For easier starting and more control I changed the start script into two shell scripts: one to start the bms-to-inverter app start.sh and the other to start the webserver startWebserver.sh separately (if configured).
I also updated the Configurator app and the Wiki to reflect the changes :)

So please download the latest Configurator application choose your installation folder and just click Update configuration.

@ai-republic
Copy link
Owner

@ironcowboysolar did it solve your issue?

@ironcowboysolar
Copy link
Author

Oh man lots of information here to share. First thing is to get the shell script to work I had to put the _specified_file paths for all of the files detailed in the shell script. I also had to set chmod permissions to 755. To make the shell script execute automatically upon startup I had to add a bash script for the start.sh file and I had to add chmod +x to the rc.local file and all the configurator files.

Now when I execute start.sh in terminal I can see all the processes running as it tries to open ports and send and receive data.

Now for the complicated stuff. I have not been able to verify that the CANBUS ports on the interface boards actively transmit any data. Using the DALY app, I have been able to set the communication protocol to SMA CAN, as well as save the setting, but i'm still unable to read anything and I'm not sure if it's actually doing anything. I have a CAN reader for my laptop but the software that comes with it sucks so I'm going to get a better one.

With the BMS to inverter running, when I try to give the command "ifconfig can0" it doesn't show that its receiving any information packets, nor does candump can0.

Maybe you're correct about the BMS being shipped without CAN capabilities, but the amazon page where I bought it from states that it's supposed to have CAN/UART/RS485 support.

I have a few options at this point. Seemingly, the worst case scenario would be that I translate from Daly RS485 to SMA CAN, but from what I can tell, my CAN hat does not support RS485. Seems like I'll need to get a two channel CAN hat that supports both protocols to be able to do this.

I can also get a decent CAN reader from my laptop so that I could verify whether or not the CAN ports transmit data. Due to some of what the log file states, I am suspicious that maybe the CAN hat is improperly installed.

Here is a brief copy and paste from the log file:

**2024-08-07 16:53:04.588 | INFO | Thread-2 | toinverter.core.Port:113 | Opening port can0 SUCCESSFUL
2024-08-07 16:53:04.589 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x50, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D]

2024-08-07 16:53:04.589 | ERROR | Thread-2 | ractDalyBmsProcessor:70 | Failed to initialize BMS!
java.lang.NullPointerException: Cannot invoke "com.fazecast.jSerialComm.SerialPort.getOutputStream()" because "this.port" is null
at com.airepublic.bmstoinverter.protocol.rs485.JSerialCommPort.sendFrame(JSerialCommPort.java:164) ~[protocol-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.rs485.DalyBmsRS485Processor.sendMessage(DalyBmsRS485Processor.java:66) ~[bms-daly-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.common.AbstractDalyBmsProcessor.collectData(AbstractDalyBmsProcessor.java:63) ~[bms-daly-common-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.core.BMS.process(BMS.java:137) ~[core-api-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.BmsToInverter.lambda$start$2(BmsToInverter.java:239) ~[bms-to-inverter-main-0.0.1-SNAPSHOT.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
2024-08-07 16:53:04.590 | INFO | Thread-2 | toinverter.core.Port:111 | Opening can0 ...
2024-08-07 16:53:04.591 | ERROR | Thread-2 | s485.JSerialCommPort:71 | Could not open port can0!
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/can0
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:502) ~[jSerialComm-2.10.4.jar:2.10.4]
at com.airepublic.bmstoinverter.protocol.rs485.JSerialCommPort.open(JSerialCommPort.java:58) ~[protocol-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.core.Port.ensureOpen(Port.java:112) ~[core-api-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.protocol.rs485.JSerialCommPort.sendFrame(JSerialCommPort.java:156) ~[protocol-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.rs485.DalyBmsRS485Processor.sendMessage(DalyBmsRS485Processor.java:66) ~[bms-daly-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.common.AbstractDalyBmsProcessor.collectData(AbstractDalyBmsProcessor.java:74) ~[bms-daly-common-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.core.BMS.process(BMS.java:137) ~[core-api-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.BmsToInverter.lambda$start$2(BmsToInverter.java:239) ~[bms-to-inverter-main-0.0.1-SNAPSHOT.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.io.IOException
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:488) ~[jSerialComm-2.10.4.jar:2.10.4]
... 8 more
2024-08-07 16:53:04.591 | INFO | Thread-2 | toinverter.core.Port:113 | Opening port can0 SUCCESSFUL
2024-08-07 16:53:04.592 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D]

2024-08-07 16:53:04.592 | ERROR | Thread-2 | stoinverter.core.BMS:149 | Error requesting data!
java.lang.NullPointerException: Cannot invoke "com.fazecast.jSerialComm.SerialPort.getOutputStream()" because "this.port" is null
at com.airepublic.bmstoinverter.protocol.rs485.JSerialCommPort.sendFrame(JSerialCommPort.java:164) ~[protocol-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.rs485.DalyBmsRS485Processor.sendMessage(DalyBmsRS485Processor.java:66) ~[bms-daly-rs485-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.common.AbstractDalyBmsProcessor.collectData(AbstractDalyBmsProcessor.java:74) ~[bms-daly-common-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.core.BMS.process(BMS.java:137) ~[core-api-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.BmsToInverter.lambda$start$2(BmsToInverter.java:239) ~[bms-to-inverter-main-0.0.1-SNAPSHOT.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]**

I'm interested to hear your ideas on this. Thanks!

@ErikssonPer
Copy link

ErikssonPer commented Aug 8, 2024

You could loop both canhat channels together and send some can commands with one and recieve with the other, that way you'll see that the hat works atleast.
Can0 and Can1 sometimes also switch places, the waveshare wiki mentions that and also have a fix for it.

@ironcowboysolar
Copy link
Author

You could loop both canhat channels together and send some can commands with one and recieve with the other, that way you'll see that the hat works atleast.

I have opened two terminal windows and did a candump can0 and then cansend can1 000#11 22 33 44 55

This works like its supposed to.

@ErikssonPer
Copy link

Check this out, may need to send a message first to get it to start sending data,
Louisvdw/dbus-serialbattery#561

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024

First thing is to get the shell script to work I had to put the _specified_file paths for all of the files detailed in the shell script. I also had to set chmod permissions to 755. To make the shell script execute automatically upon startup I had to add a bash script for the start.sh file and I had to add chmod +x to the rc.local file and all the configurator files.

  1. The shell script should work as it is - unless you call it from another directory. In that case you could just add something like cd ~/bms-to-inverter at the beginning of the start.sh script.
  2. Yes, you need to do a chmod 744 start.sh startWebserver.sh if you copy the files from Windows to your PI (see Wiki at the bottom).
  3. Your PI with Raspian OS should have the bash shell installed per default

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024

Maybe you're correct about the BMS being shipped without CAN capabilities, but the amazon page where I bought it from states that it's supposed to have CAN/UART/RS485 support.

I can recommend chatting to a Daly representative directly. They are very responsive. Here's a WhatsApp link from their Website:

image

Or just send them an email. You'll probably have to send a picture of the BMS and S/N.
There is also a way to measure the voltage on the pins: CAN Hi usually measures from 2.5V to 3.75V while CAN Lo measures from 2.5V to 1.25V.

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024

**2024-08-07 16:53:04.588 | INFO | Thread-2 | toinverter.core.Port:113 | Opening port can0 SUCCESSFUL 2024-08-07 16:53:04.589 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x50, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D]

2024-08-07 16:53:04.589 | ERROR | Thread-2 | ractDalyBmsProcessor:70 | Failed to initialize BMS! java.lang.NullPointerException: Cannot invoke "com.fazecast.jSerialComm.SerialPort.getOutputStream()" because "this.port" is null at com.airepublic.bmstoinverter.protocol.rs485.JSerialCommPort.sendFrame(JSerialCommPort.java:164) ~[protocol-rs485-0.0.1-SNAPSHOT.jar:?] at com.airepublic.bmstoinverter.bms.daly.rs485.DalyBmsRS485Processor.sendMessage(DalyBmsRS485Processor.java:66) ~[bms-daly-rs485-0.0.1-SNAPSHOT.jar:?]

You have configured the DALY_RS485 BMS binding but specified can0 as port. That cannot work. To use CAN you need to configure the DALY_CAN BMS binding and use can0 (if connected to can0 on your hat) or DALY_RS485 BMS binding connected to A and B of your RS485 connector if you want to run it via the Daly RS485 port.

You could also test it via the PI serial ports pins 8 and 10:

image

Then you need to connect your PI and Daly pins TX->RX and RX -> TX:

image

image

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024

Check this out, may need to send a message first to get it to start sending data, Louisvdw/dbus-serialbattery#561

Once the CAN is connected it usuallly works out of the box. To be sure you can restart the BMS (either via their PC software, or interface board or disconnecting the battery cable shortly).
The Bms-to-Inverter application will send a message to the Daly BMS to first read out some general information like number of cellls in the pack, etc. The Daly BMS will respond immediately. I have the application running with my 8 Daly BMSs myself ;)

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024

Using the DALY app, I have been able to set the communication protocol to SMA CAN,

If you use the DALY_CAN BMS binding then please set the 'Inverter Manager' to NONE and not to SMA! Or you could set the SMA_CAN BMS binding, but I recommend the Daly binding for your Daly 😉

image

Now I hope all that information will bring you forward! Happy reading 😆 and don't hesitate to ask questions!

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Aug 9, 2024

Sorry, I accidentally posted the part of the log where it was tinkering with the Daly RS485. Here's the same log from when it was set to Daly_CAN

"2024-08-07 16:56:40.607 | INFO | main | erter.core.util.Util:35 | Loading config.properties from: /home/pi/configurator/config/config.properties
2024-08-07 16:56:40.686 | DEBUG | main | ging.LoggerProviders:152 | Logging Provider: org.jboss.logging.Log4j2LoggerProvider
2024-08-07 16:56:44.628 | INFO | main | core.BMSListProducer:98 | Intialized BMS #2[DALY_CAN] on port can0
2024-08-07 16:56:44.633 | INFO | main | core.BMSListProducer:98 | Intialized BMS #1[DALY_CAN] on port can0
2024-08-07 16:56:44.636 | INFO | main | verter.BmsToInverter:231 | Starting BMS receiver...
2024-08-07 16:56:44.646 | INFO | Thread-2 | verter.BmsToInverter:238 | Reading BMS #2 DALY_CAN on can0...
2024-08-07 16:56:44.651 | INFO | Thread-2 | stoinverter.core.BMS:130 | ---------------------------------> Thread 19
2024-08-07 16:56:44.654 | INFO | Thread-2 | toinverter.core.Port:111 | Opening can0 ...
2024-08-07 16:56:44.745 | INFO | Thread-2 | toinverter.core.Port:113 | Opening port can0 SUCCESSFUL
2024-08-07 16:56:44.751 | DEBUG | Thread-2 | .DalyBmsCANProcessor:46 | SEND: Buffer (HEX): [0x40, 0x02, 0x50, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-07 16:56:44.755 | DEBUG | Thread-2 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x40, 0x02, 0x50, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-07 16:56:44.759 | DEBUG | Thread-2 | ocol.can.JavaCANPort:76 | CAN frame read...
2024-08-07 16:56:45.786 | ERROR | Thread-2 | ractDalyBmsProcessor:70 | Failed to initialize BMS!
tel.schich.javacan.platform.linux.LinuxNativeOperationException: Unable to read from the socket - errorNumber=11, errorMessage='Resource temporarily unavailable'
at tel.schich.javacan.SocketCAN.read(Native Method) ~[javacan-core-3.2.4.jar:?]
at tel.schich.javacan.AbstractCanChannel.readSocket(AbstractCanChannel.java:213) ~[javacan-core-3.2.4.jar:?]
at tel.schich.javacan.RawCanChannelImpl.readUnsafe(RawCanChannelImpl.java:85) ~[javacan-core-3.2.4.jar:?]
at tel.schich.javacan.RawCanChannelImpl.read(RawCanChannelImpl.java:79) ~[javacan-core-3.2.4.jar:?]
at tel.schich.javacan.RawCanChannelImpl.read(RawCanChannelImpl.java:74) ~[javacan-core-3.2.4.jar:?]
at com.airepublic.bmstoinverter.protocol.can.JavaCANPort.receiveFrame(JavaCANPort.java:77) ~[protocol-can-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.can.DalyBmsCANProcessor.sendMessage(DalyBmsCANProcessor.java:54) ~[bms-daly-can-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.bms.daly.common.AbstractDalyBmsProcessor.collectData(AbstractDalyBmsProcessor.java:63) ~[bms-daly-common-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.core.BMS.process(BMS.java:137) ~[core-api-0.0.1-SNAPSHOT.jar:?]
at com.airepublic.bmstoinverter.BmsToInverter.lambda$start$2(BmsToInverter.java:239) ~[bms-to-inverter-main-0.0.1-SNAPSHOT.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
2024-08-07 16:56:45.815 | DEBUG | Thread-2 | .DalyBmsCANProcessor:46 | SEND: Buffer (HEX): [0x40, 0x02, 0x90, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-07 16:56:45.818 | DEBUG | Thread-2 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x40, 0x02, 0x90, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-07 16:56:45.819 | DEBUG | Thread-2 | ocol.can.JavaCANPort:76 | CAN frame read...
2024-08-07 16:56:46.841 | ERROR | Thread-2 | stoinverter.core.BMS:149 | Error requesting data!"

@ai-republic
Copy link
Owner

ai-republic commented Aug 9, 2024 via email

@ironcowboysolar
Copy link
Author

This was copy pasted from my rc.local file so that it executes upon startup.

#!/bin/bash

Initialize CAN BUS

sudo ip link set can0 up type can bitrate 1000000
sudo ip link set can1 up type can bitrate 1000000
sudo ifconfig can0 txqueuelen 65536
sudo ifconfig can1 txqueuelen 65536

@ai-republic
Copy link
Owner

Thanks @ironcowboysolar - could you try setting the bitrate to 500000 please? I think the Daly only supports that.

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Aug 12, 2024

OK, so every time I try this I get further and I think I'm very close to getting this to work.

I was able to get a voltage on the CAN pins on the Daly, but since I'm unsure about it, I installed the RS485 CAN Hat and decided to go with the DALY_RS485 binding.

After I dialed it in some, I was able to confirm that the rPi was definitely receiving RS485 information from the BMS. Upon reboot, my rPi boots to terminal and the start.sh script is executed automatically after it boots. As it started scrolling through all the data, I could briefly see where the rPi was collecting data, such as the voltages of the various cells and the state of charge, etc.

Also, when this was running, I did a candump and could see lots of CAN data. ifconfig also said that there were numerous packets being sent etc.

Now my problem is that I can't seem to get the Sunny Island to recognize the CAN data. When I set up the inverter for Li_Batt_EXT_BMS, upon boot up it works for a minute and then I get a BMS timeout error. During the time that it does run, it does not receive the SOC information from the rPi.

The configurator is set to SMA_CAN binding on port can0 with a baudrate of 500,000. There is a resistor on the rPi and a resistor on the other SMA. Do you have any suggestions or tips? I feel like I'm close to a breakthrough.

Thanks for your detailed responses.

-EDIT- So I noticed above that you said that the RX goes to the TX in between devices and vice versa. Is that the same for A and B? The Daly has a wiring harness for RS485 that has A and B labeled. Are you saying that A on the Daly should go to B on the rPi and vise verse?

@ai-republic
Copy link
Owner

ai-republic commented Aug 14, 2024

Hi @ironcowboysolar,
first just a couple of questions:

  1. Daly is now connected via RS485 to your RPI right?
  2. Your CAN hat is only connected to the SMA inverter (can0)? Or also to your Daly? On which port/device did you do the candump? Could you please attach the file here too please?

For the RS485 you do not have to connect A->B, B->A, just connect A->A, B->B. That would only be for serial communication using RX, TX.

So assuming you're running RS485 on your Daly: can we test just the Daly binding first please?
For that only choose the DALY_RS485 binding for your BMS with Id 1 at 9600 baud. Then for the inverter please choose NONE as binding. And please also set the log level to Debug, Can you please run it and then attach the log file here please.

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Aug 14, 2024

  1. Yes, I have installed the Waveshare RS485/CAN hat. I have the Daly BMS connected to the port serial0.

  2. SMA is connected to the can0 port.

I have the BMS to Inv program set to execute on startup after the rPi boots into terminal instead of the desktop environment. When it starts up, it goes through the boot process, and after that I can see it quickly processing data packets on the screen and I can catch bits of the data as it rains down. I can see that from the Daly, it receives the BMS info such as cell voltage, temps, SOC and other things. Lots of RECEIVED on serial0 and SENDING on can0. Here's the log file details:

2024-08-11 19:24:17.764 | INFO | Thread-2 | n.DalyMessageHandler:164 | BMS #1: 53.0V, -7.5A, 70.9SOC
2024-08-11 19:24:17.765 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x90 to BMS 1 successfully sent and received!
2024-08-11 19:24:17.765 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-08-11 19:24:17.799 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:17.800 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:17.801 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x91]

2024-08-11 19:24:17.802 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:17.803 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:17.804 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:17.805 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0F]

2024-08-11 19:24:17.806 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:17.807 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEA]

2024-08-11 19:24:17.808 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-08-11 19:24:17.809 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-08-11 19:24:17.810 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xC5]

2024-08-11 19:24:17.811 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x1A]

2024-08-11 19:24:17.893 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-08-11 19:24:17.987 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xF3, 0x0F, 0x0C, 0xEA, 0x10, 0x02, 0xC5, 0x1A]

2024-08-11 19:24:17.988 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xF3, 0x0F, 0x0C, 0xEA, 0x10, 0x02, 0xC5, 0x1A]

2024-08-11 19:24:17.988 | INFO | Thread-2 | n.DalyMessageHandler:184 | Battery 2 Min/Max/Diff:
Max Voltage: Cell 15(3315mV)
Min Voltage: Cell 16(3306mV)
Difference: 9mV
2024-08-11 19:24:17.989 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x91 to BMS 1 successfully sent and received!
2024-08-11 19:24:17.989 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-08-11 19:24:18.019 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.020 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.021 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x92]

2024-08-11 19:24:18.022 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.023 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-08-11 19:24:18.024 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-08-11 19:24:18.025 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-08-11 19:24:18.026 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.027 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEA]

2024-08-11 19:24:18.028 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-08-11 19:24:18.029 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-08-11 19:24:18.030 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xC5]

2024-08-11 19:24:18.031 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x92]

2024-08-11 19:24:18.117 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-08-11 19:24:18.211 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x02, 0x47, 0x01, 0xEA, 0x10, 0x02, 0xC5, 0x92]

2024-08-11 19:24:18.211 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x02, 0x47, 0x01, 0xEA, 0x10, 0x02, 0xC5, 0x92]

2024-08-11 19:24:18.212 | INFO | Thread-2 | n.DalyMessageHandler:204 | Battery 2 Temperature:
Max: 31.0C
Min: 31.0C
Avg: 31.0C
2024-08-11 19:24:18.213 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x92 to BMS 1 successfully sent and received!
2024-08-11 19:24:18.213 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-08-11 19:24:18.259 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.260 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.261 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x93]

2024-08-11 19:24:18.262 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.263 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-08-11 19:24:18.264 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.265 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.266 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF5]

2024-08-11 19:24:18.267 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.268 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x03]

2024-08-11 19:24:18.269 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x3E]

2024-08-11 19:24:18.270 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xDC]

2024-08-11 19:24:18.271 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x57]

2024-08-11 19:24:18.341 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-08-11 19:24:18.435 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0xF5, 0x00, 0x03, 0x3E, 0xDC, 0x57]

2024-08-11 19:24:18.436 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0xF5, 0x00, 0x03, 0x3E, 0xDC, 0x57]

2024-08-11 19:24:18.436 | INFO | Thread-2 | n.DalyMessageHandler:241 | Battery 2 Dis-/Charge data:
Dis-/Charge-State: Discharge
ChargeMOS-State: true
DisChargeMOS-State: true
BMSHeartBeat: 245
2024-08-11 19:24:18.437 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x93 to BMS 1 successfully sent and received!
2024-08-11 19:24:18.438 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-08-11 19:24:18.469 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.470 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.471 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x94]

2024-08-11 19:24:18.472 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.473 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-08-11 19:24:18.474 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-08-11 19:24:18.475 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.476 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.477 | INFO | Thread-6 | verter.BmsToInverter:264 | Sending to inverter SMA_SI_CAN on can0...
2024-08-11 19:24:18.477 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.478 | DEBUG | Thread-6 | verter.core.Inverter:89 | Inverter received: Buffer (HEX): [null]

2024-08-11 19:24:18.478 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.479 | INFO | Thread-6 | InverterCANProcessor:48 | Sending SMA frame: Batt(V)=53.0, Batt(A)=-7.5, SOC=70.8
2024-08-11 19:24:18.479 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x13]

2024-08-11 19:24:18.480 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0x60, 0x09, 0x78, 0x01]

2024-08-11 19:24:18.481 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.481 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0x60, 0x09, 0x78, 0x01]

2024-08-11 19:24:18.482 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xB2]

2024-08-11 19:24:18.482 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.483 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.484 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xB4, 0x14, 0xB5, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.485 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xB4, 0x14, 0xB5, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.486 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.487 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:18.565 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-08-11 19:24:18.659 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4B, 0xB2]

2024-08-11 19:24:18.660 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4B, 0xB2]

2024-08-11 19:24:18.661 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x94 to BMS 1 successfully sent and received!
2024-08-11 19:24:18.662 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-08-11 19:24:18.699 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.700 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.701 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-08-11 19:24:18.702 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.703 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.704 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.705 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.706 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

I can see that this information is being transmitted via the can0 port.

@ironcowboysolar
Copy link
Author

Here's some more logs that may be useful:

2024-08-11 19:24:18.725 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEF]

2024-08-11 19:24:18.726 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.727 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.728 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.729 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.730 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.731 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x88]

2024-08-11 19:24:18.744 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.745 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.746 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-08-11 19:24:18.749 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08, 0x03]

2024-08-11 19:24:18.752 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C, 0xF1]

2024-08-11 19:24:18.752 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.753 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.754 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.755 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.756 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.757 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x8A]

2024-08-11 19:24:18.769 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.770 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.771 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-08-11 19:24:18.772 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.773 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x04]

2024-08-11 19:24:18.774 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.775 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.776 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.777 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.778 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.779 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF2]

2024-08-11 19:24:18.780 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.781 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x8D]

2024-08-11 19:24:18.789 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-08-11 19:24:18.789 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.790 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.791 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-08-11 19:24:18.792 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.793 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x05]

2024-08-11 19:24:18.794 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.795 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.796 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.797 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.798 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.799 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.800 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.801 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x90]

2024-08-11 19:24:18.809 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.810 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.811 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-08-11 19:24:18.812 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.813 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x06]

2024-08-11 19:24:18.814 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.815 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEA]

2024-08-11 19:24:18.816 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.817 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.818 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-08-11 19:24:18.819 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF3]

2024-08-11 19:24:18.820 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.821 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x88]

2024-08-11 19:24:18.882 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xF2, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x8B]

2024-08-11 19:24:18.883 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xF2, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x8B]

2024-08-11 19:24:18.884 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 1. 3314mV
2024-08-11 19:24:18.884 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 2. 3315mV
2024-08-11 19:24:18.885 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 3. 3315mV
2024-08-11 19:24:18.886 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xEF, 0x0C, 0xF2, 0x0C, 0xF3, 0x4B, 0x88]

2024-08-11 19:24:18.887 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xEF, 0x0C, 0xF2, 0x0C, 0xF3, 0x4B, 0x88]

2024-08-11 19:24:18.888 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 4. 3311mV
2024-08-11 19:24:18.889 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 5. 3314mV
2024-08-11 19:24:18.889 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 6. 3315mV
2024-08-11 19:24:18.891 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xF1, 0x0C, 0xF2, 0x0C, 0xF2, 0x4B, 0x8A]

2024-08-11 19:24:18.892 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xF1, 0x0C, 0xF2, 0x0C, 0xF2, 0x4B, 0x8A]

2024-08-11 19:24:18.892 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 7. 3313mV
2024-08-11 19:24:18.893 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 8. 3314mV
2024-08-11 19:24:18.893 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 9. 3314mV
2024-08-11 19:24:18.895 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xF3, 0x0C, 0xF2, 0x0C, 0xF2, 0x4B, 0x8D]

2024-08-11 19:24:18.895 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xF3, 0x0C, 0xF2, 0x0C, 0xF2, 0x4B, 0x8D]

2024-08-11 19:24:18.895 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 10. 3315mV
2024-08-11 19:24:18.896 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 11. 3314mV
2024-08-11 19:24:18.896 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 12. 3314mV
2024-08-11 19:24:18.897 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.314V
#2: 3.315V
#3: 3.315V
#4: 3.311V
#5: 3.314V
#6: 3.315V
#7: 3.313V
#8: 3.314V
#9: 3.314V
#10: 3.315V
#11: 3.314V
#12: 3.314V
#13: 3.315V
#14: 3.315V
#15: 3.315V
#16: 3.306V

2024-08-11 19:24:18.899 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xF3, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x90]

2024-08-11 19:24:18.899 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xF3, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x90]

2024-08-11 19:24:18.900 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 13. 3315mV
2024-08-11 19:24:18.900 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 14. 3315mV
2024-08-11 19:24:18.901 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 15. 3315mV
2024-08-11 19:24:18.902 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.314V
#2: 3.315V
#3: 3.315V
#4: 3.311V
#5: 3.314V
#6: 3.315V
#7: 3.313V
#8: 3.314V
#9: 3.314V
#10: 3.315V
#11: 3.314V
#12: 3.314V
#13: 3.315V
#14: 3.315V
#15: 3.315V
#16: 3.306V

2024-08-11 19:24:18.904 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0xEA, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x88]

2024-08-11 19:24:18.905 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0xEA, 0x0C, 0xF3, 0x0C, 0xF3, 0x4B, 0x88]

2024-08-11 19:24:18.905 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 16. 3306mV
2024-08-11 19:24:18.906 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 17. 3315mV
2024-08-11 19:24:18.906 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 18. 3315mV
2024-08-11 19:24:18.907 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.314V
#2: 3.315V
#3: 3.315V
#4: 3.311V
#5: 3.314V
#6: 3.315V
#7: 3.313V
#8: 3.314V
#9: 3.314V
#10: 3.315V
#11: 3.314V
#12: 3.314V
#13: 3.315V
#14: 3.315V
#15: 3.315V
#16: 3.306V

2024-08-11 19:24:18.908 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x95 to BMS 1 successfully sent and received!
2024-08-11 19:24:18.908 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-08-11 19:24:18.949 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:18.950 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.951 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x96]

2024-08-11 19:24:18.952 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:18.953 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:18.954 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-08-11 19:24:18.955 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-08-11 19:24:18.956 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.957 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.958 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.959 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:18.960 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x4B]

2024-08-11 19:24:18.961 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x1E]

2024-08-11 19:24:19.037 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-08-11 19:24:19.133 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x1E]

2024-08-11 19:24:19.134 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x1E]

2024-08-11 19:24:19.135 | INFO | Thread-2 | n.DalyMessageHandler:327 | BMS #1, Frame No.: 1, Sensor No: 1. 31�C
2024-08-11 19:24:19.136 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x96 to BMS 1 successfully sent and received!
2024-08-11 19:24:19.136 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-08-11 19:24:19.189 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:19.191 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:19.192 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x97]

2024-08-11 19:24:19.193 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08, 0x00]

2024-08-11 19:24:19.194 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.195 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.197 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.198 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.199 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.200 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.200 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.202 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x45]

2024-08-11 19:24:19.277 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-08-11 19:24:19.374 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-08-11 19:24:19.375 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-08-11 19:24:19.377 | INFO | Thread-2 | n.DalyMessageHandler:378 | BMS #1, Cell Balance State:
#1: false
#2: false
#3: false
#4: false
#5: false
#6: false
#7: false
#8: false
#9: false
#10: false
#11: false
#12: false
#13: false
#14: false
#15: false
#16: false
CellBalanceActive: false
2024-08-11 19:24:19.379 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x97 to BMS 1 successfully sent and received!
2024-08-11 19:24:19.380 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-08-11 19:24:19.409 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-08-11 19:24:19.410 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-08-11 19:24:19.411 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x98]

2024-08-11 19:24:19.412 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-08-11 19:24:19.413 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.414 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.416 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.417 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.418 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.419 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00, 0x00]

2024-08-11 19:24:19.421 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-08-11 19:24:19.422 | DEBUG | Thread-11 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-08-11 19:24:19.488 | INFO | Thread-6 | verter.BmsToInverter:264 | Sending to inverter SMA_SI_CAN on can0...
2024-08-11 19:24:19.490 | DEBUG | Thread-6 | verter.core.Inverter:89 | Inverter received: Buffer (HEX): [null]

2024-08-11 19:24:19.491 | INFO | Thread-6 | InverterCANProcessor:48 | Sending SMA frame: Batt(V)=53.0, Batt(A)=-7.5, SOC=70.8
2024-08-11 19:24:19.493 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0x60, 0x09, 0x78, 0x01]

2024-08-11 19:24:19.495 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0x60, 0x09, 0x78, 0x01]

2024-08-11 19:24:19.496 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.497 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.499 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xB4, 0x14, 0xB5, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.500 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xB4, 0x14, 0xB5, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.501 | DEBUG | Thread-6 | verter.core.Inverter:94 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.502 | DEBUG | Thread-6 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-08-11 19:24:19.514 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-08-11 19:24:19.609 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-08-11 19:24:19.611 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-08-11 19:24:19.611 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x98 to BMS 1 successfully sent and received!
2024-08-11 19:24:19.613 | INFO | Thread-2 | verter.BmsToInverter:290 |
BMS SOC V A CellMinV CellMaxV CellDiff
#1 70.9 53.0 -7.5 3.306(#16) 3.315(#15) 0.009

2024-08-11 19:24:19.613 | INFO | Thread-2 | verter.BmsToInverter:360 | BMS alarms:
NONE

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Aug 14, 2024

This battery is about 45 minutes from me, so every trip I take costs me a fair bit of time and money. If it's possible, I'd like to go out there with a specific goal or few different things to try unless you would be able to support in realtime. Thank you!

@ai-republic
Copy link
Owner

Hi @ironcowboysolar,
thanks for the log files. I have added support for inverter and BMS plugins and for your case I added a plugin to use preset values for batteries if the battery information has not yet been read. I also fixed a few other things concerning aggregation of some values. I also updated and fixed the Configurator app.

For me to access your PI remotely you would need to either install a RDP application (like pi-connect, teamviewer, etc.) or create port forwarding to your PI's internal IP on the SSH port (22) on your router and send me the external IP of your router and a user login user/pwd on your PI.

@ironcowboysolar
Copy link
Author

ironcowboysolar commented Sep 2, 2024

I have still been unable to realise communication between the rPi and the SMA.

When you say this part "I have added support for inverter and BMS plugins and for your case I added a plugin to use preset values for batteries if the battery information has not yet been read. I also fixed a few other things concerning aggregation of some values. I also updated and fixed the Configurator app"

Does this mean that I just need to re-download configurator, and extract the contents over the old files? When you mention plugins, I'm not sure exactly what you mean and how to apply them. In exactly what way did you add the support and how do I utilise it?

A few weird things: The first is that the BMS-to-Inverter log file, it doesn't show the data that appears every time the app is running. It seems to log sporadic sections of data and I haven't been able to figure out what conditions need to be met for it to record into the log. For this reason I can't even show you what the latest logs of the app were because i can't copy and paste from terminal. The information is gone now.

In my rc.local file, I added code to initialise the CAN driver upon startup and to set the bitrate. Here's the code:

sudo ip link set can0 type can bitrate 500000
sudo ifconfig can0 up
sudo ifconfig can0 txqueuelen 65536

Is it possible that the BMS-to-Inverter app already has this code somehwere, which would conflict with the rc.local script happening upon start up? Maybe the app sees that can0 is already in use? Should I start the app with can0 down?

From what I can tell the RS485 to the rPi is working. When the app is running in terminal, I can see that it receives all the data including voltage, cell voltages, balance status, temperature, internal resistance and crap like that. The issue seems to be transmitting the data via CAN, the can numbers that it appears to send out don't change. A candump does show lots of data and ifconfig shows packets, but it seems to be the same numbers over and over again, which is maybe a null.

I went back to the Waveshare Wiki for the RS485 CAN hat and realised that i didn't have the python plugin for "can" downloaded. I did that and tested the can via python receive.py and send.py and it worked. I think this is just used for testing but maybe it had something to do with this problem. I can see that when I execute the send and receive test via python, if can0 is up when it starts it will say "busy" or network is down or something similar.

Excited to hear any ideas you may have with this information and I'm really hoping to discover what I'm doing wrong.

Thanks!

-EDIT- I'm currently using the Daly RS485 binding, and for debug purposes, I have tried it with "none" under inverter type as well as "SMA_CAN" inverter type.

@ai-republic
Copy link
Owner

Hi @ironcowboysolar,
let me try to sort this and answer point-by-point:

  1. The plugin architecture is implemented and also a plugin to manipulate values at any stage before data gets sent to the inverter. This is currently only set for the SMA inverter binding
  2. The logs are written out to the terminal AND also into the logs folder. If posting logs, then please always attach the log file from the logs folder
  3. The CAN initialization from rc.local looks good. My application does not initialize the CAN hardware as there are too many out there. But it does set the baudrate depending on what is configured via the Configurator. So please make sure that the baudrates match which what the inverter uses.
  4. Telling from the logs above you do read data from the BMS correctly. Once the SOC has a value greater 0 it will us that BMS data and before if will use the preset data from the plugin so the inverter should always get data to work with
  5. Please download the latest Configurator app and configure your system. For now please do not use any services from the service tab. And keep the debug log level
  6. The python libraries from Waveshare are not needed and only to test the hardware if its set up and functioning. Not necessarily that its correctly configured, but that seems to be the case in your case. What shouldn't happen is that if can0 is up that you get error messages that its busy or network down. Are the cables all properly wired?

@ironcowboysolar
Copy link
Author

In response to number two: I understand about the logs folder and the logs file. What I was saying is that the file "BMS-to-Inverter.log" does not always log what happens in terminal as the program runs. If I open the file now it only shows logs from earlier that day and doesn't show any of the things I was seeing before I decided to give up.

@ironcowboysolar
Copy link
Author

Do you know what the pinout is for the SMA? They seem to show both CAN and SYNC. Which pins are you using?

@ai-republic
Copy link
Owner

image

@ai-republic
Copy link
Owner

Only connect the CAN_H and CAN_L. Do no connect CAN_GND or anything else. So basically you only use the wires of pin 4 & 5 for the RJ45 cable that goes to your SMA. And only those wires you connect to your RPi's CAN hat CAN H and CAN L respectively.

@ironcowboysolar
Copy link
Author

2024-09-08 20:15:40.708 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:40.709 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:40.709 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-3.0, SOC=51.1
2024-09-08 20:15:40.709 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:40.710 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:40.710 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:40.710 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.710 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.710 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xE2, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.711 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:40.711 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xE2, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.711 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.711 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:40.712 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:40.713 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:40.714 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x06]

2024-09-08 20:15:40.715 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:40.716 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x71]

2024-09-08 20:15:40.717 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:40.718 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:40.719 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:40.720 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:40.721 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:40.722 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x8E]

2024-09-08 20:15:40.801 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD7, 0x0C, 0xD5, 0x0C, 0xD7, 0x00, 0xEB]

2024-09-08 20:15:40.802 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD7, 0x0C, 0xD5, 0x0C, 0xD7, 0x00, 0xEB]

2024-09-08 20:15:40.802 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 1. 3287mV
2024-09-08 20:15:40.803 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 2. 3285mV
2024-09-08 20:15:40.803 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 3. 3287mV
2024-09-08 20:15:40.803 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xD1, 0x0C, 0xD5, 0x0C, 0xD8, 0x00, 0xE7]

2024-09-08 20:15:40.803 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xD1, 0x0C, 0xD5, 0x0C, 0xD8, 0x00, 0xE7]

2024-09-08 20:15:40.803 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 4. 3281mV
2024-09-08 20:15:40.804 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 5. 3285mV
2024-09-08 20:15:40.804 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 6. 3288mV
2024-09-08 20:15:40.804 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD7, 0x0C, 0xD7, 0x0C, 0xD5, 0x00, 0xED]

2024-09-08 20:15:40.805 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD7, 0x0C, 0xD7, 0x0C, 0xD5, 0x00, 0xED]

2024-09-08 20:15:40.805 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 7. 3287mV
2024-09-08 20:15:40.805 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 8. 3287mV
2024-09-08 20:15:40.805 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 9. 3285mV
2024-09-08 20:15:40.805 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD7, 0x0C, 0xD4, 0x0C, 0xD8, 0x00, 0xEE]

2024-09-08 20:15:40.806 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD7, 0x0C, 0xD4, 0x0C, 0xD8, 0x00, 0xEE]

2024-09-08 20:15:40.806 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 10. 3287mV
2024-09-08 20:15:40.806 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 11. 3284mV
2024-09-08 20:15:40.806 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 12. 3288mV
2024-09-08 20:15:40.806 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.285V
#3: 3.287V
#4: 3.281V
#5: 3.285V
#6: 3.288V
#7: 3.287V
#8: 3.287V
#9: 3.285V
#10: 3.287V
#11: 3.284V
#12: 3.288V
#13: 3.288V
#14: 3.286V
#15: 3.286V
#16: 3.188V

2024-09-08 20:15:40.808 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xD9, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0xF5]

2024-09-08 20:15:40.808 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xD9, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0xF5]

2024-09-08 20:15:40.808 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 13. 3289mV
2024-09-08 20:15:40.808 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 14. 3287mV
2024-09-08 20:15:40.808 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 15. 3289mV
2024-09-08 20:15:40.809 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.285V
#3: 3.287V
#4: 3.281V
#5: 3.285V
#6: 3.288V
#7: 3.287V
#8: 3.287V
#9: 3.285V
#10: 3.287V
#11: 3.284V
#12: 3.288V
#13: 3.289V
#14: 3.287V
#15: 3.289V
#16: 3.188V

2024-09-08 20:15:40.809 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0x71, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0x8E]

2024-09-08 20:15:40.809 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0x71, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0x8E]

2024-09-08 20:15:40.809 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 16. 3185mV
2024-09-08 20:15:40.810 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 17. 3287mV
2024-09-08 20:15:40.810 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 18. 3289mV
2024-09-08 20:15:40.810 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.285V
#3: 3.287V
#4: 3.281V
#5: 3.285V
#6: 3.288V
#7: 3.287V
#8: 3.287V
#9: 3.285V
#10: 3.287V
#11: 3.284V
#12: 3.288V
#13: 3.289V
#14: 3.287V
#15: 3.289V
#16: 3.185V

2024-09-08 20:15:40.810 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x95 to BMS 1 successfully sent and received!
2024-09-08 20:15:40.810 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-09-08 20:15:40.847 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:40.848 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:40.849 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x96]

2024-09-08 20:15:40.850 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:40.852 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:40.853 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-09-08 20:15:40.854 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:40.855 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:40.856 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:40.857 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:40.858 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:40.859 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:40.860 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x9A]

2024-09-08 20:15:40.940 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-09-08 20:15:41.033 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x46, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0x9A]

2024-09-08 20:15:41.033 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x46, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0x9A]

2024-09-08 20:15:41.033 | INFO | Thread-2 | n.DalyMessageHandler:327 | BMS #1, Frame No.: 1, Sensor No: 1. 31�C
2024-09-08 20:15:41.034 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x96 to BMS 1 successfully sent and received!
2024-09-08 20:15:41.034 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-09-08 20:15:41.072 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:41.073 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:41.074 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x97]

2024-09-08 20:15:41.075 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:41.076 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.077 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.078 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.079 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.080 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.081 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.082 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.083 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.084 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x45]

2024-09-08 20:15:41.160 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-09-08 20:15:41.253 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-09-08 20:15:41.253 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-09-08 20:15:41.253 | INFO | Thread-2 | n.DalyMessageHandler:378 | BMS #1, Cell Balance State:
#1: false
#2: false
#3: false
#4: false
#5: false
#6: false
#7: false
#8: false
#9: false
#10: false
#11: false
#12: false
#13: false
#14: false
#15: false
#16: false
CellBalanceActive: false
2024-09-08 20:15:41.254 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x97 to BMS 1 successfully sent and received!
2024-09-08 20:15:41.254 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-09-08 20:15:41.291 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:41.292 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:41.293 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x98]

2024-09-08 20:15:41.294 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:41.296 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.297 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.298 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.299 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.300 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.301 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.302 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.303 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:41.304 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:41.380 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-09-08 20:15:41.473 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-09-08 20:15:41.473 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-09-08 20:15:41.473 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x98 to BMS 1 successfully sent and received!
2024-09-08 20:15:41.474 | INFO | Thread-2 | verter.BmsToInverter:320 |
BMS SOC V A CellMinV CellMaxV CellDiff
#1 51.2 52.4 -3.0 3.186(#16) 3.289(#13) 0.103

2024-09-08 20:15:41.474 | INFO | Thread-2 | verter.BmsToInverter:390 | BMS alarms:
NONE
2024-09-08 20:15:41.711 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:41.712 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:41.712 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-3.0, SOC=51.1
2024-09-08 20:15:41.712 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:41.715 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:41.715 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:41.716 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:41.716 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xE2, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:41.716 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xE2, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:41.716 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:41.717 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.474 | INFO | Thread-2 | verter.BmsToInverter:268 | Reading BMS #1 DALY_RS485 on ttyS0...
2024-09-08 20:15:42.475 | INFO | Thread-2 | stoinverter.core.BMS:130 | ---------------------------------> Thread 19
2024-09-08 20:15:42.475 | DEBUG | Thread-2 | s485.JSerialCommPort:180 | Clearing RX buffers
2024-09-08 20:15:42.475 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D]

2024-09-08 20:15:42.514 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:42.515 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:42.516 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x90]

2024-09-08 20:15:42.517 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:42.518 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:42.519 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:42.520 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:42.521 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:42.522 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x74]

2024-09-08 20:15:42.523 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF7]

2024-09-08 20:15:42.524 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:42.525 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:42.526 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xB9]

2024-09-08 20:15:42.604 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D]

2024-09-08 20:15:42.697 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x90, 0x08, 0x02, 0x0C, 0x00, 0x00, 0x74, 0xF7, 0x02, 0x00, 0xB9]

2024-09-08 20:15:42.697 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x90, 0x08, 0x02, 0x0C, 0x00, 0x00, 0x74, 0xF7, 0x02, 0x00, 0xB9]

2024-09-08 20:15:42.697 | INFO | Thread-2 | n.DalyMessageHandler:164 | BMS #1: 52.4V, -5.7A, 51.2SOC
2024-09-08 20:15:42.698 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x90 to BMS 1 successfully sent and received!
2024-09-08 20:15:42.698 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-09-08 20:15:42.717 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:42.717 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:42.718 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-5.7, SOC=51.1
2024-09-08 20:15:42.718 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:42.718 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:42.718 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.719 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.719 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.719 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.719 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.720 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:42.736 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:42.736 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:42.738 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x91]

2024-09-08 20:15:42.739 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:42.740 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:42.741 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:42.742 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0F]

2024-09-08 20:15:42.743 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:42.744 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x72]

2024-09-08 20:15:42.745 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:42.746 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:42.747 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:42.748 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xC3]

2024-09-08 20:15:42.824 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-09-08 20:15:42.917 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xD9, 0x0F, 0x0C, 0x72, 0x10, 0x02, 0x00, 0xC3]

2024-09-08 20:15:42.917 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xD9, 0x0F, 0x0C, 0x72, 0x10, 0x02, 0x00, 0xC3]

2024-09-08 20:15:42.918 | INFO | Thread-2 | n.DalyMessageHandler:184 | Battery 2 Min/Max/Diff:
Max Voltage: Cell 15(3289mV)
Min Voltage: Cell 16(3186mV)
Difference: 103mV
2024-09-08 20:15:42.918 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x91 to BMS 1 successfully sent and received!
2024-09-08 20:15:42.918 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-09-08 20:15:42.956 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:42.956 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:42.958 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x92]

2024-09-08 20:15:42.959 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:42.960 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-09-08 20:15:42.961 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:42.962 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:42.963 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:42.964 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x72]

2024-09-08 20:15:42.965 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:42.966 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:42.967 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:42.968 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x54]

2024-09-08 20:15:43.048 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-09-08 20:15:43.141 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x01, 0x46, 0x02, 0x72, 0x10, 0x02, 0x00, 0x54]

2024-09-08 20:15:43.142 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x01, 0x46, 0x02, 0x72, 0x10, 0x02, 0x00, 0x54]

2024-09-08 20:15:43.142 | INFO | Thread-2 | n.DalyMessageHandler:204 | Battery 2 Temperature:
Max: 31.0C
Min: 30.0C
Avg: 30.5C
2024-09-08 20:15:43.143 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x92 to BMS 1 successfully sent and received!
2024-09-08 20:15:43.143 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-09-08 20:15:43.182 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.183 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.184 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x93]

2024-09-08 20:15:43.185 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.186 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:43.187 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.188 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.189 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.190 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.191 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:43.192 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x58]

2024-09-08 20:15:43.193 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.194 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x34]

2024-09-08 20:15:43.272 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-09-08 20:15:43.365 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0x95, 0x00, 0x02, 0x58, 0x00, 0x34]

2024-09-08 20:15:43.366 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0x95, 0x00, 0x02, 0x58, 0x00, 0x34]

2024-09-08 20:15:43.366 | INFO | Thread-2 | n.DalyMessageHandler:241 | Battery 2 Dis-/Charge data:
Dis-/Charge-State: Discharge
ChargeMOS-State: true
DisChargeMOS-State: true
BMSHeartBeat: 149
2024-09-08 20:15:43.367 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x93 to BMS 1 successfully sent and received!
2024-09-08 20:15:43.367 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-09-08 20:15:43.406 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.406 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.408 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x94]

2024-09-08 20:15:43.409 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.410 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:43.411 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:43.412 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.413 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.414 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.415 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.416 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x18]

2024-09-08 20:15:43.417 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.418 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x6C]

2024-09-08 20:15:43.496 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-09-08 20:15:43.589 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x6C]

2024-09-08 20:15:43.590 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x6C]

2024-09-08 20:15:43.590 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x94 to BMS 1 successfully sent and received!
2024-09-08 20:15:43.590 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-09-08 20:15:43.630 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.631 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.632 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.633 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.634 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.635 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.636 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:43.637 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.638 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:43.639 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.640 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:43.641 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.642 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEF]

2024-09-08 20:15:43.647 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.648 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.650 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.651 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.652 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:43.653 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.654 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xCD]

2024-09-08 20:15:43.655 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.656 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD3]

2024-09-08 20:15:43.657 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.658 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:43.659 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.660 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xE0]

2024-09-08 20:15:43.665 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.666 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.668 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.669 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.670 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x03]

2024-09-08 20:15:43.671 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.672 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD4]

2024-09-08 20:15:43.673 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.674 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:43.675 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.676 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:43.677 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.678 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEE]

2024-09-08 20:15:43.684 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.684 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.686 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.687 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.688 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x04]

2024-09-08 20:15:43.689 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.690 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD6]

2024-09-08 20:15:43.691 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.692 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD6]

2024-09-08 20:15:43.693 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.694 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD6]

2024-09-08 20:15:43.695 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.696 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xED]

2024-09-08 20:15:43.701 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.703 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.704 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.705 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.706 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x05]

2024-09-08 20:15:43.707 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.708 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:43.709 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.710 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:43.711 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.712 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:43.713 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.714 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF4]

2024-09-08 20:15:43.719 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.720 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:43.720 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-09-08 20:15:43.720 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:43.721 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-5.7, SOC=51.1
2024-09-08 20:15:43.721 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.721 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:43.721 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:43.721 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.722 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.722 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:43.722 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.722 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.722 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.723 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:43.723 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.724 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x06]

2024-09-08 20:15:43.725 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.726 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x73]

2024-09-08 20:15:43.727 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.728 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:43.729 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.730 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:43.731 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.732 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x91]

2024-09-08 20:15:43.813 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD7, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0xEF]

2024-09-08 20:15:43.813 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD7, 0x0C, 0xD7, 0x0C, 0xD9, 0x00, 0xEF]

2024-09-08 20:15:43.813 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 1. 3287mV
2024-09-08 20:15:43.814 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 2. 3287mV
2024-09-08 20:15:43.814 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 3. 3289mV
2024-09-08 20:15:43.814 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xCD, 0x0C, 0xD3, 0x0C, 0xD7, 0x00, 0xE0]

2024-09-08 20:15:43.814 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xCD, 0x0C, 0xD3, 0x0C, 0xD7, 0x00, 0xE0]

2024-09-08 20:15:43.815 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 4. 3277mV
2024-09-08 20:15:43.815 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 5. 3283mV
2024-09-08 20:15:43.815 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 6. 3287mV
2024-09-08 20:15:43.815 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD4, 0x0C, 0xD9, 0x0C, 0xD7, 0x00, 0xEE]

2024-09-08 20:15:43.815 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD4, 0x0C, 0xD9, 0x0C, 0xD7, 0x00, 0xEE]

2024-09-08 20:15:43.815 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 7. 3284mV
2024-09-08 20:15:43.815 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 8. 3289mV
2024-09-08 20:15:43.816 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 9. 3287mV
2024-09-08 20:15:43.816 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD6, 0x0C, 0xD6, 0x0C, 0xD6, 0x00, 0xED]

2024-09-08 20:15:43.816 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD6, 0x0C, 0xD6, 0x0C, 0xD6, 0x00, 0xED]

2024-09-08 20:15:43.816 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 10. 3286mV
2024-09-08 20:15:43.817 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 11. 3286mV
2024-09-08 20:15:43.817 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 12. 3286mV
2024-09-08 20:15:43.817 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.287V
#3: 3.289V
#4: 3.277V
#5: 3.283V
#6: 3.287V
#7: 3.284V
#8: 3.289V
#9: 3.287V
#10: 3.286V
#11: 3.286V
#12: 3.286V
#13: 3.289V
#14: 3.287V
#15: 3.289V
#16: 3.185V

2024-09-08 20:15:43.818 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xD7, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0xF4]

2024-09-08 20:15:43.818 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xD7, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0xF4]

2024-09-08 20:15:43.818 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 13. 3287mV
2024-09-08 20:15:43.819 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 14. 3289mV
2024-09-08 20:15:43.819 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 4, Cell No: 15. 3288mV
2024-09-08 20:15:43.819 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.287V
#3: 3.289V
#4: 3.277V
#5: 3.283V
#6: 3.287V
#7: 3.284V
#8: 3.289V
#9: 3.287V
#10: 3.286V
#11: 3.286V
#12: 3.286V
#13: 3.287V
#14: 3.289V
#15: 3.288V
#16: 3.185V

2024-09-08 20:15:43.820 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0x73, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0x91]

2024-09-08 20:15:43.820 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x06, 0x0C, 0x73, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0x91]

2024-09-08 20:15:43.820 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 16. 3187mV
2024-09-08 20:15:43.820 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 17. 3289mV
2024-09-08 20:15:43.821 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 5, Cell No: 18. 3288mV
2024-09-08 20:15:43.821 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.287V
#2: 3.287V
#3: 3.289V
#4: 3.277V
#5: 3.283V
#6: 3.287V
#7: 3.284V
#8: 3.289V
#9: 3.287V
#10: 3.286V
#11: 3.286V
#12: 3.286V
#13: 3.287V
#14: 3.289V
#15: 3.288V
#16: 3.187V

2024-09-08 20:15:43.822 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x95 to BMS 1 successfully sent and received!
2024-09-08 20:15:43.822 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-09-08 20:15:43.860 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:43.861 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.862 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x96]

2024-09-08 20:15:43.863 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:43.864 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:43.865 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-09-08 20:15:43.866 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:43.867 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.868 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:43.869 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:43.870 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:43.871 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:43.872 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x9B]

2024-09-08 20:15:43.948 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x96, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83]

2024-09-08 20:15:44.041 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x46, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0x9B]

2024-09-08 20:15:44.041 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x96, 0x08, 0x01, 0x47, 0x46, 0x0C, 0xD9, 0x0C, 0xD8, 0x00, 0x9B]

2024-09-08 20:15:44.042 | INFO | Thread-2 | n.DalyMessageHandler:327 | BMS #1, Frame No.: 1, Sensor No: 1. 31�C
2024-09-08 20:15:44.042 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x96 to BMS 1 successfully sent and received!
2024-09-08 20:15:44.042 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-09-08 20:15:44.080 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:44.081 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:44.082 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x97]

2024-09-08 20:15:44.083 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:44.084 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.085 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.086 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.087 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.088 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.089 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.090 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.091 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.092 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x45]

2024-09-08 20:15:44.172 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84]

2024-09-08 20:15:44.265 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-09-08 20:15:44.265 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x97, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45]

2024-09-08 20:15:44.265 | INFO | Thread-2 | n.DalyMessageHandler:378 | BMS #1, Cell Balance State:
#1: false
#2: false
#3: false
#4: false
#5: false
#6: false
#7: false
#8: false
#9: false
#10: false
#11: false
#12: false
#13: false
#14: false
#15: false
#16: false
CellBalanceActive: false
2024-09-08 20:15:44.266 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x97 to BMS 1 successfully sent and received!
2024-09-08 20:15:44.266 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-09-08 20:15:44.304 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:44.305 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:44.306 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x98]

2024-09-08 20:15:44.307 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:44.308 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.309 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.310 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.311 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.312 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.313 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.314 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.315 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:44.316 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:44.392 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85]

2024-09-08 20:15:44.485 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-09-08 20:15:44.485 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46]

2024-09-08 20:15:44.485 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x98 to BMS 1 successfully sent and received!
2024-09-08 20:15:44.486 | INFO | Thread-2 | verter.BmsToInverter:320 |
BMS SOC V A CellMinV CellMaxV CellDiff
#1 51.2 52.4 -5.7 3.186(#16) 3.289(#15) 0.103

2024-09-08 20:15:44.486 | INFO | Thread-2 | verter.BmsToInverter:390 | BMS alarms:
NONE
2024-09-08 20:15:44.723 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:44.723 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:44.724 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-5.7, SOC=51.1
2024-09-08 20:15:44.726 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:44.726 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:44.726 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:44.726 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:44.727 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:44.727 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0xC7, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:44.727 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:44.727 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.486 | INFO | Thread-2 | verter.BmsToInverter:268 | Reading BMS #1 DALY_RS485 on ttyS0...
2024-09-08 20:15:45.487 | INFO | Thread-2 | stoinverter.core.BMS:130 | ---------------------------------> Thread 19
2024-09-08 20:15:45.487 | DEBUG | Thread-2 | s485.JSerialCommPort:180 | Clearing RX buffers
2024-09-08 20:15:45.487 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D]

2024-09-08 20:15:45.526 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:45.527 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:45.528 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x90]

2024-09-08 20:15:45.529 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:45.530 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:45.531 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:45.532 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:45.533 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:45.534 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x74]

2024-09-08 20:15:45.535 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x9A]

2024-09-08 20:15:45.536 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:45.537 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:45.538 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x5C]

2024-09-08 20:15:45.616 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D]

2024-09-08 20:15:45.709 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x90, 0x08, 0x02, 0x0C, 0x00, 0x00, 0x74, 0x9A, 0x02, 0x00, 0x5C]

2024-09-08 20:15:45.709 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x90, 0x08, 0x02, 0x0C, 0x00, 0x00, 0x74, 0x9A, 0x02, 0x00, 0x5C]

2024-09-08 20:15:45.709 | INFO | Thread-2 | n.DalyMessageHandler:164 | BMS #1: 52.4V, -15.0A, 51.2SOC
2024-09-08 20:15:45.710 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x90 to BMS 1 successfully sent and received!
2024-09-08 20:15:45.710 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-09-08 20:15:45.728 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:45.728 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:45.728 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-15.0, SOC=51.1
2024-09-08 20:15:45.729 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:45.729 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:45.729 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.729 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.730 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0x6A, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.730 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0x6A, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.730 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.730 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:45.748 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:45.749 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:45.750 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x91]

2024-09-08 20:15:45.751 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:45.752 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:45.753 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:45.754 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0E]

2024-09-08 20:15:45.755 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:45.756 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x74]

2024-09-08 20:15:45.757 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:45.758 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:45.759 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:45.760 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xC4]

2024-09-08 20:15:45.836 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E]

2024-09-08 20:15:45.929 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xD9, 0x0E, 0x0C, 0x74, 0x10, 0x02, 0x00, 0xC4]

2024-09-08 20:15:45.930 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x91, 0x08, 0x0C, 0xD9, 0x0E, 0x0C, 0x74, 0x10, 0x02, 0x00, 0xC4]

2024-09-08 20:15:45.930 | INFO | Thread-2 | n.DalyMessageHandler:184 | Battery 2 Min/Max/Diff:
Max Voltage: Cell 14(3289mV)
Min Voltage: Cell 16(3188mV)
Difference: 101mV
2024-09-08 20:15:45.930 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x91 to BMS 1 successfully sent and received!
2024-09-08 20:15:45.930 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-09-08 20:15:45.968 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:45.969 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:45.970 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x92]

2024-09-08 20:15:45.971 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:45.972 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x47]

2024-09-08 20:15:45.973 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:45.974 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x46]

2024-09-08 20:15:45.975 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:45.976 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x74]

2024-09-08 20:15:45.977 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:45.978 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:45.979 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:45.980 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x56]

2024-09-08 20:15:46.060 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x92, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F]

2024-09-08 20:15:46.153 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x01, 0x46, 0x02, 0x74, 0x10, 0x02, 0x00, 0x56]

2024-09-08 20:15:46.154 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x92, 0x08, 0x47, 0x01, 0x46, 0x02, 0x74, 0x10, 0x02, 0x00, 0x56]

2024-09-08 20:15:46.154 | INFO | Thread-2 | n.DalyMessageHandler:204 | Battery 2 Temperature:
Max: 31.0C
Min: 30.0C
Avg: 30.5C
2024-09-08 20:15:46.154 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x92 to BMS 1 successfully sent and received!
2024-09-08 20:15:46.155 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-09-08 20:15:46.194 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.195 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.196 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x93]

2024-09-08 20:15:46.197 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.198 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:46.199 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.200 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.201 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x98]

2024-09-08 20:15:46.202 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.203 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:46.204 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x58]

2024-09-08 20:15:46.205 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.206 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x37]

2024-09-08 20:15:46.284 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]

2024-09-08 20:15:46.377 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0x98, 0x00, 0x02, 0x58, 0x00, 0x37]

2024-09-08 20:15:46.378 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x93, 0x08, 0x02, 0x01, 0x01, 0x98, 0x00, 0x02, 0x58, 0x00, 0x37]

2024-09-08 20:15:46.378 | INFO | Thread-2 | n.DalyMessageHandler:241 | Battery 2 Dis-/Charge data:
Dis-/Charge-State: Discharge
ChargeMOS-State: true
DisChargeMOS-State: true
BMSHeartBeat: 152
2024-09-08 20:15:46.378 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x93 to BMS 1 successfully sent and received!
2024-09-08 20:15:46.379 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-09-08 20:15:46.418 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.419 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.420 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x94]

2024-09-08 20:15:46.421 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.422 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x10]

2024-09-08 20:15:46.423 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:46.424 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.425 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.426 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.427 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.428 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x18]

2024-09-08 20:15:46.429 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.430 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x6C]

2024-09-08 20:15:46.508 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81]

2024-09-08 20:15:46.601 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x6C]

2024-09-08 20:15:46.602 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x94, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x6C]

2024-09-08 20:15:46.602 | WARN | Thread-2 | alyBmsRS485Processor:150 | Command 0x94 to BMS 1 successfully sent and received!
2024-09-08 20:15:46.602 | DEBUG | Thread-2 | s485.JSerialCommPort:159 | Send: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-09-08 20:15:46.640 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.641 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.642 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.643 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.644 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.645 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.646 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD5]

2024-09-08 20:15:46.647 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.648 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:46.649 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.650 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:46.651 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.652 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xED]

2024-09-08 20:15:46.657 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.659 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.660 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.661 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.662 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x02]

2024-09-08 20:15:46.663 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.664 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD3]

2024-09-08 20:15:46.665 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.666 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.667 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.668 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD4]

2024-09-08 20:15:46.669 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.670 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xE7]

2024-09-08 20:15:46.675 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.677 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.678 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.679 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.680 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x03]

2024-09-08 20:15:46.681 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.682 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD3]

2024-09-08 20:15:46.683 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.684 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.685 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.686 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.687 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.688 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xEB]

2024-09-08 20:15:46.694 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.695 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.696 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.697 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.698 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x04]

2024-09-08 20:15:46.699 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.700 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD8]

2024-09-08 20:15:46.701 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.702 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD9]

2024-09-08 20:15:46.703 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.704 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD5]

2024-09-08 20:15:46.705 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.706 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF1]

2024-09-08 20:15:46.711 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.712 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.714 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.715 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.716 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x05]

2024-09-08 20:15:46.717 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.718 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.719 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.720 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.721 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.722 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD6]

2024-09-08 20:15:46.723 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.724 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xF0]

2024-09-08 20:15:46.730 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xA5]

2024-09-08 20:15:46.731 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x01]

2024-09-08 20:15:46.731 | INFO | Thread-5 | verter.BmsToInverter:294 | Sending to inverter SMA_SI_CAN on can0...
2024-09-08 20:15:46.731 | DEBUG | Thread-5 | verter.core.Inverter:152 | Inverter received: Buffer (HEX): [null]

2024-09-08 20:15:46.731 | INFO | Thread-5 | InverterCANProcessor:66 | Sending SMA frame: Batt(V)=52.4, Batt(A)=-15.0, SOC=51.1
2024-09-08 20:15:46.732 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:46.732 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x95]

2024-09-08 20:15:46.732 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x51, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x02, 0xA0, 0xF6, 0xA0, 0xF6, 0x78, 0x01]

2024-09-08 20:15:46.732 | DEBUG | Thread-2 | alyBmsRS485Processor:67 | SEND: Buffer (HEX): [0xA5, 0x40, 0x95, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82]

2024-09-08 20:15:46.732 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.733 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x55, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.733 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x08]

2024-09-08 20:15:46.733 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0x6A, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.733 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x56, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x78, 0x14, 0x6A, 0xFF, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.733 | DEBUG | Thread-5 | verter.core.Inverter:173 | Inverter send: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.734 | DEBUG | Thread-5 | ocol.can.JavaCANPort:113 | CAN frame sending: Buffer (HEX): [0x59, 0x03, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

2024-09-08 20:15:46.734 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x06]

2024-09-08 20:15:46.735 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.736 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x74]

2024-09-08 20:15:46.737 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.738 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD7]

2024-09-08 20:15:46.739 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x0C]

2024-09-08 20:15:46.740 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0xD6]

2024-09-08 20:15:46.741 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x00]

2024-09-08 20:15:46.742 | DEBUG | Thread-4 | s485.JSerialCommPort:200 | Received: Buffer (HEX): [0x8E]

2024-09-08 20:15:46.825 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD5, 0x0C, 0xD8, 0x0C, 0xD8, 0x00, 0xED]

2024-09-08 20:15:46.825 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x01, 0x0C, 0xD5, 0x0C, 0xD8, 0x0C, 0xD8, 0x00, 0xED]

2024-09-08 20:15:46.825 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 1. 3285mV
2024-09-08 20:15:46.825 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 2. 3288mV
2024-09-08 20:15:46.825 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 0, Cell No: 3. 3288mV
2024-09-08 20:15:46.826 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xD3, 0x0C, 0xD7, 0x0C, 0xD4, 0x00, 0xE7]

2024-09-08 20:15:46.826 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x02, 0x0C, 0xD3, 0x0C, 0xD7, 0x0C, 0xD4, 0x00, 0xE7]

2024-09-08 20:15:46.826 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 4. 3283mV
2024-09-08 20:15:46.826 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 5. 3287mV
2024-09-08 20:15:46.826 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 1, Cell No: 6. 3284mV
2024-09-08 20:15:46.826 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD3, 0x0C, 0xD7, 0x0C, 0xD7, 0x00, 0xEB]

2024-09-08 20:15:46.827 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x03, 0x0C, 0xD3, 0x0C, 0xD7, 0x0C, 0xD7, 0x00, 0xEB]

2024-09-08 20:15:46.827 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 7. 3283mV
2024-09-08 20:15:46.827 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 8. 3287mV
2024-09-08 20:15:46.827 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 2, Cell No: 9. 3287mV
2024-09-08 20:15:46.827 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD8, 0x0C, 0xD9, 0x0C, 0xD5, 0x00, 0xF1]

2024-09-08 20:15:46.827 | DEBUG | Thread-2 | alyBmsRS485Processor:85 | RECEIVED: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x04, 0x0C, 0xD8, 0x0C, 0xD9, 0x0C, 0xD5, 0x00, 0xF1]

2024-09-08 20:15:46.827 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 10. 3288mV
2024-09-08 20:15:46.828 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 11. 3289mV
2024-09-08 20:15:46.828 | DEBUG | Thread-2 | n.DalyMessageHandler:289 | BMS #1, Frame No.: 3, Cell No: 12. 3285mV
2024-09-08 20:15:46.828 | INFO | Thread-2 | n.DalyMessageHandler:307 | Battery #2 voltages:
#1: 3.285V
#2: 3.288V
#3: 3.288V
#4: 3.283V
#5: 3.287V
#6: 3.284V
#7: 3.283V
#8: 3.287V
#9: 3.287V
#10: 3.288V
#11: 3.289V
#12: 3.285V
#13: 3.287V
#14: 3.289V
#15: 3.288V
#16: 3.187V

2024-09-08 20:15:46.828 | DEBUG | Thread-2 | s485.JSerialCommPort:149 | Next frame: Buffer (HEX): [0xA5, 0x01, 0x95, 0x08, 0x05, 0x0C, 0xD

@ironcowboysolar
Copy link
Author

In an above comment I posted a good chunk of a log. Aside from a HEX [null] in the logs every now and then, I don't see any indicator what's causing my problem. Every time I try to connect the rPi to the ComSyncIn port, nothing happens, and after 60 seconds I get ExtBMSTimeout error.

I've done the following:

Tested continuity from the CAN H,L wires coming from the rPi to the RJ45 that plugs into the inverter. Tried flipping H and L. Tried instead using the SYNC_H and SYNC_L pins on the RJ45 that connects to the inverter.

I completely deleted all of the files in my configurator folder, then I redownloaded the jar and set it up as a fresh install.

I also connected the can0 ouput on the rPi to a can tool that I use to read can data for fortress batteries on my laptop. I was able to verify that it is sending can data and was able to send from the rPi and receive on my laptop, although I cannot see what the data it's sending says.

I've also updated to the latest firmware on the Sunny Island inverter.

@ai-republic
Copy link
Owner

ai-republic commented Sep 11, 2024

So I see nothing wrong in the logs and if the data is being sent via can0 then the inverter should be getting the BMS data. I guess you configured the SI to Lithium battery?
And the SI has the CAN terminating resistor RJ45 plugged in the second SYNC port?
image
You might need to terminate also the SYNC_H and SYNC_L on the RPi side of the cable.
So the SMA terminating resistor will terminate both (CAN and SYNC) on the SI, but the SYNC_H and SYNC_L wires of the RJ45 going from SI to RPi are not terminated on the loose end. The CAN_H and CAN_L should be terminated by the CAN hat on the RPi.

@ironcowboysolar
Copy link
Author

No matter what I do, I cannot get the SMA to do anything with the CAN data. I'm very familiar with SMA inverters, down to the FET's and other components.

I have the inverter set to LI_Ion_ExtBMS. I have a special cable I made with a twisted pair landing on the CAN_H and CAN_L pins, and another twisted pair landing on the SYNC_H and SYNC_L pins - also with a GND on the ComSyncIn port that connects to my rPi.

The CAN_H, CAN_L, and GND wires land on the rPi in the corresponding terminals, and as per your last message, there is a 120 ohm resistor soldered to the SYNC_H and SYNC_L wires on the rPi side of the cable.

I have a fresh install of the latest configurator. Upon initializing start.sh, I can see all of the data from the BMS being received by the Raspberry Pi, I can see it sending SMA frames, but when I turn the SMA on, the SOC says 0%, and there is no temperature information or anything else. After about a minute I receive an ExtBMS_Timeout error and the system shuts down.

I've tried literally everything such as: the latest SMA firmware, unplugging Slave 1 inverter and terminating the port that it was connected to. I've tried flipping CAN_H and CAN_L. I've tried removing the on board terminator jumpers on the CAN hat.

Since then, I've built a separate 16S battery with a Daly BMS I ordered straight from them with CAN enabled, which is connected to a separate inverter (two separate projects). I set up a separate rPi with the DALY_CAN binding for this battery and just like the DALY_RS485 battery, I can see it reading data from the BMS, I can see it sending CAN frames to the SMA, but in both situations, the SMA inverters act the same way. No data showing up from the BMS and an error popping up after a minute or so.

On both projects, I've connected CAN port designated for sending to a CAN reader and confirmed that the rPi is sending CAN data at a baud rate of 500k. After confirming a data stream, I've wired a RJ45 connector on the end of it and plugged it directly into the ComSyncIn port.

Is there something I'm missing? Can you please share exactly what you did to make your Daly BMS communicate with the Sunny Island? Are you using a different firmware?

I've learned so much about communication protocols, raspbian and lots of useful things, but I'm still taking an L on the end result.

Please help.

@kommando828
Copy link

I am successfully running a Master/Slave setup of two SI5048's set to lithium connected to a JK PB BMS via canbus using the SMA canbus protocol. This is the protocol the JK references as the SMA it uses but I have also set it to Pylontech and that works too.
SMA CAN protocol.pdf

@ironcowboysolar
Copy link
Author

I am successfully running a Master/Slave setup of two SI5048's set to lithium connected to a JK PB BMS via canbus using the SMA canbus protocol. This is the protocol the JK references as the SMA it uses but I have also set it to Pylontech and that works too. SMA CAN protocol.pdf

If you look at my log above vs the SMA protocol in your link, all the necessary data that the SMA requires is represented like this [ 0x123 ] with three digits after the X but the data my rPi is sending has only two digits or characters after the X, for example [ 0x12 ]

What do your debug logs look like when the system is running? Just for what it's worth, I used the SMA can protocol to set up my system, but it's still yet to work.

@ai-republic
Copy link
Owner

I am successfully running a Master/Slave setup of two SI5048's set to lithium connected to a JK PB BMS via canbus using the SMA canbus protocol. This is the protocol the JK references as the SMA it uses but I have also set it to Pylontech and that works too. SMA CAN protocol.pdf

Yes, that is the protocol specification that is implemented

@ai-republic
Copy link
Owner

@ironcowboysolar I will try to implement the non-mandantory sections of the SMA protocol to see if SMA also treats some of them as mandantory (just to prevent people using cheap battery systems 😉 )

@kommando828
Copy link

The protocol in the PDF I posted is for the SI X.0H-11, however my SI5048 running SI6048US firmware 7.304 and the JK version works as does the JK version of Pylontech, Goodwe and Deye. If your SI is a -12 or -13 then maybe they changed the protocol, which would be odd as Pylontech batteries are compatible with all Gens of SI but stranger things have happened.

What I have noticed is that taking out the terminal resistor from ComSyncOut kills canbus comms dead, so maybe the RJ45 plug with resistor you have in your last SI RJ45 ComSyncOut socket is not working.

@ai-republic
Copy link
Owner

The protocol in the PDF I posted is for the SI X.0H-11, however my SI5048 running SI6048US firmware 7.304 and the JK version works as does the JK version of Pylontech, Goodwe and Deye. If your SI is a -12 or -13 then maybe they changed the protocol, which would be odd as Pylontech batteries are compatible with all Gens of SI but stranger things have happened.

What I have noticed is that taking out the terminal resistor from ComSyncOut kills canbus comms dead, so maybe the RJ45 plug with resistor you have in your last SI RJ45 ComSyncOut socket is not working.

No, the protocol is still the same. The Pylontech protocol is similar but not quite the same as the SMA. There is no option to select a protocol version in the SI and the documentation states explicitly that it only works with this protocol (that doesn't mean that Pylon won't work if its not to strict)

Yes, please double check all wirings and terminations

@ironcowboysolar
Copy link
Author

Just to update you both, on both of these projects (DalyRS485 to SMA && DalyCAN to SMA) the Sunny Island inverters are updated to the latest firmware.

What I have noticed is that taking out the terminal resistor from ComSyncOut kills canbus comms dead, so maybe the RJ45 plug with resistor you have in your last SI RJ45 ComSyncOut socket is not working.

I would say maybe that this could be true but I'm skeptical that this is the case for both projects.

@ironcowboysolar I will try to implement the non-mandantory sections of the SMA protocol to see if SMA also treats some of them as mandantory (just to prevent people using cheap battery systems 😉 )

I really appreciate this. I'll definitely pay you for your time. I'm thinking about this and it can only be one of a few issues:

Option 1: The rPi is receiving and sending data as intended and there's an issue with my wiring in between the rPi and the SMA. I would say that this is unlikely since the same issue is happening on both projects, but it could be possible if I am missing a step.

Option 2: The wiring is correct and there's an issue with the software or the data being sent, such as what @ai-republic suggested would possibly be fixed by adding the "non essential values." The big question for me regarding this possibility is what is different about my DALY BMS or SMA inverters that would make the application work normally for you but not for me? If all the conditions are the same and it's working for you, that would be evidence that the issue actually lies with my work.

Option 3: There could be something wrong with my install at the base level, such as the location of the file on my rPi. I do know that whenever I run the configurator file from an empty folder and select clean install, it unpacks all of the files in that folder. For some reason, after I do a clean install, even with permissions set, start.sh does not run unless I edit the file and add the specific paths to the files mentioned in the script. I have to add "/home/pi/configurator/" to each filename in the shell script. After I do that and save, the script works as normal. I believe this might have something to do with where the configurator folder is stored on the rPi drive. Despite this small workaround, by looking at the logs, the application appears to work as its supposed to, but in the process of troubleshooting it may be worth paying attention to.

@ai-republic
Copy link
Owner

Hi @ironcowboysolar,
I've think I found the issue!!! The SMA uses CAN 2.0A 11-bit can-id and my SMA binding was sending it with the 29-bit CAN 2.0B can-id.
I think that will fix your issue, but I will also implement the other CAN commands for completeness 😄

@ai-republic
Copy link
Owner

Right, I added the manufacturer code and battery type and -capacity settings also. Let me know how it goes 😄

@ironcowboysolar
Copy link
Author

Hi @ironcowboysolar, I've think I found the issue!!! The SMA uses CAN 2.0A 11-bit can-id and my SMA binding was sending it with the 29-bit CAN 2.0B can-id. I think that will fix your issue, but I will also implement the other CAN commands for completeness 😄

Freaking sweet! Is it ready to download and install?

Thanks for your continued support.

@ai-republic
Copy link
Owner

ai-republic commented Oct 6, 2024

@ironcowboysolar yes. You'll need to get the latest Configurator application and do a clean install. If you choose an existing installation folder it'll load your existing configuration file config.properties. Just delete the libs folder prior to a Clean install just to be sure you have a fresh installation (actually I should integrate that in the Configurator app 😉)

@ai-republic
Copy link
Owner

@ironcowboysolar did you get a chance to test everything? How's everything working out?

@ironcowboysolar
Copy link
Author

I was able to get the app to work enough so that the inverter stays on. Felt great. There's a few bugs that need to be worked out but for the most part at least its running. Thanks for your help!

A few things I noticed that were strange: It doesn't let me manually change the battery charge values. Does the inverter get this information from the BMS? Because I never set voltages for the Boost, Absorb, etc charges on the BMS, only low battery disconnect and high battery disconnect. The default charging settings on the SMA are based for a (24) cell lead acid battery, so you have to take the desired charge voltage voltage and divide it by 24 to be able to input the parameter on the SMA, the default setting is @2.4v per cell (57.6v) and I need to lower that charging value to about 55.4v @2.3v per cell because 57.6v is the cutoff voltage on the BMS. When I try to change the setting it defaults back to 2.4v immediately after changing it.

What happens is when the inverters charge the battery, the voltage quickly climbs to 56 and then past 57, triggering the cutoff on the BMS.

The second issue may or may not be related to your app. I have an AC coupled inverter connected to the SMA which has been working in open loop mode (VRLA), but since I've had it running on closed loop, the inverter frequency seems to stay shifted up which is keeping the AC coupled inverter throttled down. In a nutshell in closed loop the Sunny Island inverter is not allowing the AC coupled inverters to send it power by keeping the frequency above a certain level. Even at 30-40% SOC the GT inverter never reaches a frequency low enough to be allowed to activate.

I'm going out there today to see if the AC coupled inverter still works if I put it back in closed loop and I'm going to play with the settings on the BMS to see if I can get the charging settings to work better.

Thanks for all your help. Interested to hear any tips or tricks you used to get your system dialed in.

@kommando828
Copy link

kommando828 commented Oct 31, 2024

With the SI set to Lithium and successfully receiving Canbus from a BMS then the SI only takes the target V to charge up to from the BMS, you may be able to change it as I can on my SI5048 but 5 mins later it is back to the BMS target V. There is one wrinkle to this, when the SI is off grid then as the Frequency Shifting to curtail the PV output lags then the target V is exceeded so SMA reduce the SI Target V by 1V when the SI is off grid, when the SI is on grid then excess can be sent to the grid so the 1V is added back.

So as I run 100% off grid my BMS target V for a 48V nominal Lithium is set to 56,2V and the SI displays its target V as 55.2V.

SI SOH is always 100%, even if the BMS reports 100% SOC at a low V the SI should still charge to the Target V.

So instead of a 24 cell V on Boost, Full and Float the SI works to this parameter

Parameter BatChrgVtgMan 55.2V

There is also a rare bug whereby in Lithium mode the SI frequency goes out of control and shuts the PV inverters down before the Target V. My setup has never exhibited this at all, only been told of one instance. Only fix so far is to revert to SI lead acid and go open loop comms.

@ironcowboysolar
Copy link
Author

With the SI set to Lithium and successfully receiving Canbus from a BMS then the SI only takes the target V to charge up to from the BMS, you may be able to change it as I can on my SI5048 but 5 mins later it is back to the BMS target V. There is one wrinkle to this, when the SI is off grid then as the Frequency Shifting to curtail the PV output lags then the target V is exceeded so SMA reduce the SI Target V by 1V when the SI is off grid, when the SI is on grid then excess can be sent to the grid so the 1V is added back.

So as I run 100% off grid my BMS target V for a 48V nominal Lithium is set to 56,2V and the SI displays its target V as 55.2V.

SI SOH is always 100%, even if the BMS reports 100% SOC at a low V the SI should still charge to the Target V.

So instead of a 24 cell V on Boost, Full and Float the SI works to this parameter

Parameter BatChrgVtgMan 55.2V

There is also a rare bug whereby in Lithium mode the SI frequency goes out of control and shuts the PV inverters down before the Target V. My setup has never exhibited this at all, only been told of one instance. Only fix so far is to revert to SI lead acid and go open loop comms.

I get that there would be some discrepancies with the frequency, but when I was running off of closed loop I looked at the screen on my Sunny Boy inverter and it said the frequency was at 69 hz with the battery at 30%. I’m not sure why the SI would respond in that way but due to being AC coupled, the system is still non-op in closed loop.

I’m very happy to have made progress though.

@kommando828
Copy link

Until there is a fix for this Frequency shifting bug then stay on open loop. If you tell the SI the battery is 46V initially then you go lower than 2.3V per cell so the SI does not go too high on V.

There is a ticket into SMA on the Freq jump on lithium and also user testing. He has a number of SI's and only 2, which were linked as master slave, are affected, he has others that work and my master/slave works too.

Which SI do you have, the faulty pair are SI6048US's.

@kommando828
Copy link

The high frequency bug fix on an SI6048US is to completely turn it off, remove all power connections using the breakers and wait at least 30mins. This discharges the capacitors so the boards are no longer powered and the temporary memory chips are wiped clean. You can then reboot and the memory is refreshed with good settings from the longer term memory chip. This needs to be done simultaneously on all connected SI's just in case one of the slaves is not updated properly from the master on reboot. As the capacitors will be empty you will need to set up a scheme to cope with the inrush current if the BMS does not recognise it as being different from an accidental short and shutdown.

@ai-republic
Copy link
Owner

Hi guys,
great to have this discussion - hope you can help each other out on the configuration side. I have a SI 8.0H-13 (european version) but currently not in use. I upgraded to a 16kW Deye as I didn't want to spent more on a second SI + inverter.

@ironcowboysolar if you want to manipulate the data from the BMS, i.e. max voltage limit, you could also try to use the ManipulateBatteryPackDataPlugin inverter plugin.

Happy to hear the app is working well for you 😄

@ironcowboysolar
Copy link
Author

@ai-republic Did your Deye inverter get locked recently? I've seen some sources say that non Sol-Ark Deye inverters have been remotely deactivated by the company in China because selling them on the US market in competition with Sol-Ark is a breach of contract. If it hasn't been bricked, be careful connecting it to the internet.

On a separate note, I'm having a strange issue and I would like to recruit your help, I'm willing to send a donation that is equivalent to your normal rate. As detailed in the comment a few weeks ago, in Li_Ion_EXT_BMS mode, the frequency walks all the way up to 70hz, which is actually high enough to damage any connected electronic devices. I've done some further troubleshooting, and even when the SMA is in VRLA mode (open loop), if I plug in the Raspbery Pi with the app running the frequency begins the walk up on the inverter. When this happens, it will stay at 70hz, even if I unplug the Raspberry Pi. After this, even with the Pi disconnected, if I put the inverter into stand-by and restart it, it will not fix the frequency issue. The only way to correct the issue is for me to turn the master inverter completely off and then turn it back on without the Pi connected.

This tells me that there's something in the CAN data that causes the software on the inverter to react this way, even if the inverter isn't in closed loop mode.

Which SI do you have, the faulty pair are SI6048US's.

@kommando828 These are the SI6048's

The high frequency bug fix on an SI6048US is to completely turn it off, remove all power connections using the breakers and wait at least 30mins. This discharges the capacitors so the boards are no longer powered and the temporary memory chips are wiped clean. You can then reboot and the memory is refreshed with good settings from the longer term memory chip. This needs to be done simultaneously on all connected SI's just in case one of the slaves is not updated properly from the master on reboot. As the capacitors will be empty you will need to set up a scheme to cope with the inrush current if the BMS does not recognise it as being different from an accidental short and shutdown.

@kommando828 Tried this and it didn't correct the issue. The frequency walk begins as soon as the RPi with the CAN data is connected in ANY battery mode.

I will attach a few photos and videos that show the issue.

@ironcowboysolar
Copy link
Author

Here’s a video showing what happens. It does this in open loop mode and due to it being required to be plugged in to operate in ExtBMS mode, freq stays at 70hz any time the inverter is running.

My.Movie.1-360p30.mov

@kommando828
Copy link

That looks similar to the other faulty SI6048, trouble is the turning off, waiting for total power down and then turning back on was the only fix tried and it worked first time. So any further possible fixes are untried, untested and so potentially could make the situation worse. If you are ok with that risk then this is how I would proceed.

First I would make sure the SI is on the latest firmware and upgrade if necessary.

Latest is FW 1 7.304 FW2 7.300

Second I would redo the turning off of the SI but leave it turned off for a lot longer ie several hours. It worked on one machine so its worth trying again just in case a residual charge kept the setting unchanged.

If its still not working then these are the untried untested items to try. Note 1 relies on you having one good SI, if you don't have access to a working SI then you cannot try this one out. No point in me sending my version as mine are based on 230v 50hz and would mess your SI up, you need a set from a fellow SI6048US user already on the latest firmware but not necessarily on Lithium.

The fault is likely one of these three.

A. Firmware corruption on the SI chip.

B. Parameters gone bad

C. Hardware issue

  1. If you have a good supply of SD cards you can try the following to test B. note that for now do not connect any good SI's with bad SI's as a bad master will potentially corrupt currently good slaves.

On your good master, use the menu to copy the parameters to the SD card using 510.02 ParaSto and copy the parameters to set 1 and set 2.

Take the SD card out and make a copy, put the original back into the good SI..

Now separately without connection to any good SI's fire up the defective SI and set it up as your good SI with the copied SD card in the slot, then as soon as its fired up go into 510.02 and load in from the SD card either set 1 or 2.

If that fixes the issue then it was a parameter issue. If not then it's back to 1 or 3.

To test A then you need to reload the firmware. This is the procedure for going back to a previous firmware, my guess is it will also work to reload the current firmware completely and hopefully overwrite any corruption.

Description
The article describes the firmware update for Sunny Island SI5048.
Note: An update / downgrade always results in the loss of all parameter settings.

Procedure
Save the Update.bin file on the SD card of the Sunny Island.
Switch off (disconnect DC) the Sunny Island and wait approx. 30 seconds (until the display is completely dark).
Insert the SD card into the Sunny Island.
Start the Sunny Island (connect DC).
When starting, press and hold the down arrow key.
As soon as "Update 1/2 Erase" appears on the display, the down arrow key can be released.
When the Sunny Island goes into standby mode, the update has been carried out.
Afterward, check the parameters #312_02 and #312_08 (must correspond to Update.bin).
The Sunny Island can be started again.

Then setup the SI and test.

If that does not work then it makes 3 most likely, what component it could be is beyond my knowledge, it would have to be a component that works in lead acid but not in Lithium.

@ai-republic
Copy link
Owner

@ironcowboysolar my Deye didn't get locked but then again I'm not residing in the US.
I had/have (not currently in use) a SI 8.0H-13 but never observed this behavior, especially that the frequency goes up above 61Hz. I had mine configured for to use the frequency shifting to regulate the Sunny Boy to lower/cut off its output.
Have you tried configuring the max Hz for the frequency shifting? Maybe it think the batteries are fully charge and trying to tell the PV inverter to lower its DC output. I'm not sure what the default max setting is on your SI6048US inverters but be sure to check those.
Otherwise I would suggest to try @kommando828 solutions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants