weil weiter oben das stichwort logging gefallen ist, ich hatte bisher debug log und full dubug log enabled, jetzt den sketch nochmal mit beiden flags false kompiliert und mal sehen ob besserung eintritt. evtl. hat sich der gute ESP32 ja doch zu tode geloggt...
kurzes fazit: nach kompletter deaktivierung des debuggings keinerlei verbindungsprobleme mehr, also sollte jemand noch dieses problem haben dann diese beiden flags beim kompilieren auf false stellen:
bool debug_flg = false; bool debug_flg_full_log = false;
Hallo Scotty89,
lich habe ganz oben die Version Ble_Client 3.6 ausprobiert und leider zeigt diese nur die Zellspannungen an. Dann dachte ich ich nehme das Script von Scotty 9256=2313-BLE_client.rar.
Leider funktioniert dieses nicht.
- Ich finde dort nicht die eingabe des MQTT Passworts und User.
- bei Wifi finde ich keinen Eintrag, wo man ssid und Password eingeben kann, so wie bei der 1. Version Ble_client 3.6
- wo trage ich den genauen Namen vom BMS ein für den Ble connect?
Könnte mir hier jemand auf die Sprünge helfen, damit ich alle daten über Ble bekomme`?
Danke und Gruß
Das Ganze funktioniert wirklich astrein!
Hier mal ein Bild von allen Zellen von dem "Schlechtesten" meiner 6 Akkupacks, man sieht wie bei der eingestellten Diff Spannung von >=10mV der interne Balancer mit 2A anspringt.
der Weg der Daten: JK-BMS -> BLE -> ESP32 -> MQTT (in HomeAssistant) -> InfluxDb ->Grafana
Servus!
Waltsteinchen
Hallo. Zunächst einmal entschuldige ich mich für mein schlechtes Deutsch. Ich besitze ein JK BMS. Wir haben auch ein RS485-Modul. Um es in einem Projekt zu verwenden, müssen wir den Gesamtspannungswert in der Batterie mit Serial.Print drucken. Ich habe das an das BMS angeschlossene RS485-Modul wie folgt mit dem Arduino RS485-zu-TTL-Konverter verbunden. Wie soll ich also die Verbindung zum Arduino Mega herstellen? Welche Stifte soll ich verwenden? Können Sie auch ein kleines Stück Code teilen? Ich habe mehrere Inos ausprobiert, aber irgendwie konnte ich die gewünschten Daten nicht anzeigen. Ich will sehen, wo ich falsch liege. Ich danke Ihnen für Ihre Hilfe.
Schaltplan -- Ich konnte kein Bild hochladen. Es gibt ein Problem.
Die 3 Drähte im RS485-Modul vom BMS werden wie folgt mit dem TTL-Modul verbunden.
B --> Weiss
A --> Gelb
GND --> Schwarz
Die Verbindung vom TTL-Modul zum Arduino MEGA ist wie folgt.
R0 --> 19 (RX1)
RE --> 2
DE --> 2
DI --> 18 (TX1)
Wenn ich die Datei 11686=2649-RS485_JKBMS_Working.ino_.rar am Anfang des Themas nach diesem Schaltplan bearbeite, kann ich dann die BMS-Werte sehen?
Link entfernt
[url= Link entfernt [/img][/url]
Ich bin dabei das JK-BMS in den BSC zu implementieren. Der BSC soll dann mit bis zu 7 JK-BMS kommunizieren können. Wenn jemand mehrere JK-BMS im Einsatz hat und Interesse hat dies zu testen, kann er sich gerne bei mir melden.
BSC auf github: https://github.com/shining-man/bsc_fw
Discord-Server: https://discord.gg/bPK2HeYhEv
Hallo, ich habe immer noch das Problem, dass das Programm nicht auf einem ESP32 S3 Modul läuft. Auf dem Seriellen Monitor ist folgendes zu sehen:
BLE Advertised Device found: Name: JK-BD6A17S6P, Address: c8:47:8c:e5:69:e9, manufacturer data: 650b88a0c8478ce569e9, serviceUUID: 0000ffe0-0000-1000-8000-00805f9b34fb, serviceUUID: 0000fee7-0000-1000-8000-00805f9b34fb, rssi: -59
Forming a connection to c8:47:8c:e5:69:e9
[ 15279][I][BLEDevice.cpp:622] addPeerDevice(): add conn_id: 0, GATT role: client
- Connected to server
Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception).
Debug exception reason: Stack canary watchpoint triggered (BTU_TASK)
Core 0 register dump:
PC : 0x4038463a PS : 0x00060736 A0 : 0x803846e4 A1 : 0x3fca7b60
A2 : 0x3fcac1b4 A3 : 0x00000000 A4 : 0x3fc9c560 A5 : 0x00000000
A6 : 0x3fcf7fe0 A7 : 0x00000000 A8 : 0x3fcac420 A9 : 0xbaad5678
A10 : 0x3fca1ee8 A11 : 0x3fcac1ac A12 : 0xfffffffe A13 : 0xfffffffd
A14 : 0x00060720 A15 : 0x00000001 SAR : 0x00000002 EXCCAUSE: 0x00000001
EXCVADDR: 0x00000000 LBEG : 0x40056fc5 LEND : 0x40056fe7 LCOUNT : 0x00000000
Backtrace: 0x40384637:0x3fca7b60 0x403846e1:0x3fca7b90 0x40377665:0x3fca7bb0 0x403776bc:0x3fca7be0 0x40384a9d:0x3fca7c00 0x420495b1:0x3fca7c20 0x42025b54:0x3fca7c50 0x4204dcf1:0x3fca7c80 0x4206e3df:0x3fca7f10 0x4204ebe6:0x3fca81a0 0x4206e022:0x3fca81c0 0x4204ebe6:0x3fca8230 0x4206dcd9:0x3fca8250 0x4204e045:0x3fca8270 0x4204e071:0x3fca8500 0x4204e126:0x3fca8520 0x4203df31:0x3fca8540 0x42038ad2:0x3fca87f0 0x42038f8e:0x3fca8a80 0x42039aa1:0x3fca8ae0 0x4203b2d8:0x3fca8b30 0x4203b37d:0x3fca8b50 0x42045821:0x3fca8b70 0x42036618:0x3fca8bb0 0x4204b817:0x3fca8bd0
ELF file SHA256: acc6918328c920d4
Rebooting...
Es scheint ein Speicherproblem zu sein. hat jemand eine Idee?
Hi,
besteht die Möglichkeit irgendwie die mqtt-Konfig anzupassen? Ich habe zum einen meinen mqtt auf 1885 laufen. Ich sehe auf der Konsole, das der ESP alles ausließt. Kommt nur nicht im mqtt an... Außer einem "Alive" ist da nix....
Aber trotzdem super Arbeit! Vielen Dank!
Best Henry
Hallo zusammen,
danke für das tolle Projekt, vor allem an @Scotty89, habe es heute kurz ausprobiert und alles läuft wunderbar. Eine Frage wegen der Anbindung an Influx/Grafana: Wäre es möglich, die MQTT-Daten in Form eines JSON-Objekts zu übermitteln? Das wäre m.E. schöner bzw. einfacher bei der Übertragung in eine InfluxDB. Ich kann mich gerne mal dransetzen an die MQTT.ino, bei meinen beschränkten Programmierfähigkeiten müsste sich allerdings noch jemand finden, der das nachher in "schön" übersetzt. Oder liegt das schon bei jemandem griffbereit herum?
Beste Grüße
Dirk
Edit: Habe die Lösung für die neue Version gefunden: https://www.akkudoktor.net/forum/postid/87482/
Soll ich die korrigierte Version mal hochladen, damit nicht jede*r die Arbeit selbst machen muss?
Hallo zusammen,
JSON klappt jetzt einigermaßen, muss allerdings noch ein bisschen mit den Nachkommazahlen spielen - leider ist das BMS im Gartenhaus verbaut und ich komme nicht täglich dort hin.
Habe jetzt einen zweiten Akku zu Hause aufgebaut und ein zweites JK-BMS installiert - der Typ scheint allerdings neuer zu sein (s. Devicename, Unterstrich statt Bindestrich) und über MQTT kommen nur die Zellen korrekt, der Rest ist nicht vorhanden bzw. falsch (Laufzeitdatum, Cycle Count, Charge ist "on"). In der App werden alle Werte korrekt angezeigt. Hat da jemand einen Tipp oder schon eine neuere Datenanalyse fertig?
const char* Geraetename = "JK_BD6A24S10P";
MQTT:
BMS_Orig/Data/Zelle_01 3.189 BMS_Orig/Data/Zelle_02 3.194 BMS_Orig/Data/Zelle_03 3.197 BMS_Orig/Data/Zelle_04 3.189 BMS_Orig/Data/Zelle_05 3.202 BMS_Orig/Data/Zelle_06 3.221 BMS_Orig/Data/Zelle_07 3.106 BMS_Orig/Data/Zelle_08 3.225 BMS_Orig/Data/Zelle_09 3.221 BMS_Orig/Data/Zelle_10 3.211 BMS_Orig/Data/Zelle_11 3.190 BMS_Orig/Data/Zelle_12 3.195 BMS_Orig/Data/Zelle_13 3.202 BMS_Orig/Data/Zelle_14 3.225 BMS_Orig/Data/Zelle_15 3.204 BMS_Orig/Data/Zelle_16 3.208 BMS_Orig/Data/Battery_Voltage 0.000 BMS_Orig/Data/Delta_Cell_Voltage 0.000 BMS_Orig/Data/MOS_Temp 0.000 BMS_Orig/Data/Battery_T1 0.000 BMS_Orig/Data/Battery_T2 0.000 BMS_Orig/Data/Battery_Power 0.000 BMS_Orig/Data/Charge_Current 0.000 BMS_Orig/Data/Percent_Remain 0 BMS_Orig/Data/Cycle_Count 434 BMS_Orig/Data/Balance_Current 0.000 BMS_Orig/Uptime/Sekunde 34 BMS_Orig/Uptime/Minuten 16 BMS_Orig/Uptime/Stunden 11 BMS_Orig/Uptime/Tage 108 BMS_Orig/Data/Charge off BMS_Orig/Data/Discharge off BMS_Orig/BLEconnection connected BMS_Orig/status online
Edit: Habe die Lösung für die neue Version gefunden: https://www.akkudoktor.net/forum/postid/87482/
Soll ich die korrigierte Version mal hochladen, damit nicht jede*r die Arbeit selbst machen muss?
Auf Seite 30 gibt es eine Version, die die 32 Zellenspannungen verarbeiten kann: https://www.akkudoktor.net/forum/postid/73203/
Leider ist das hier mit den Versionen eine Katastrophe. Es gibt zig, die sich irgendwo in den 41 Seiten verteilen. Auf eine mehr oder weniger kommt es dann auch nicht an.
#include "BLEDevice.h" #include <WiFi.h> #include <PubSubClient.h> #include <ESPmDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> #include "driver/gpio.h" #include "driver/can.h" #define SW_Version "3.6" bool debug_flg = true; bool debug_flg_full_log = false; //########### Settings beginnen ######### //OTA Setting #define OTA_Hostname "JKBMS" // -> hier ändern wenn OTA Name anders sein soll #define OTA_Passwort "" // -> hier ändern wenn OTA Passwort anders sein soll // MQTT Setting const char* mqtt_server = "192.168.0.69"; // -> hier die IP des MQTT Server eingeben const int mqtt_port = 1883; // -> hier den Port einstellen für den MQTT Server const char* mqtt_username = ""; // -> hier MQTT Benutzername eintragen const char* mqtt_passwort = ""; // -> hier MQTT Passwort eingeben String mqttname = "BMS_16P"; // -> hier wird der MQTT Gerätename festgelegt const int mqttpublishtime_offset = 10000; //-> hier einstellen wie oft Danten gesnedet werden sollen 1000 = jede Sekunde // CAN Settings bool CAN_use = false; // -> true wenn ein CAN MOdul vorhanden und verwendet wird für die Paylontech simulation const int CAN_Cylcetime = 1000; //W-LAN Setting const char* ssid = "xxxxxx"; const char* password = "xxxxxx"; //BMS-BLE Settings const char* Geraetename = "JK-B2A20S20P"; //JK-B2A24S20P JK-B2A24S15P //########### Ende der "User" Settings #########
mosquitto_sub -v -h 192.168.0.69 -p 1883 -t '#' tele/Boiler/LWT Offline tele/boiler/LWT Online tasmota/discovery/48551946F0B0/config {"ip":"192.168.0.121","dn":"boiler","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"boiler","mac":"48551946F0B0","md":"Sonoff Basic","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"12.4.0","t":"boiler","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"sho":[0,0,0,0],"sht":[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],"ver":1} tasmota/discovery/48551946F0B0/sensors {"sn":{"Time":"2023-04-20T01:16:37"},"ver":1} wasser/LWT Offline boiler/LWT Offline sonoff/LWT Offline BMS_Watchdog/status offline BMS_16P/status offline BMS_16P/Data/Zelle_01 3.284 BMS_16P/Data/Zelle_02 3.283 BMS_16P/Data/Zelle_03 3.283 BMS_16P/Data/Zelle_04 3.284 BMS_16P/Data/Zelle_05 3.286 BMS_16P/Data/Zelle_06 3.284 BMS_16P/Data/Zelle_07 3.282 BMS_16P/Data/Zelle_08 3.283 BMS_16P/Data/Zelle_09 3.283 BMS_16P/Data/Zelle_10 3.284 BMS_16P/Data/Zelle_11 3.284 BMS_16P/Data/Zelle_12 3.286 BMS_16P/Data/Zelle_13 3.284 BMS_16P/Data/Zelle_14 3.284 BMS_16P/Data/Zelle_15 3.283 BMS_16P/Data/Zelle_16 3.286 BMS_16P/Data/Battery_Voltage 52.546 BMS_16P/Data/Delta_Cell_Voltage 0.004 BMS_16P/Data/MOS_Temp 20.500 BMS_16P/Data/Battery_T1 21.100 BMS_16P/Data/Battery_T2 21.100 BMS_16P/Data/Battery_Power 527.350 BMS_16P/Data/Charge_Current -10.036 BMS_16P/Data/Percent_Remain 73 BMS_16P/Data/Cycle_Count 30 BMS_16P/Data/Balance_Current 0.000 BMS_16P/Uptime/Sekunde 8 BMS_16P/Uptime/Minuten 46 BMS_16P/Uptime/Stunden 20 BMS_16P/Uptime/Tage 152 BMS_16P/Data/Charge on BMS_16P/Data/Discharge on BMS_16P/BLEconnection connected BMS_16P/status online
Jetzt möchte ich diese daten gerne in InfluxDB schreiben...
Ich nutze Solaranzeige multiregler Version,,,
Was muss ich machen damit ich die Daten vom ESP32 in Influx schreiben kann damit ich diese dann in Grafana nutzen kann und für die automatisierung von Solaranzeige den SOC Wert aus den Daten des ESP32/JK-BMS nutzen kann...
Danke vorab
Sralus
warum kann ich hier nicht posten? kommt immer firewall fehler
Leute ich sehe überhaupt nicht mehr durch...habe alle 40 Seiten gelesen. Welche Version muss ich nun woher nehmen? Ich habe HW 11.XW Software V11.25. in meiner BLE_Client steht Version 3.6...hier reden Leute aber von Version 1.1 ??!!! Ich bekomme keine ble Verbindung hin...er probiert es scheinbar gar nicht. trotz debug flg full bekomme ich nur folgendes im monitor:
Hatte bisher ein ANT BMS im Einsatz mit einem rasp. und habe da problemlos deutlich >1 Jahre wunderbar per BT alle Daten erhalten und per MQTT weitergeschickt. Wollte jetzt auf jk bms wechseln...bekomme es aber zum Verrecken nicht zum laufen 🙁
MalCare Firewall
Blocked because of Malicious Activities
Reference ID: 172620772464417aa186516