ai-republic / bms-to-inverter

Use, monitor and control any battery brand with any inverter! Application to read and monitor data from BMSes and write data to an inverter using any protocol (e.g. UART, RS485, ModBus or CAN)
https://github.com/ai-republic/bms-to-inverter
Other
76 stars 10 forks source link

Samsung battery fails test #63

Open jezza61 opened 1 week ago

jezza61 commented 1 week ago

Hi, I now have the Deye inverter connected to the Samung battery. The Raspberry PI sends the following data: can1 00000351 [8] 45 02 D0 02 B0 0E C0 01 can1 00000355 [8] 5F 00 64 00 00 00 00 00 can1 00000356 [8] 26 16 EF FF 00 00 00 00 can1 0000035E [8] 00 00 00 00 00 00 00 00 can1 0000035E [8] 00 00 00 00 00 00 00 00 can1 00000359 [8] 00 00 00 00 00 00 00 00 However Deye will not even look at it. Also solar assistant fails to see it as valid data. Is anything missing from it? Best Regards,

Jerry

jezza61 commented 1 week ago

I have done some more testing. The Raspberry is sending data to can IDs with id padded with 0 as seen above. This is apparently not acceptable to Deye. When I send the same data but with canid only 351, 355, 356 and so on, it works and Deye sends a message 305, with all zero data. Second issue in the web page the voltage is shown with % and not V. Also the batter current seems to be dived by extra 10, as when the battery reports 31A the web page shows 3.1A. And the 35C is not present, right? This is charge enable, discharge enable, force charge values, this I don't believe is reported by Samsung BMS. Is there any way of dropping the charge voltage of 58.1 down to 56.6 to reduce the risk of overcharge ?

Best Regards,

Jerry

jezza61 commented 1 week ago

Also I used this document: https://www.studocu.com/row/document/%E5%8D%8E%E5%8D%97%E7%90%86%E5%B7%A5%E5%A4%A7%E5%AD%A6/physical-chemistry/can-bus-protocol-%E5%BE%B7%E4%B8%9Adeye-low-voltage/46210190

And this data appears to match the Deye inverter stuff.

jezza61 commented 1 week ago

And I believe that the system current is FFFF - 2 byte data from ID 500 from Samsung. First 2 bytes show system voltage in 0.01 units, second 2 bytes show system current, but it appears that you have to deduct these bytes from FFFF and then it gives you the correct value, or at least it appears to do that.

jezza61 commented 1 week ago

Correction, CAN messages do have the correct System current value. RS485 also has the same value. Somehow the software does not reflect the correct number.

ai-republic commented 3 days ago

Hi @jezza61, sorry for the late reply I'm currently very busy - also at the weekends 😒 What I gather from your findings is that maybe the Deye inverter uses CAN 2.0A with standard length instead of CAN2.0B with extended can-id length. I will see what I can find out. Thanks for the web-page issues, I will have a look at the values and also the %.

ai-republic commented 3 days ago

Right, I fixed all your found issues :) It was correct that Deye uses t he standard CAN 2.0A can-id and not the extended. I also checked the system current and fixed that too as well as the voltage being shown with the percent sign. Please do a Clean install with the Configurator application and let me know if its all working now 😄