Schnittstelle/Protokoll zum BMS im Akku

Antworten
Benutzeravatar
andi9
Beiträge: 29
Registriert: Do 30. Aug 2018, 13:43
Roller: NIU N1S 2018 schwarz matt
PLZ: 93049
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von andi9 »

Ruckelg hat geschrieben:
Sa 1. Mai 2021, 20:06
Hi hier die neue Version 0.3
Dank Techsoz jetzt mit einer dritten Page mit den Daten, die man sonst nur mit dem Niu H1 Tester auslesen kann!
Page3.jpg
Danke noch mal für die Leihgabe das H1!
Die Anleitung für die Version 0.1 gilt weiterhin.

Falls es wen interressiert chagelog:
Hardware statt Softwareserial
3. Page mit Software Version, Hardware Version, Batterie Serialnumber und Lade Zklen
Empfangene Daten werden jetzt geprüft, so das erst was angezeigt wird, wenn es auch gültige Daten gibt.

p.s.
Die Smarthome/WLAN Steckdosen Geschichte funktioniert auf dem ESP32 noch nicht ordentlich! Sind kurz vorm Aufgeben!!!
Software/Hardwareserial und WLAN zugleich funktioniert nicht auf dem ESP32 der auf dem Heltec verbaut ist.
Wie wäre es mit einem Relais Board am ESP und dann Relais ausschalten bei 60% und einschalten bei 40% Akkustand?

Relais mit Schuko Stecker und Buchse vor das Ladegerät und Pins mittels thingiverse-NIU-Stecker und Buchse durchführen zum Akku - wobei die Datenpins zum ESP gehen... Mit einem 5V Netzteil könnte man sogar den ESP versorgen, dann kann das durchlaufen und hält alles im grünen Bereich - ohne Zutun...

Snypes88
Beiträge: 1
Registriert: Di 9. Apr 2019, 12:00
Roller: Niu NGT
PLZ: 4
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von Snypes88 »

krekr hat geschrieben:
Mo 12. Jun 2023, 14:14
Vielen Dank für alle Informationen in diesem Thread.
Bitte beachten Sie, dass die jetzt verkauften Heltec-Boards „V3“ sind, was bedeutet, dass sie den ESP32-S3 verwenden. Die Arduino-Skizze funktioniert nicht, da Heltec seine Codebasis nicht in Ordnung gebracht hat (siehe https://github.com/Heltec-Aaron-Lee/WiF ... s/pull/167). Die Anzeige ist noch nicht implementiert.
Es ist mir nicht gelungen, es auf dem Heltec-Board zum Laufen zu bringen, aber ich habe eine Antwort erhalten, als ich ein nicht verwandtes TTGO ESP32-Entwicklungsboard verwendet habe (ich habe alle Display-Sachen auskommentiert).

Jetzt bekomme ich Informationen über die serielle Schnittstelle, die so aussehen:
cell1: 16950 raw, cell2: 16948 raw, cell3: 16950 raw, cell17: 16958 raw, pack volt.: 13760 raw, current: 0.0A, SOC: 68%, Temp1: 27°C, Temp2: 27°C, Temp3: 27°C, Temp4: 27°C, time remain: 0.0 h, power: 21179 raw, status: 0
Der SoC und die Temperaturen sehen in Ordnung aus, aber die Spannungen scheinen zu stimmen.

Bitte entschuldigen Sie meinen maschinell übersetzten Beitrag, mein Deutsch ist nicht so gut.
die Heltec Bibliotheken sind mittlerweile (endlich) aktualisiert so das der sketch für die V3 variante des Boards funktioniert! Ich selber hatte mich bewusst für den entschieden wegen der USB C buchse was viel angenehmer ist um den Board zu versorgen mit saft mittels Powerbank....

man muss die v0.0.8 Bib im Arduino IDE (ich verwende der 2er Version und diese funktioniert auch super) anwenden statt die 0.0.5er aus der Anleitung.

https://github.com/Heltec-Aaron-Lee/WiF ... index.json

ausserdem muss man das Pin mapping im NiuSerial....ino ändern auf:

#define CMD_DATA_DEBUG 0
#define RTS_PIN 7
#define LED_PIN 35

und Zeile 88 auf folgendes ändern (hier werden RX und TX definiert)

Serial2.begin(9600, SERIAL_8E1, 6, 5);

letztlich wenn man die Pins so nimmt wie ich oben vorschlage in der *.ino dann wird RXD auf dem TTL board mit Pin 6 verbunden; TXD mit pin 5 und der RTS mit pin 7! Achtet auch auf der Spannungsversorgung der TTL, der läuft auf 3,3V also schnappe ich mir den von der anderen rail im gegensatz zu der doku (obwohl Ve müsste auch 3,3V für externe geräte sein... war mir aber zu riskant :roll: ).

Ich finde die arbeit von @Ruckelg echt super! vielen dank dafür!
PXL_20230831_182521542.jpg

krekr
Beiträge: 2
Registriert: Mo 12. Jun 2023, 12:28
PLZ: 242
Land: anderes Land
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von krekr »

Snypes88 hat geschrieben:
Fr 1. Sep 2023, 19:56
krekr hat geschrieben:
Mo 12. Jun 2023, 14:14
Vielen Dank für alle Informationen in diesem Thread.
Bitte beachten Sie, dass die jetzt verkauften Heltec-Boards „V3“ sind, was bedeutet, dass sie den ESP32-S3 verwenden. Die Arduino-Skizze funktioniert nicht, da Heltec seine Codebasis nicht in Ordnung gebracht hat (siehe https://github.com/Heltec-Aaron-Lee/WiF ... s/pull/167). Die Anzeige ist noch nicht implementiert.
Es ist mir nicht gelungen, es auf dem Heltec-Board zum Laufen zu bringen, aber ich habe eine Antwort erhalten, als ich ein nicht verwandtes TTGO ESP32-Entwicklungsboard verwendet habe (ich habe alle Display-Sachen auskommentiert).

Jetzt bekomme ich Informationen über die serielle Schnittstelle, die so aussehen:
cell1: 16950 raw, cell2: 16948 raw, cell3: 16950 raw, cell17: 16958 raw, pack volt.: 13760 raw, current: 0.0A, SOC: 68%, Temp1: 27°C, Temp2: 27°C, Temp3: 27°C, Temp4: 27°C, time remain: 0.0 h, power: 21179 raw, status: 0
Der SoC und die Temperaturen sehen in Ordnung aus, aber die Spannungen scheinen zu stimmen.

Bitte entschuldigen Sie meinen maschinell übersetzten Beitrag, mein Deutsch ist nicht so gut.
die Heltec Bibliotheken sind mittlerweile (endlich) aktualisiert so das der sketch für die V3 variante des Boards funktioniert! Ich selber hatte mich bewusst für den entschieden wegen der USB C buchse was viel angenehmer ist um den Board zu versorgen mit saft mittels Powerbank....

man muss die v0.0.8 Bib im Arduino IDE (ich verwende der 2er Version und diese funktioniert auch super) anwenden statt die 0.0.5er aus der Anleitung.

https://github.com/Heltec-Aaron-Lee/WiF ... index.json

ausserdem muss man das Pin mapping im NiuSerial....ino ändern auf:

#define CMD_DATA_DEBUG 0
#define RTS_PIN 7
#define LED_PIN 35

und Zeile 88 auf folgendes ändern (hier werden RX und TX definiert)

Serial2.begin(9600, SERIAL_8E1, 6, 5);

letztlich wenn man die Pins so nimmt wie ich oben vorschlage in der *.ino dann wird RXD auf dem TTL board mit Pin 6 verbunden; TXD mit pin 5 und der RTS mit pin 7! Achtet auch auf der Spannungsversorgung der TTL, der läuft auf 3,3V also schnappe ich mir den von der anderen rail im gegensatz zu der doku (obwohl Ve müsste auch 3,3V für externe geräte sein... war mir aber zu riskant :roll: ).

Ich finde die arbeit von @Ruckelg echt super! vielen dank dafür!

PXL_20230831_182521542.jpg


Thanks for this. Finally it works on the V3 indeed. A few details: I also had to connect the GND of the RS485 connection, otherwise I got garbage. I'm also including a version of the Arduino sketch with the changes as detailed above.
NiuSerial_Wifi32_0_3-heltec_v3.txt
(4.89 KiB) 111-mal heruntergeladen
receive.txt
(25.14 KiB) 95-mal heruntergeladen
send.txt
(5.1 KiB) 80-mal heruntergeladen

Ruckelg
Beiträge: 21
Registriert: Di 9. Apr 2019, 00:03
Roller: Niu N1s
PLZ: 22549
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von Ruckelg »

Moin zusammen,
habe den Batterietester jetzt mal mit ESPHome neu aufgesetzt und in Home Assistant integriert.
Damit sind alle Werte (SOC, Strom, Zellspannungen, Restladezeit, SW-Version usw.) in Home Assistant verfügbar um damit Homeautomation zu betrieben.

Wenn Interesse besteht, kann ich die YAML-Datei online stellen.
Dateianhänge
NiuBMS.PNG

freesty
Beiträge: 201
Registriert: Mi 3. Jul 2019, 00:02
Roller: ecooter e2s
PLZ: 1
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von freesty »

mal ne allgemeine Frage. Hast du die Schnittstelle und das Protokoll reverse engineered? Oder wie war dein Vorgehen, um das NIU Bms zu "entschlüssel"?
2019er Ecooter e2s mit 25000km

Ruckelg
Beiträge: 21
Registriert: Di 9. Apr 2019, 00:03
Roller: Niu N1s
PLZ: 22549
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von Ruckelg »

Hi, Daniel-42 und ich hatten ein original H1 Diagnosegerät. Wenn man weiß was man sucht, wird man fündig.

condor13
Beiträge: 1
Registriert: Do 1. Mai 2025, 19:29
PLZ: 02193
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von condor13 »

Hallo,
Ich bin Teodor aus Rumänien. Tut mir leid, dass ich einen alten Thread wieder auflade … und entschuldigt mein schlechtes Deutsch :mrgreen: .
Ich habe einen Niu Aero mit leeren Zellen. Von Reihe 5 bis Reihe 13 ist alles leer, 0,6 V–0,2 V.
Ich möchte sie austauschen. Also habe ich einen „Teststand“ mit einer einzelnen Zellenreihe gebaut, die zu 80 % geladen ist. Ich habe die Zellen abgelötet und die Testbatterie an das BMS angeschlossen, um zu sehen, ob sie wieder aktiviert wird. Aber keine Anzeichen. Nicht einmal die LED auf der Platine leuchtet.
Der Hauptchip ist ein STM32F301C8T6. Ich werde versuchen, einen Dump über den freiliegenden SWD-Port der Firmware zu erstellen (falls dieser nicht geschützt ist) und den Chip vielleicht zurücksetzen. Hat jemand eine Idee, ob ich das über CAN machen könnte? Jede Hilfe ist willkommen.

Auch die kleine 3-V-Batterie ist leer. Ich werde sie ersetzen.

Danke
Teodor :ugeek:

Bild

Bild

ievil
Beiträge: 3
Registriert: So 4. Mai 2025, 00:22
PLZ: 30121
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von ievil »

Ruckelg hat geschrieben:
Di 29. Apr 2025, 08:41
Moin zusammen,
habe den Batterietester jetzt mal mit ESPHome neu aufgesetzt und in Home Assistant integriert.
Damit sind alle Werte (SOC, Strom, Zellspannungen, Restladezeit, SW-Version usw.) in Home Assistant verfügbar um damit Homeautomation zu betrieben.

Wenn Interesse besteht, kann ich die YAML-Datei online stellen.
Es wäre schön, aber gibt es eine Version für esp8266?

putschli
Beiträge: 8
Registriert: Mo 24. Apr 2017, 09:38
PLZ: 5
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von putschli »

Oh ja, da hätte ich Interesse dran.

Beste Grüße
Clemens
Ruckelg hat geschrieben:
Di 29. Apr 2025, 08:41
Wenn Interesse besteht, kann ich die YAML-Datei online stellen.

Ruckelg
Beiträge: 21
Registriert: Di 9. Apr 2019, 00:03
Roller: Niu N1s
PLZ: 22549
Kontaktdaten:

Re: Schnittstelle/Protokoll zum BMS im Akku

Beitrag von Ruckelg »

Hi, ESPHome unterstützt leider kein RS485 Transceiver ohne Auto flow control.
Ich habe folgenden verwendet.

https://a.aliexpress.com/_mPUu2Rh

1. Diesen muss man mit 5V statt 3.3V versorgen, sonst funktioniert die Kommunikation mit dem BMS bei Verwendung einer Lithium-Batterie nicht ordentlich.

2. Man muss einen 120-220Ohme Widerstand zwischen A und B hinzufügen. (alternativ den auf dem PCB benutzen)

3. Tx vom ESP32 mit TX vom RS485 Transceiver und RX und RX verbinden.

YAML-Datei liefere ich nach. HA erlaubt kein YAML Download auf Smartphones.

Viel Spaß bei der Vorbereitung.

Gruß Stephan

Antworten

Zurück zu „NIU“

Wer ist online?

Mitglieder in diesem Forum: Basti80, didithekid, Dot [Bot], maxx922, Semrush [Bot] und 381 Gäste