Moinsen, wie auch schon in anderen Threads hier für andere JK BMS´se beschrieben, versuche ich "das Neue" via ESPHome (ohne HomeAssistant) auf ESP32 auszulesen und mit MQTT den Kremsel weiterzubearbeiten.
, den zickigen flash Prozess über Win10/Python mit yaml file fürs .bin absolviert, der ESP32 redet mit meinem MQTT-Server (in meinem Fall der integrierte fhem-MQTT-Server) aber jetzt stecke ich fest. Wie auch hier im fhem Forum andiskutiert
Ich muss nochmal auf die physische Verbindung und die damit einhergehenden Einstellungen eingehen. Bei meinem JK-PB2A16S20P hat es
RS485|CAN|RS232|Rs485|RS485
im Panel.
Korrespondierend, wenn ich es richtig verstanden habe, kannst du in der App/Software UART Protokolle für 1 und 2 einstellen. Auf welche Ports die sich jetzt beziehen wäre interessant.
... und vor allem, welchen Port und welchen Pin hast du mit dem ESP32 verbunden?
CAN (zur Anlage) und die beiden rechten RS485 (wohl zum Verbinden mehrerer Batterien) sind wohl nicht für unseren Fall vorgesehen. Bleibt nur der linke RS485 und der mittlere RS232?
hängt es gerade an der physischen Kabelverbindung und welcher Port es denn bitte sein soll.... und welche Einstellung zu UART in der App funktioniert (und welches Setting denn überhaupt zu welchen Port gehört?). Jemand von euch eine Hilfestellung?
zwar hatte ich dir geantwortet (auch in dem Sinne, dass ich befürchte, dass es eine rs232 nicht gibt, und hatte dir noch mein hochgeladenens Manual verlinkt), aber entweder hab ich nicht auf Senden geklickt oder irgendwas hat nicht geklappt...
Was machst du denn jetzt? 485 oder auch BT?
Kennst du eigentlich das Protokoll? oder eine Python Implementierung (mit yaml steh ich etwas auf 'Kriegsfuss'...)
auf dem Fuss stand ich auch, aber wenn man irgendwann die Basics zusammengetragen hat (über die kaum jemand schreibt, weil scheinbar völlig klar) ist ESPHome und das flashen tatsächlich einfacher als man glaubt. Selbst Update OTA (over-the-air) funktioniert und macht Freude wenn das Kästchen irgendwo am Arsch der Heide verbaut ist.
EDIT: Oha, jetzt hats mir meinen Post mit 6 Edits und weiteren Infos beim Bearbeiten gelöscht und nur das hier ist übrig geblieben. Damn ...bekomme ich jetzt nicht mehr auf Schnell zusammen. Entscheidend war der Unterschied der beiden git Projekte je nachdem ob man das "Alte" oder das "Neue" JK BMS und via Kabel oder BT verbinden möchte:
Ersteinmal danke für das eröffnen des Themas hier.
Ich selbst bin sehr daran interessiert eine Python-CLI lösung zu haben, da mein Monitoringstack Telegraf/Influxdb/Grafana ist. Hinzu kommt, das ich aus verschiedenen Gründen Ethernet dem WiFi vorziehe. Es wäre schön wenn auch solche eine Lösung dabei heraus bekäme.
Es kommt hinzu, das diese Plattform scheinbar alles andere als zuverlässig zu sein scheint, um Quellcode auszutauschen....leider!
Hallo belba, da es hier um ESP32 geht und der meines Wissens nach primär als WiFi Kontakter genutzt wird (wobei es auch Ethernet Shilds gibt), wird dein gewünschter Weg in diesem Thread wahrscheinlich nicht erruiert werden. Wobei wer weiss. Bis jetzt (2 Tagen knapp) ist allerdings der BMS (BT) -> (BT) ESP32 (Wifi) -> (wifi) MQTT Server Fluss erstaunlich stabil.
Ich bevorzuge immer das Kabel, aber in diesem Fall machts das Ganze wirklich sehr einfach.
Was meinst du mit Quellcode austauschen? Du brauchst das yaml (in RAW einfach kopieren in einen textfile legen und speichern mit .yaml), Python installiert ... und der Rest "kommt aus dem Internet".
Dennoch finde ich dieses Thema interessant, gibt es mir doch Informationen über das Protokoll der JK-PB. In github hatte zuvor noch nichts gefunden was mir wirklich hilft, mit dem Projekt von txubelaxu könnte ic weiter kommen.
Vielleicht suchen ja andere (oder haben schon) eine passende Python Lösung. Sollten sich mehr interessenten, finden, dann kann man dafür ein eigenes Thema und Projekt in Github starten. In der zwischenzeit werde ich dann schon mal für mich alleine herum basteln.
@holle75
In meinen Fall möchte ich letzten Endes gerne ein Waveshare an das BMS daran hängen, der Waveshare wiederum wird mit POE betrieben, somit entfiele die Frage nach einer Stromversorgung. Den Switch habe ich mir schon extra besorgt!
Waveshare. Was von denen? ESP32 mit POE-Ethernet-Shield?
EDIT:
weiter unten "Configuration examples - Olimex ESP32-POE:" ... was sich sicherlich auch auf viele andere POE Ethernet ESP´s übertragen ließe ...
dann hättest du schonmal die Hardware Seite BMS -> RS485 Konverter -> ESP32 POE Ethernet -> MQTT abgedeckt. Mit dem git https://github.com/txubelaxu/esphome-jk-bms würde das BMS kabelgebunden mit deinem ESP sprechen und MQTT Messages würden via Ethernet auf deinem Server auflaufen. Das ist jetzt nur Theorie .... Ich habe ebensowenig-/viel Plan wie du
EDIT:
Falls es nicht MQTT sein soll, hier ESPHome — ESPHome sind die anderen möglichen Protokolle aufgeführt.
Mann, Mann, schön dass dieses Forum jeden Edit aufführt. Peinlich
@holle75
In Moment dieses Modell aber so wie ich gesehen habe, könnte ESP32 POE eine Alternative sein. MQTT (mit Mosquitto als Server) läuft aber leider eher besch***** bei mir, ich habe starke zeitliche Verzögerungen bis die mal in Grafana sichtbar werden. Als Datengeber habe ich hierbei einige Smarte Steckdosen mit Tasmota am laufen. Meine Lust auf MQTT ist daher zur Zeit stark gebremst und auch meine Versuche dieses Problem zu lösen schlugen bisher fehl!
HTTP-Requests die sich ein JSON mit Daten holen, wären hier für mich viel eher eine Alternative.
Dann schau noch mal in dein MQTT setup rein. Wahrscheinlich einfach überlastet. Bei MQTT musst du schon deutlich eingrenzen wer was wie mit wem reden darf, sonst geht dir das in die Knie. Grad Tasmotas schwätzen da deutlich zuviel... und wenn du dann noch autocreate topics, etc an hast ...
MQTT-Explorer-0.3.5 (oder neuer) gibts als portable (falls für win)
aber auch mit MQTT bin ich kein Fachmann. Alles nur Halbwissen und/oder selbst erlebt.
Ich habe nun auch den Volkszähler am laufen und immer noch ein absolutes mistiges MQTT, zudem benutze ich kein Windows. Ich denke ich suche ein Board das besser passt oder mach ein neues Thema auf.
Falls jemand Interesse hat:
ich habe für ESPHome einen Yaml geschrieben, der über einen CAN-Bus Pylontech-Protokoll von dem BMS liest und auf der anderen Seite Pylontech für den Wechselrichter ausspuckt. Dabei kann ich ein paar Pararameter, wie lade/Entlade Strom direkt im Protokoll anpassen und muss dabei BMS oder WR Eisntellungen nicht verändern.
Ich habe mir die Tage CAN-Bus genauer angeschaut.
Wenn man auf CAN JK BMS CAN Bus (500K) einstellt, kommen mit Extended Frames sogar alle Zellspannungen. Wenn man diesem Dokument Glauben schenkt:
dann sogar für alle parallel angeschlossen Packs.
Somit müsste man nur eine Yaml schreiben die über CAN zuhört, Extended IDs interpretiert und an MQTT/HA sendet, parallel noch Pylontech Messages an den selben Bus sendet, damit auch der WR etwas versteht.
Oh Interessant, ich werde nämlich langsam verrückt mit dem was das BMS mit der Anlage kommuniziert und wie aushandelt. Das ist einfach unlogisch.
Wenn man den ein oder anderen Parameter (wie zB automatischer Ladestop wenn Soc 100 an die Anlage kommuniziert wird und dann jedes Balancen aufhört, oder Soc bei 99 halten bis RCV -> RFV Zeit abgelaufen ist oder, oder, ) "beim Durchreichen" tweaken könnte (also die Arbeit die die Hersteller eigentlich machen sollten) wird vielleicht noch was draus.
und hier gibts was ähnliches für das ALTE JK BMS (glaube ich)
Da kann man sich doch auch mal den Code anschauen. Man muss das Rad ja nicht immer neu erfinden ... nur die Achse vielleicht
Ah, jetzt bis zum Ende gelesen. Hast du schon gesehen ...
Und ja, wie in anderen Threads geschrieben freue ich mich über deinen "Projekt Thread" ... dein Ansatz ist genau richtig, patchkabel vorne rein, patchkabel hinten raus, dazwischen Kommunikation verändern können und alle Infos über Mqtt in die Welche-auch-immer-Hausautomation. So soll das sein ... Pylon können (fast) alle Seiten und die Fehler die in der jeweiligen Auswertung liegen kann man dann eben patchen. Träumchen