Hab’ mir notgedrungen ‘ne Software gebastelt um meine 2 Basengreen Batterien (24V 230Ah) ins Smarthome zu integrieren. Website Design ähnlich Tasmota. Läuft schon seit über 2 Jahren.
Suche nun jemand der mal drüberschaut und das evtl. noch optimieren und/oder testen kann oder auch noch Ideen hat. Erstellt mit PlatformIO.
Moin,
erstmal Respekt
hast du die Batterien per Bus oder über BLE ausgelesen?
Ich bin immer drauf und dran neue Batterien, die ich in die Finger bekomme per BLE auszulesen.
Wäre dankbar für einen Austausch!
der ESP32 kann auch BLE. RS485 wäre mir lieber gewesen, kann aber die Batterie nicht. Source kann ich dir gerne zukommen lassen. Mit Github experimentiere ich noch. Hochgeladen isses aber die ganzen Abläufe mit Updates und Freigaben sind mir noch sehr fremd.
Programmablauf:
Parameter von Config-Datei lesen (WLAN-, MQTT-, BMS-Parameter). Die lassen sich dann über die Webseite ändern.
WiFi Verbindung aufbauen, MQTT-Client und HTTP-Server starten, über NTP aktuelle Zeit holen
Bluetooth Scan nach BMSe (BLEUUID)
die 1ste BMS erhält den Topic ergänzt mit 1 die 2te mit 2 usw. Anhand dem Bluetooth Namen entscheide ich bei mir welches BMS1 und BMS2 ist. Dieser kleine Programmteil muss angepasst werden.
MQTT-Verbindung aufbauen und Daten senden (altes und neues JSON-Format wählbar, alle 20s)
parallel dazu immer die BMSe auslesen (U, I, U jeder Zelle, Min, Max, Differenz, MOSFet Temperaturen, SoC, Fehler, Charge, Discharge, Balancing, alles was geht, alle 5s). Sind bis zu 3 Einzelpakete.
Das Setup und BLE-Modul sind als Lib programmiert der Rest normal. Einstellen kann man so ziemlich alles (z.B. nur geänderte Werte ab bestimmter Differenz per MQTT senden). Leds gibts auch, Relay ist vorbereitet. Webseiten sind im SPIFFS hinterlegt und können per Webserver hochgeladen werden. Hauptproblem war es eine BLE-Bibliothek zu finden die einigermaßen stabil läuft. Ist natürlich nicht alles auf meinem Mist gewachsen. Da stecken die Ideen vieler Leute dahinter, die ich versucht habe zusammenzufassen, zu optimieren und zu vereinfachen. Das mit dem vereinfachen liegt momentan wegen Zeitmangel auf Eis.
Mensch, das hört sich nach einem ziemlich umfangreichen Projekt an!
Ich bin was MQTT und HA angeht absolut (noch) nicht bewandert, ich fuchse mich momentan hauptsächlich in das BLE Thema rein, aber das wäre sehr spannend für mich! Vor allem weil ich das BMS noch nicht in die Finger gekriegt habe.
BLE Kommunikation über einen Service mit 2 Characteristiken? Auf einer einen Request senden und auf der anderen kommt die Notification als Antwort?
Oder erwartet das BMS vorher auch einen “Key” oder ein Freischalte-Request ggf. auf einer dritten characteristic?
Wäre sehr interessiert mal reinzuschauen!
Und ja ich bin was Github angeht auch noch zu ängstlich, traue mich da nicht meinen code zu präsentieren..
Danke dir, ich werde die nächsten Wochen mal reinschauen, weil ich momentan noch ein anderes BMS am Wickel habe. Soweit ich das sagen kann ist die NimBLE Bibliothek die einzige Möglichkeit wenigstens halbwegs zuverlässig eine Verbindung hinzubekommen. Mit der “alten” standard BLE Bibliothek kann ich z.B gar keine Verbindung zum TDT BMS herstellen. (Kann auch an meinem Unvermögen liegen!) Aber mit deinem BMS hatte ich auch so meine Probleme, das hab ich noch nicht zum Laufen bekommen.
Vielen Dank dir!
Ich melde mich natürlich zurück, sollte mir etwas auffallen!
EDIT: Mir ist jetzt erst die NimBLE- Version aufgefallen. Hat es mit neueren bei dir Probleme gegeben?