Open kevstone122 opened 1 year ago
Hello Kevin,
while I doubt this can be improved, we can surely try to make it better. The first most important thing to ensure you have a galvanic isolation between your venus/cerbo and your Chargery. At the moment, I am using the Chargery 16BMS-P as the 16BMS-T have no accuracye voltage readings for me.
My Chargery hangs from time to time as well, maybe 2-3x within a year. I doubt a reconnect within the script will help to avoid this, as a reconnect of the USB port will not solve this issue. The only good thing is, that the Chargery is still working even, the rs232 port does not submit the values.
Currently, I would think there is no solution for this. Sometimes, the rs232 interface of the Chargery is just stucked. The galvanic isolation will helps a lot, but I will look into serial reconnection within the driver as well.
Hello Tobi,
i am really happy to got an answer from you! My System has an Chargery 24S and i use it with 17 cells. My mothers house has standard 16S system. Both have direct in the USB Slot from the cerbo an Isolation USB Adapter. In this adapter the RS232 is connected to the SUB D. After the SUB D i already have an Opto-Coupler part and after this there is the Chargery. Like you wrote, the isolation is really important and it is already improved a lot, but still every month it happen.
Okay i never thought, that chargery is the problem. From my point of view it happen because of cerbo. A short milli second the USB has problem and after this it cannot start again. Chargery is still sending data. I just restart the Cerbo always. BMS is 1 year running without reboot!
I found out, that the python script will close successfully with the disconnect and then if it will connect again, there is a message like "device already registered at D-bus". So i think the only problem is the D-bus where we need to delete the chargery BMS...
If chargery will not send any data, then also the script should not get stock. So maybe we can find these situations and add it into the python, then the script can handle it somehow and will change into a waiting mode for 5 sec and then start again to collect data.
Thanks for comunication, where i should donate you for this help. I loove the victron system, but with this blocking every month its not really nice if you want to do it also at friends.
Best regards Kevin
Additional: If i take out the Serial Adaoter from the USB Slot of the cerbo and connect it back, it will not work.. So this is the main issue. If this will work (easy to test), then it will maybe also work with the short interrupts and the usb get registered automatic again.
There is also öike an STOP script which is empty. Maybe we should use this to cancel the Dbus registration. Then with reconnect of USB it can register again with the same name.
Best regards Kevin
Hello Tobi,
where can i donate for your help?
Thank you a lot! Best regards Kevin
Thank you for your valuable feedback! This is really much appreciated. We do think you have "forced" a new error while connecting/disconnecting the USB slot. And yes, there was an error that the driver does not close properly on an exception. The driver hangs forever - until reboot. By now, we have uploaded a new version which ensures to exit properly on exceptions. The Venus OS will restart the driver automatically some minutes later again. This is an improvement, but unfortunately we do still think this will not solve all problems with the Chargery hangups. However, it would be great if you check the new version and report back if it is improve your experience.
Hello Tobi!
WOOOW i am really happy to got an answer. First: THANK YOU to try at least to improve something. I really appreciate that! THANK YOU!
Okay then we know now also, that the script really got hang because of disconnect. I think it would therefore also help hopefully for the Chargery hangups. I will try to install it immediately. Thank you!
Best regards Kevin
One more Question. What means exactly "The Venus OS will restart the driver automatically some minutes later again"? I need to adjust this time in my time-stamp - checks. So Immediately if the time stamp is frozen, it will set the charging to 0 Ampere, but alarm only create after X Minutes. Is it not possible to do it within 10 sec. or something like this? According the changes i can see the "try" and "exeption" but no time settings.
Thank you for the information!
Still i don't know the donate link?
You can also send me Paypal. If i tell you something, I am behind my words.. I keep my promise!
This looks absolutely perfect. There is coming the message "Nicht angeschlossen" which means "disconnected" and after i connect it back, i have in 2sec the values and so it's online back.
Crazy cool.
Also the message is coming with internal fault:
I have one more idea for this driver: You have also the timestamp inside the script. So is it possible to safe the last time stamp in the RAM and then compare it with the actual one. If they have more then 10sec difference, i would also do something like reboot of the driver. Good idea? Thank you!
Hello Tobi,
Now the timestamp get checked in NodeRed and via SSH from NodeRed i can also kill the driver. So also if the timestamp is older then 30sec., the driver get killed.
Thank you again for all!
Please send me Paypal Address!
Best regards Kevin
Hello Tobi,
i am still waiting for you Paypal Address!!!
Best regards Kevin
If you are running this on linux, try checking dmesg. On a rpi we are trying to connect to a chargery bms over USB. The data stops, the port does not close or throw and error. If you check dmesg, you might see "usb_serial_generic_read_bulk_callback - urb stopped -32" which is what I am seeing. Curious if anyone else is having this issue!
But this matches your symptoms of no data coming over the port.
Hello, thanks for your information.
Before two days i had the first message with USB_disconnect. I just monitor in node red the new dbus path "internalFailure". I got the message and then immediately i checked the time stamp. But all was still running fine. So it looks for me, that the restart was working fine in this case. No interrupt!
I checked now dmesg and cannot find something like you mention. :(
I need to wait for more failures to see if it will work!
Hello together,
Just for your information. Everything works fine i guess. It happen now two three times again and in the same second the driver was restartet.
Very very good. I hope it was always like this problem and now the communication is stable online.
Where can i donate something? I am really happy about your good code! Please, please write me back!
Best regards Kevin
Hey Tobi,
are you sure you don't want any donation?
Best regards Kevin
Hello,
I have waited with a reply to test the new error handling. Until roughly the last three months I got two errors. One was fixed with an automatically restart and one was a full BMS hangup. On the hangup the BMS must be restarted manually.
@Kevin: Can you share your experiences here? - Is the driver now more stable for you or do you as well see some BMS hangups as well, which are not fixed by a restart? Your feedback would be valuable, thank you!
Hello Tobi,
I am happy to get a feedback of you :).
In my/our case everything it totally fine and we all together really happy to have not even one problem. All together i updated the driver at 6 Chargery and non of them have a problem again. Just maybe once a month or every second month the communication get rebooted automatically. I Just get the telegram message and in the same time it's okay. All Victron Systems are 100% online without problems.
All systems have same connection: Inside the Cerbo there is first an opto-coupler (USB) from USB to the RS232 adapter. After the RS232 Adapter it is again an opto-coupler (SUB-D) and then there is the SUB-D-Pinout adapter in which the 2 wires from Chargery are connected. 3 Systems have 16S, 2 have 8S and 1 has 17S System (24S BMS). All are working.
Where we can donate?
Best regards Kevin
Hello Tobi.
Thank you a loot for your great job with this driver. My Chargery is now running around 1 year, but there are still frequently problems with the driver. As i read also in the victron community, a lot of other people have the same issue with the freezing values. (https://community.victronenergy.com/questions/57416/chargery-bms-on-venus-os.html) In NodeRed i check all 30sec the TimeStamp and so i get an information if the value is frozen and then i need to reboot cerbo.
Is there any solution? Do you also have this problem? Can we implement a reconnect in the python script somehow? Disconnect USB cable and connect it back again will also not work in my case. So something with the reconnect we can improve together? I would also donate you something!
Thank you a lot for any feedback!
Best regards Kevin