NEWS
JK-BMS über RS485 mit ESPHome auslesen
-
Ich bin ein wenig verwirrt der Uart pinouts!
Bei einem ESP32 sagt das Pinout GPIO17=Tx und GPIO16=Rx. In den example files von sissi ist es genau umgekehrt.
tx_pin: GPIO16 rx_pin: GPIO17
Kann bitte jemand Licht ins dunkle bringen?
-
@dremeier Die GPIOs können für beliebige Zwecke zum Einsatz kommen. Durch die Konfiguration in der YAML wird definiert, ob sie zum Lauschen oder zum Sprechen zum Einsatz kommen sollen. Antwortet dein BMS nicht auf Anhieb, weil etwas "falsch" angeschlossen ist, dann verdrehst du entweder die Kabel oder vertauschst die GPIOs.
-
@syssi vielen Dank!
Ich war der Meinung die Pins seinen Hardware UART, wenn man sie so frei belegen kann um so besser!
Bin gerade dabei eine kleine Platine mit DC/DC converter zu entwickeln, so dass die hohe Batteriespannung, die an dem UART-Stecker des BMS anliegt auf 3,3V geregelt wird. Zusätzlich wird die UART noch galvanisch entkoppelt. Hatte mir schon einige ESP zerschossen.
Wenns fertig ist stell ich es hier gern vor. -
@dremeier Der ESP32 hat eine GPIO-Matrix und kann deshalb per Software einen der drei Hardware-UARTs auf nahezu beliebige Pins routen. Beim ESP8266 war das anders (festverdrahtet). Ich bin gespannt, ob dein Konverter funktioniert. Ich habe leider schon von vielen rauchenden Komponenten gehoert, sobald der ESP vom DC/DC-Wandler direkt von der Batterie gespeist wurde. Ich hoffe, dass die galvanische Trennung (auf allen Ebenen?) insb. auf der Masse-Leitung zwischen Batterie- und "ESP" bzw. DC/DC-Wandler. Ich habe hier leider zu wenig Ahnung von Schaltkreisen um hier guten Input zu geben.
-
Hallo Sebastian
bin gerade auch dabei per BLE einzubinden da ein anderer Weg aktuell wegen einem Herstellerbug eine Sackgasse ist.
Nun holt mich aber wieder ESPHome mit vielen Fragen und Fehlermeldungen ein.
Darf ich davon ausgehen, dass die angebotene Lösung nicht nur für HomeAssistant funktionieren soll sondern auch mit dem ESPHome Adapter der in IOBroker läuft?
Wie verhält es sich dann mit der Zuordnung? Lt. Anleitung sieht man die fertige Kachel in HA. In IOBroker finde ich derzeit "nur" die Datenpunkt. Muß ich mir die Zuordnung wirklich selbst austüfteln?
Binde ich zusätzlich über Mqtt an sieht es etwas besser aus und ich finde Datenpunkte mit Beschreibung wie der durschnittlichen Zellspannung:
Was muß ich nun aber tun über hier Settings per Mqtt verändern zu können? Reicht es den Mqtt Datenpunkt in IOB zu ändern oder ist das per command DP zu nutzen?
Ergänzend die Frage, dass mir durch die Integration der Log voll läuft:
esphome.0 2025-05-11 10:24:48.349 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:48.348 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:43.237 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:43.235 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:38.110 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:38.109 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:33.069 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:33.068 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:27.780 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:27.780 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:22.654 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:22.652 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:17.540 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:17.540 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:12.408 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:12.407 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:07.291 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:07.289 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:24:02.094 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:24:02.090 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:23:56.967 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 10:23:56.966 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 10:23:51.938 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length')
Bin noch auf der Suche was ID:25 ist.
Besten Dank für Eure Tips!
-
@dieter_p Hallo Dieter! Ich kann deine Annahmen nur bestätigen: Die Implementierung kann unabhängig oder auch ganze ohne eine Heimautomation genutzt werden. Man hat die Möglichkeit alle Messwerte über einen MQTT-Broker abzusetzen oder Schalter/Einstellungen über MQTT zu verändern. Die geposteten Logbuch-Zeilen scheinen ioBroker spezifisch zu sein und ich weiss nicht, was sie bedeuten.
-
Danke für Dein Feedback. Da ich mir nicht sicher war und einfach mal schauen wollte, hab ich den kleinen local Webserver mal aktiviert und frag mich nicht warum, aber nun sehe ich auch die Beschriftungen der Datenpunkt. Einstellungen verändern geht auch über die Webseite:
Was mich noch wundert: Kann mich nicht erinnern irgendwo mein Settings-Kennwort eingetragen zu haben, trotzdem hat man Vollzugriff aufs BMS?
Was mich stört: die Fehler im Log:
esphome.0 2025-05-11 23:34:43.731 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 23:34:43.730 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 23:34:38.607 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 23:34:38.607 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 23:34:33.495 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length') esphome.0 2025-05-11 23:34:33.495 error ESPHome client 192.168.7.76 Error: Failed find or parsed message type for Id: 25 esphome.0 2025-05-11 23:34:28.372 error ESPHome client 192.168.7.76 TypeError: Cannot set properties of undefined (setting 'length')
-
@dieter_p said in JK-BMS über RS485 mit ESPHome auslesen:
Was mich noch wundert: Kann mich nicht erinnern irgendwo mein Settings-Kennwort eingetragen zu haben, trotzdem hat man Vollzugriff aufs BMS?
Das Passwort in der Android App ist leider Augenwischerei. Wenn du es setzt, dann wird es zwar auf dem BMS gespeichert. Um es zu validieren, wird es in Plaintext per Bluetooth abgerufen und in der App gegen deine Eingabe verglichen. Stimmt das Passwort, dann bekommst du Zugritt zur jeweiligen View/Funktion (in der App). Per Blueooth akzeptiert das BMS immer jegliche Befehle und unterzieht sie keiner Passwortüberprüfung.
-
@syssi said in JK-BMS über RS485 mit ESPHome auslesen:
Per Blueooth akzeptiert das BMS immer jegliche Befehle und unterzieht sie keiner Passwortüberprüfung.
Puuh, heftiger Tobak. Damit kann man eigentlich das BMS nirgendwo installieren wo Fremde unbeaufsichtigt Zugang haben.
Ich frag mich wer so etwas konzipiert....unbegreiflich.Bzgl. der Fehlermeldung mußte ich nun die API deaktivieren und Mqtt nutzen. Hilft ja nix.
-
@dieter_p sagte in JK-BMS über RS485 mit ESPHome auslesen:
Damit kann man eigentlich das BMS nirgendwo installieren wo Fremde unbeaufsichtigt Zugang haben.
Punkt 1:
Da muss jemand die Energie und das Können haben den BT Verkehr mitzuschneiden und das Kennwort auszulesen.viel Wichtiger ist
Punkt 2:
Dann kann er den Ladezustand und die anderen Daten lesen -
@homoran said in JK-BMS über RS485 mit ESPHome auslesen:
Punkt 1:
Da muss jemand die Energie und das Können haben den BT Verkehr mitzuschneiden und das Kennwort auszulesen.Nö, wenn jemand weiß dass es ein JK BMS ist kann er ohne ein Passwort sämltliche Einstellungen nach Belieben verstellen.
Alles was er braucht ist die öffentlich bekannte MAC Adresse und den hier besprochenen Github-Inhalt auf einem ESP32.
Zum Glück lässt sich BLE ja im BMS deaktivieren und alles auch über UART-TTL Anbindung per Kabel nutzen.