JKBMS auslesen über BLE (Bluetooth) oder RS485 Adapter mittels EPS, ioBroker

Hallo,

Ich habe vor ca. 3 Jahren dieses JKBMS auf einen ESP32 installiert und es hat bis gestern auch ohne Probleme funkioniert.

Aber heute auf einmal habe ich über Mqtt keinen Daten mehr empfangen –> warum … keine Ahnung –> EPS32 leuchtet aber er verbintet sich nicht mehr mit dem JKBMS!!

Jetzt wollte auf dem EPS32 nochmal die Software neu flashen aber scheitere bei Adruino an der Kompilierung und bekomme immer die Fehlermeldung “compilation terminated. exit status 1 Compilation error: driver/can.h: No such file or directory”

Ich weiss echt nicht mehr wie ich das vor ca. 3Jahren gelöst habe :face_with_raised_eyebrow:

LG Gerald

Edit: Die Lösung ist bei der Boardverwaltung bei ESP 32 von Espressif System die Version 1.0.4 zu installieren!!

Ist ja schon länger her, ich schreib trotzdem mal was dazu. Wer home assistant und somit esphome nutzt, muss drauf achten esp mit ch340 zu kaufen. Weil esphome über usb am pc den ch340 treiber/schnittstelle braucht. Ich hab 10 stück esp8266 ohne ch340 gekauft. Dann muss man in esphome ein gerät anlegen, ein 3lf file exportieren. Dieses auserhalb von esphome flashen. Danach ist der esp über wlan auch von esphome zu erreichen.

Ich habe ein jk bms über esp32 in home assistant. Wer den code braucht kann mir eine nachricht schreiben.

Vielen Dank sralus! Habe es hier auf einem Esp32-C3-Supermini zum laufen bekommen.

Hat etwas gedauert, dass ich gemerkt habe, dass man nur das JK-Standard-Passwort nutzen kann und wieder setzen muss.

1 „Gefällt mir“

moin,

Ich habe soweit Verbindung über BLE und bekomme Daten über MQTT.

Ich bekommen aber nur die Werte von den Zellenspannungen und vom Cycle Counter.

Von dem Rest bekomme ich keine Daten. Hat da jemand eine Idee woran es liegen könnte.

verwendet habe ich :Arduino Version 1.8.57.0 , Bordimage ESP32 Espressif ( 1.0.4),ESP32D,JK-B2A8S-20P-V11.6.1, (SW_Version "3.6 ino)

Wenn nur Zellspannungen und ggf. Cycle_Count kommen, ist meistens der JK-Datenframe nicht komplett im Buffer oder die Byte-Offsets passen nicht zum BMS/Firmware. Zellspannungen stehen am Anfang des Frames und werden auch bei unvollständigem Empfang korrekt dekodiert, während Spannung/Strom/Leistung/Temps später im Frame liegen und dann 0 bleiben. Lösung: im Notify-Callback prüfen, ob wirklich ein kompletter 0x02 Live-Frame mit ~300+ Bytes zusammengesetzt wird (frame counter/loggen), und ggf. Offsets/Indexe an das konkrete Modell (JK-B2A8S-20P-V11.6.1) anpassen bzw. neuere ESP32 Core Version nutzen.