-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
Seplos v3 multi battery pack #80
Comments
you could access the slaves via RS485 directly from the free master's or the last slaves-RS485 port and use a second RS485 connection on the CAN-port of the master using a splitter (different BAUD rate of 9600) while also using CAN for Battery<->Inverter communication as CAN and RS485 are using separate pins on that port. But the idea to fetch the slaves data from the master using a single connection is also nice ;) |
Sorry if I expressed myself wrong, exactly, I connect to any free RS485 port, the one of the master or the one of the last battery. |
Maybe you got me wrong too: You can use the CAN-Port using a splitter (https://www.amazon.de/dp/B00D3KIQXC/) to connect the CAN-part to the inverter and read the battery-stuff via RS485 simultaneously – including voltages and being able to use the infamous BatteryMonitor supplied by Seplos to connect to it and change its settings etc – via RS485 through the CAN-port (through this you can only read the master, not the slaves, which is why a second regular RS485 connection is necessary in this setup) |
I haven't tried that... interesting... |
I was trying to connect to that port today and it was impossible. |
I did not check the title – mine is not v3 but the previous version 10E. Have you tried with the baud-rate set to 9600? This works on the 10E BMS. |
Yes, I tried, but at least with the pinout I'm using: Can on 4-5 and rs485 on 7-8 it doesn't work. |
I achieve this using pin 1 = B and pin 2 = A - maybe try that. |
Ok, I will try tomorrow. |
No, you can only access the master this way. You can access all slaves via their ID‘s with the second RS485 connection to the regular RS485 Ports on the master or the last slave. |
Yes, that's what my script already does, but if you can access the master and can connect in parallel to the others, you should be able to access the others.. In the end it's another RS485 port, you can daisy chain them all. |
Hi, I've been trying to read the two batteries via Modbus for months but without getting results, with a single battery these problems didn't exist. If anyone has any news, please let me know! |
When you have more than one battery, the main battery is set to "Master" mode and in a RS485 network there can only be one master. What my script does is to "listen" to what the master asks, and get the data. |
With your system were you able to read the values of the two batteries? I already use mqtt with another broker, is it possible to use it for both? |
Sure, and you can still use the Seplos app at the same time. |
I already use mqtt for another service can I use this together? how can you also use seplos app if port 485 is busy for mqtt? |
@jolly12f A single MQTT broker is required and can be used by tons of different devices simultaneously. Are you asking about the windows application or the Android app? |
I use Windows and unfortunately I don't know where to start :( |
Great job! How do we get a ESP32 version of your script for Multi Seplos 3.0? :D |
Basically you can use the same methodology: "listen" to the serial port and decode the messages. |
1 similar comment
Basically you can use the same methodology: "listen" to the serial port and decode the messages. |
@ferelarg an offtopic question: What does the 3.0 BMS send between packs when you just listen (and don't send a telemetry request)? the v16/10e only provides:
and some info I wasn't able to decode yet, probably alarm status.. EDIT: Nevermind, I found it in your code |
It sends all the data that the application displays, in fact I started to suspect that it worked that way when it "discovered" the packets in no specific order. To do this, I first detected all the log packets queried by the Master with a python sniffer. What I like most about this solution is that it is totally passive. It can be used at the same time as the native windows application, connect to any free rs485 port and does not interfere at all in the normal operation of the system. |
No, in my code I only use those registers, but it sends many more... if you look at the protocol manual that is in the "docs" folder you will see that the Master asks for everything (except the serial number and some other minor things). |
I also wrote a script for the v16/10e which requests telemetry and telesignalization frames and decodes them. they include more data than the frames, requested by the master.. however I am struggling to decode some of the data as there is no documentation about these "intra-pack-communication" frames and the offsets / type of data being used.. And I do agree, that listening is better than adding more request to the existing communication. Thats why I want to implement an option to chose between passive/listening and active/requesting. |
it would be nice to know how to use on esphome too. |
Could you share your proof of concept ESPhome YAML ? I am hoping to be able to do what you have done but in ESPhome - for easier remote connection and to have less dependence on HA scripts. I also wanted individual cell voltages for all batteries in a multi pack bank. |
For a quick proof of concept in ESPHome I have slightly modified the following script:
and the yaml:
|
I managed to see something with esphome following your comment, would you just give me some help to see the individual cells even just an example for just one then I'll take care of the rest |
Very interesting topic .... thx.... |
@ferelarg könntest du deine YAML mit den Zellspannungen vervollständigen? Aktuell stehe ich nämlich vor dem Problem das ich meine Akkus nicht mehr auslesen kann seitdem ich meinen Speicher erweitert habe. Deine Lösung mit Seplos3MQTT kommt für mich leider nicht in frage weil ich mir die Werte über ESPHome in den IOBroker hole. |
Hier ist eine funktionierende Lösung: #112 |
I have been doing some research on the seplos rs485 bus, and I have programmed a python script to "listen" the data from the complete battery pack (when there is more than one) and publish it to a MQTT server (with auto discovery for home assistant).
When there is only one battery, modbus can be used directly, but when there are several batteries the main one acts as "Master" and there can only be one master, so there is no other option but to listen to what the master asks and decode it.
The code (a draft version) is in: https://github.com/ferelarg/Seplos3MQTT
The text was updated successfully, but these errors were encountered: