NEWS
JK-BMS über RS485 mit ESPHome auslesen
-
so, wie es aussieht lag es wirklich an dn Einstellungen im mqtt Adapter.
( https://github.com/syssi/esphome-jk-bms/issues/295 )im Moment habe ich seit ca. 20 Minuten eine stabile Verbindung und der ESP liefert die Werte .
Da bin ich schon einmal happy .Ich habe 3 Stück Speicher a 15 KW , die jeeils mit einem BMS abgesichert sind. Werde erst mal versuchen, die beiden anderen soweit an den Start zu bekommen .
Melde mich dann wieder
-
so, wie es aussieht lag es wirklich an dn Einstellungen im mqtt Adapter.
( https://github.com/syssi/esphome-jk-bms/issues/295 )im Moment habe ich seit ca. 20 Minuten eine stabile Verbindung und der ESP liefert die Werte .
Da bin ich schon einmal happy .Ich habe 3 Stück Speicher a 15 KW , die jeeils mit einem BMS abgesichert sind. Werde erst mal versuchen, die beiden anderen soweit an den Start zu bekommen .
Melde mich dann wieder
@saugimanni Cool! Das ging flott!
-
@saugimanni Cool! Das ging flott!
so , habe heute nun auch die anderen beiden Akkus an den Start bekommen und habe somit genaue Werte zu weiteren Berechnungen zur Verfügung .

Nochmal vielen Dank an alle, speziell an Syssi für den entscheidenden Tip .
Wenn Du etwas Zeit hast, vielleicht kannst Du mir noch mitteilen, was ich zu tun habe , wenn ich auf den "RS485" Anschluss der BMS umstellen möchte, denn ich denke , die BLE-Abfrage wird wahrscheinlich nicht so stabil sein, wie der Kabelanschluss . Ich werde es jedoch in den nächsten Wochen erst mal testen, da ich beruflich wieder länger abwesend sein werde .
Also nochmals Danke und ein frohes Osterfest für Euch alle .....
-
so , habe heute nun auch die anderen beiden Akkus an den Start bekommen und habe somit genaue Werte zu weiteren Berechnungen zur Verfügung .

Nochmal vielen Dank an alle, speziell an Syssi für den entscheidenden Tip .
Wenn Du etwas Zeit hast, vielleicht kannst Du mir noch mitteilen, was ich zu tun habe , wenn ich auf den "RS485" Anschluss der BMS umstellen möchte, denn ich denke , die BLE-Abfrage wird wahrscheinlich nicht so stabil sein, wie der Kabelanschluss . Ich werde es jedoch in den nächsten Wochen erst mal testen, da ich beruflich wieder länger abwesend sein werde .
Also nochmals Danke und ein frohes Osterfest für Euch alle .....
@saugimanni Die Anbindung über Kabel statt BLE sollte nun ein Kinderspiel für dich sein. Es ist wichtig zu wissen, dass der Steckplatz am BMS zwar mit dem Label "RS485" versehen ist, hier jedoch serielle Daten mit 115k2 herausfallen, wenn man ein sog. Status-Frame anfordert. Etwas schade ist, dass sich das BMS nicht übers Kabel schreiben/konfigurieren lässt. Man kann somit nur periodisch das Status-Frame anfordern und es in Sensorwerte zerlegen. Inhaltlich ist es leider auch etwas schwächer bestückt als im BLE-Verkehr. Es fehlt z.B. der Balancer-Strom im Payload.
So wuerdest du vorgehen:
- Beim ESP32 bleiben, weil dieser 3 Hardware-UARTs besitzt
- Anstatt mit der
esp32-ble-example.yamlwürdest du mit deresp32-example.yamlstarten bzw.esp32-example-multiple-devices.yaml. Jene erweiterst du bis sie 3 UARTs & 3 BMSe umfasst. - Zwischen BMS (RX, TX, GND) und ESP werden Leitungen zu den jeweiligen GPIOs/Pinnen gezogen.
Das sollte es schon gewesen sein. Die Komponente pollt in der Frequenz des
update_intervaldas BMS und fordert das Status-Frame an. Viel Erfolg! -
@saugimanni Die Anbindung über Kabel statt BLE sollte nun ein Kinderspiel für dich sein. Es ist wichtig zu wissen, dass der Steckplatz am BMS zwar mit dem Label "RS485" versehen ist, hier jedoch serielle Daten mit 115k2 herausfallen, wenn man ein sog. Status-Frame anfordert. Etwas schade ist, dass sich das BMS nicht übers Kabel schreiben/konfigurieren lässt. Man kann somit nur periodisch das Status-Frame anfordern und es in Sensorwerte zerlegen. Inhaltlich ist es leider auch etwas schwächer bestückt als im BLE-Verkehr. Es fehlt z.B. der Balancer-Strom im Payload.
So wuerdest du vorgehen:
- Beim ESP32 bleiben, weil dieser 3 Hardware-UARTs besitzt
- Anstatt mit der
esp32-ble-example.yamlwürdest du mit deresp32-example.yamlstarten bzw.esp32-example-multiple-devices.yaml. Jene erweiterst du bis sie 3 UARTs & 3 BMSe umfasst. - Zwischen BMS (RX, TX, GND) und ESP werden Leitungen zu den jeweiligen GPIOs/Pinnen gezogen.
Das sollte es schon gewesen sein. Die Komponente pollt in der Frequenz des
update_intervaldas BMS und fordert das Status-Frame an. Viel Erfolg!ich muss das Thema noch mal aufgreifen. Ich versuche auch gerade einen ESP32 zu flashen bzw. die *.bin zu erzeugen und bekomme nach dem Entfernen der Kommentarzeichen im Bereich MQTT folgenden Fehler:
INFO ESPHome 2023.7.0
INFO Reading configuration jkbms2.yaml...
INFO Updating https://github.com/syssi/esphome-jk-bms.git@main
Failed configapi: [source jkbms2.yaml:39]
[mqtt] is an invalid option for [api]. Please check the indentation.
mqtt:
broker: xxx.xxx.xxx.xxx
username: ''
password: ''
id: jkbms
port: 1884Woran kann das liegen?
Verwendet habe ich die esp32-ble-example.yaml
-
ich muss das Thema noch mal aufgreifen. Ich versuche auch gerade einen ESP32 zu flashen bzw. die *.bin zu erzeugen und bekomme nach dem Entfernen der Kommentarzeichen im Bereich MQTT folgenden Fehler:
INFO ESPHome 2023.7.0
INFO Reading configuration jkbms2.yaml...
INFO Updating https://github.com/syssi/esphome-jk-bms.git@main
Failed configapi: [source jkbms2.yaml:39]
[mqtt] is an invalid option for [api]. Please check the indentation.
mqtt:
broker: xxx.xxx.xxx.xxx
username: ''
password: ''
id: jkbms
port: 1884Woran kann das liegen?
Verwendet habe ich die esp32-ble-example.yaml
@nettworker Bitte alle Leerzeichen vor dem Wort "api:" entfernen. Sowohl die Zeile "mqtt:" als auch "api:" dürfen keine führenden Leerzeichen besitzen, da es sich um Abschnitte handelt die auf der gleichen Hierarchie-Ebene liegen.
-
Hallo syssi ,
danke für Deine Antwort . ich nmuss mich leider entschuldigen, da ich überwiegend im Ausland tätig bin und nicht immer einen brauchbaren Internetzugang habe . Deshalb auch die späte Reaktion meinerseits . Und ich bin nur an unregelmäßigen Wochenenden zu Hause und kann erst dann wieder versuche starten.
Als Board habe ich mehrere zur Auswahl, zum einen einen ESP32 D1 mini oder ein Esp32 Board von AZ-Delivery ( mit den 2 Tastern ). Das letztere habe ich im Moment mit einer Arduino-Software beschrieben, die über BLE die Daten abrufen soll , da ich das mit dem RS485 Anschluss bisher garnicht nicht hinbekommen habe, diesen aber favorisieren würde .
Beide Boards haben einen micro USB-Anschluß, aber das wisst Ihr sicher.
Mein Rechner ist ein Windows 11 Rechner , habe aber auch unbuntu auf einem Raspi laufen .
Ich habe 3 JK-BMS am laufen, da ich 3 Stück 48V-LIFE4-Akkus habe . Von jedem BMS habe ich auch die Mac-Adresse . Im Moment habe ich nur ein Board am Akku . Das Board baut ab und an die Bluetooth-Verbindung zum BMS auf , aber die Verbindung zum MQTT-Server klappt nicht ( MQTT-Adapter im IO-Broker mit geändertem Port nur für die BMS , BD2A-24S8P ).
Ich habe auch schon versucht , über ESPHome die BMS zu erreichen, funktionierte genau 1 mal beim Neustart, dann hat es keine Daten mehr heruntergeholt .
Deshalb wollte ich auf die RS485 Schnittstelle gehen, um die BLE zu umgehen.
Habe es aber bisher nicht hinbekommen , muss zu meiner verteidigung aber sagen , dass ich Generation Ü60 bin und keinerlei Programmierkenntnisse habe .
Ich beschäftige mich zwar schon etwa 5 Jahre mit der Hausautomation, habe dieses jahr nun eine DYS - Solaranlage aufgebaut und bekomme die BMS zur Auswertung nun nicht an den IO-Broker .@saugimanni Hi, eine dumme Frage. Wie finde ich die MAC Add von meinem JK BMS B1A20S15P?
Danke und gruss
ED -
@saugimanni Hi, eine dumme Frage. Wie finde ich die MAC Add von meinem JK BMS B1A20S15P?
Danke und gruss
ED@ed-fischer said in JK-BMS über RS485 mit ESPHome auslesen:
MAC
Wenn ich ESP debug protokoll lese, finde ich genau die 2 Geräte:
-
Victron Smartsolar
address: 222986639317806
rssi: -81
address_type: 1
data: "\002\001\006\027\377\341\002\020\002X\240\001\340\340M_\0301\276\353\252krg\013)s\027\tSmartSolar HQ2302ZF4NC" -
JK BMS
address: 220209632571241
rssi: -76
data: "\002\001\006\005\002\340\377\347\376\013\377e\013\210\240\310G\214\354\357i\r\tJK_B1A20S15P"
Die MAC adresse sollte doch anders sein oder?
Gruss
Ed -
-
@ed-fischer said in JK-BMS über RS485 mit ESPHome auslesen:
MAC
Wenn ich ESP debug protokoll lese, finde ich genau die 2 Geräte:
-
Victron Smartsolar
address: 222986639317806
rssi: -81
address_type: 1
data: "\002\001\006\027\377\341\002\020\002X\240\001\340\340M_\0301\276\353\252krg\013)s\027\tSmartSolar HQ2302ZF4NC" -
JK BMS
address: 220209632571241
rssi: -76
data: "\002\001\006\005\002\340\377\347\376\013\377e\013\210\240\310G\214\354\357i\r\tJK_B1A20S15P"
Die MAC adresse sollte doch anders sein oder?
Gruss
Ed@ed-fischer Habe gefunden "Diagnose Info herunterladen"
-
-
@ed-fischer Habe gefunden "Diagnose Info herunterladen"
Alternativ kannst du noch ins Logbuch der ESPHome Node schauen. Die Standard-Konfiguration enthält diesen Abschnitt:
esp32_ble_tracker: on_ble_advertise: then: - lambda: |- if (x.get_name().rfind("JK-", 0) == 0) { ESP_LOGI("ble_adv", "New JK-BMS found"); ESP_LOGI("ble_adv", " Name: %s", x.get_name().c_str()); ESP_LOGI("ble_adv", " MAC address: %s", x.address_str().c_str()); ESP_LOGD("ble_adv", " Advertised service UUIDs:"); for (auto uuid : x.get_service_uuids()) { ESP_LOGD("ble_adv", " - %s", uuid.to_string().c_str()); } }Dieser sorgt dafür, dass immer wenn der ESP eine BLE-Ankündigung empfängt und sie mit dem Gerätenamen "JK-" beginnt ein paar Meldungen ins Log schreibt. Die Zeile "MAC address: ..." enthaelt die MAC-Adresse des BMS. Alternativ kannst du dir eine beliebige Android App schnappen, welche in der Lage ist BLE-Geräte in der Luft aufzulisten. Sehr beliebt ist die App "nRF Connect for Mobile". Viel Erfolg!
-
Hallo zusammen, ich lese dieses Thema mit Interesse. Aber ich habe eine Frage. Mein BMS ist JK-BMS B2A8S20P. Nach allen Informationen, die ich anderswo gefunden habe, kommen die RS485-Daten vom GPS-Port. Dieser Typ ist in der Liste der getesteten BMS aufgeführt. Der Anschluss ist so klein, dass ich ihn nirgends im Internet finden kann. Wie habt ihr das gemacht?
-
Hallo zusammen, ich lese dieses Thema mit Interesse. Aber ich habe eine Frage. Mein BMS ist JK-BMS B2A8S20P. Nach allen Informationen, die ich anderswo gefunden habe, kommen die RS485-Daten vom GPS-Port. Dieser Typ ist in der Liste der getesteten BMS aufgeführt. Der Anschluss ist so klein, dass ich ihn nirgends im Internet finden kann. Wie habt ihr das gemacht?
-
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
@home3131 Der Stecker trägt den Namen "4 Pin, JST 1.25mm".
JST haben üblicherweise noch eine weitere Bezeichnung.
z.B. XH, PH oder GH.
möglich, dass das Rastermaß von 1.25 reicht um es einzugrenzen, aber auch die Führungen könnten unterschiedlich sein -
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
@home3131 Der Stecker trägt den Namen "4 Pin, JST 1.25mm".
JST haben üblicherweise noch eine weitere Bezeichnung.
z.B. XH, PH oder GH.
möglich, dass das Rastermaß von 1.25 reicht um es einzugrenzen, aber auch die Führungen könnten unterschiedlich sein -
Grenzt "Micro JST 1.25mm 4 Pin" es besser ein? Soweit mir bekannt hat diese Ausprägung des Steckers keinen zusätzlichen Identifikator.
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
Grenzt "Micro JST 1.25mm 4 Pin" es besser ein? Soweit mir bekannt hat diese Ausprägung des Steckers keinen zusätzlichen Identifikator.
dürfte der GH sein.
der XH hat 2.5mm und der RH 2 oder 1.8, bin mir da aber nicht sicher.Ich kenne den Kram noch aus dem Modellbau
-
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
Grenzt "Micro JST 1.25mm 4 Pin" es besser ein? Soweit mir bekannt hat diese Ausprägung des Steckers keinen zusätzlichen Identifikator.
dürfte der GH sein.
der XH hat 2.5mm und der RH 2 oder 1.8, bin mir da aber nicht sicher.Ich kenne den Kram noch aus dem Modellbau
-
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
@homoran Ist definitiv kein GH, weil keine Arretierung.
da tue ich mich jetzt echt schwer
PH

und
XH

haben größeres Rastermaß
mit 1.25 hab ich auf die Schnelle das hier

gefunden.
Das kannte ich bisher nicht -
@syssi sagte in JK-BMS über RS485 mit ESPHome auslesen:
@homoran Ist definitiv kein GH, weil keine Arretierung.
da tue ich mich jetzt echt schwer
PH

und
XH

haben größeres Rastermaß
mit 1.25 hab ich auf die Schnelle das hier

gefunden.
Das kannte ich bisher nichtSo sollte der Stecker aussehen: https://raw.githubusercontent.com/syssi/esphome-jk-bms/main/images/circuit.jpg
-
Hallo ,
ich versuche seit 2 Tagen mein JK BMS über Einen ESP32 an den IoBroker zu binden und habe die gleiche Anleitung benutzt
Ich habe den ESp32 beschrieben , er ist über MQTT auch im Iobroker drin, versucht sich über Bluetooth mit dem JK-BMS zu verbinden , aber es klappt nicht .
Hat jemand eventuell eine Idee , woran es liegen könnte ? Ich bin nicht der Experte aber habe doch schon viel mit IOBroker zu tun, vor Kurzem eine Solaranlage aufgebaut und nun möchte ich die JK BMS auslesen. Habe übrigens 3 BMS , da 3 Speicher. Dies wird die Sache sicherlich noch erschweren . Habe aber zu Testzwecken im Moment nur 1 BMS laufen .
Ich habe auch schon versucht der Anleitung von Syssi zu folgen"https://github.com/syssi/esphome-jk-bms"
und über esphome das Ganze zu versuchen. Aber mit ESPHome habe ich bisher noch garnichts zu tun gehabt und weiß nicht , wie ich dies auf den ESP32 bringen soll.
Ich bin über jede Hilfe dankbarHallo alle zusammen.
aktuell lese ich mein JKBMS mittels der ersten verlinken Version aus. Also Über Arduino flashen....
Dieses Sysem höngt sich aber regelmäßig auf und sendet keine daten mehr.Ich möchte gern den ESP32 mittels ESPhome zum Kommunizieren mit dem IO Broker bekommen.
Nun meine Verständnis Fragen:
ESPhome ist für die Home Assistent Umgebung geschrieben? --> muss ich also Home Assistent installieren, um dann ESPhome als addon installieren, um dann diesen zu flashen?Mein IOBroker läuft auf einer Ubuntu VM auf einem Windows mit VMworkstation. (hat sich so entwickelt, da ich früher die Windows Umgebung benötigt hatte um die Pylontech auszulesen, aber das ist Vergangenheit, Selbstbau Akku mit JKBMS) --> der Umzug zu Proxmox ist noch nicht angegangen

am Ende möchte ich nur die JKBMS Werte in den IObroker bekommen.
Ich danke schon jetzt mal für die Antwort(en).
Grüsse -
Ich würde dich gerne unterstützen zum Ziel zu kommen.
Vorab ein paar Fragen:- Hat dein ESP32-Board eine USB-Buchse / USB-zu-TTL-Wandler auf der Platine, so dass man es direkt per USB-Kabel beschreiben kann?
- Welches Betriebsystem hat dein Rechner? Steht dir ein Rechner mit z.B. Ubuntu zur Verfuegung?
- Kennst du die MAC-Adresse deines BMS? Kannst du sie bereits z.B. am Smartphone per "nRF Toolbox" in Erfahrung bringen?
- Betreibst du bereits einen MQTT-Server, welchen man mit den Daten aus der ESPHome-Node / dem BMS befüttern kann?
da du diese Fragen schon gesellt hattest.
Hat dein ESP32-Board eine USB-Buchse / USB-zu-TTL-Wandler auf der Platine, so dass man es direkt per USB-Kabel beschreiben kann? --> ja ich habe eine ESP32 mit den Pfostenleisten und USB Anschluss
Welches Betriebsystem hat dein Rechner? Steht dir ein Rechner mit z.B. Ubuntu zur Verfuegung? --> Eigentlich Windows 11, Ubuntu könnte ich auf einer VM eröffnen.
Kennst du die MAC-Adresse deines BMS? Kannst du sie bereits z.B. am Smartphone per "nRF Toolbox" in Erfahrung bringen? --> ja mit der nRF Toolbox in Erfahrung gebracht
Betreibst du bereits einen MQTT-Server, welchen man mit den Daten aus der ESPHome-Node / dem BMS befüttern kann? --> den MQTT-Server vom iOBroker
Wäre sehr schön, wenn wir den JKBMS (bald sind es 2) zum fliegen bekommen, ich würde auch sehr gern meinen Weg hier als einen Beitrag posten, als Hilfe für andere Leser.
Danke und Grüsse