Daly BMS - CAN connection #561
Replies: 14 comments 3 replies
-
Hm looks like CAN on daly is a gamble as noone really knows if they have CAN or not. Read from some guys, that only RS485 is available but not can bus, although it is printed on the case and also marked on the cables... |
Beta Was this translation helpful? Give feedback.
-
@SamuelBrucksch Yes, some Daly BMS also have CAN-Bus. Before I decided for the RS485 way and driver of Louisvdw, I already connected the Daly CAN Port with RJ45 to the Vicron BMS CAN, because Daly tld me the BMS can communicate with Victron. (I think this was fake news). Due that communication packages were counted, I know that the CAN-Connection was working, but the Victron did not recognizied the Daly BMS on CAN due to missing driver. Over all, I was fighting with a lot of issues with Daly BMS, and sooner or later I will follow the recomendation of Louisvdw and use any other BMS but not the Daly anymore, to get a better performance of SOC calculation and cell management. I think a JK BMS with active balancer will be a good substitution. |
Beta Was this translation helpful? Give feedback.
-
How did you know CAN was working if you could not see anything except counting packages? As soon as you connect, Venus OS sends out messages on CAN that fit to the selected CAN profile. Those should be counted on TX. Did you also see messages on RX? Venus OS has some CAN CLI tools like cansend, candump that you can use to send messages and see the traffic. When I tried it, i could only see the outgoing messages but could not get any reply from the Daly even when I sent requests to it via cansend. Also how did you do the cabling? Maybe there is something wrong at my setup. I chose pins 3,7,8 as somewhere described for VE.Can. |
Beta Was this translation helpful? Give feedback.
-
Ok can now connect to Daly BMS via canbus. Here a sample for cells voltage:
Can needs to be set to 250000, requests look like this:
So the request ID is 18 + Data ID + BMS ID (01) + Uplink ID (40) |
Beta Was this translation helpful? Give feedback.
-
Looking good, first try with python-can lib:
All data requested is from can bus |
Beta Was this translation helpful? Give feedback.
-
It's fully working now. Needs some cleanup, but will create a PR soon, so we can check if everything is ok. Adoption of Daly to Daly CAN was actually quite easy as the protocol behind is still the same. Will test over night to see if it is stable enough and the voltages are reported more correctly. |
Beta Was this translation helpful? Give feedback.
-
Wow, this would really be great if it can be added to the driver, to work with the CAN-Bus. |
Beta Was this translation helpful? Give feedback.
-
PR with working code: #169 |
Beta Was this translation helpful? Give feedback.
-
Cell voltages from last 6h: |
Beta Was this translation helpful? Give feedback.
-
@SamuelBrucksch That looks good! What are you using to generate the cell voltages graph? |
Beta Was this translation helpful? Give feedback.
-
I use openhab which has Grafana integrated for visualization of the values that openhab gets. Requires influxdb additionally to that: |
Beta Was this translation helpful? Give feedback.
-
Thanks @SamuelBrucksch, it gave me a head start. Found the Victron Grafana docker and it was super simple to install that and get the stats. https://github.com/victronenergy/venus-docker-grafana Thanks again @Louisvdw for this awesome driver! |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
You need two terminals to test if the CAN connection works. One for candump and one for cansend. Your cansend snippet does not show any Daly messages. Also you need to execute the dbus-serialbattery code manually, as there is no CAN auto detection yet. |
Beta Was this translation helpful? Give feedback.
-
Hi,
Some of the Daly BMS support a connection via can bus. That should be considerably faster than the serial connection. The protocol is also open.
So i was wondering if - technically - this could be implemented into this library as well. I could work on it and try it myself as I have such a Daly BMS with can bus, i just want to know if there could be any problems I did not see yet.
Each BMS has its own implementation of the communication (protocol), so a new BMS type Daly_CAN could be added that gets the data via can bus instead of serial, however some logic needs to detect/search for the can bus too, right?
As the cerbo for example already has VE.Bus hardware, do you by chance know, if that could be used directly? Then a RJ45 to Daly cable would be enough and I could start working on this...
Beta Was this translation helpful? Give feedback.
All reactions