Daly BMS (Batteriemanagement System für Li-Akkus) WLAN fähig machen
1. Einleitung Da sich seit einiger Zeit die Energieerzeugung in Deutschland wandelt, hin zu einem immer höheren Anteil an erneuerbaren Energien, nimmt damit auch das Risiko von Ausfällen der Energieversorgung zu. Ein solcher 'Blackout' könnte sich durchaus auch über mehrere Tage oder im schlimmsten Fall Wochen hinziehen. Jetzt trifft es sich ganz gut, dass auf dem Dach bereits eine 4,5kWp PV-Anlage installiert ist. Hinzu kommt, dass die Anlage bald 20 Jahre alt ist und damit der subventionierte Stromankauf durch das EVU wegfällt. Daraus ergeben sich 2 interessante Gedanken:
Das Thema Nulleinspeisereglung soll hier noch nicht weiter behandelt werden, da ja zunächst erstmal ein funktionierender Speicher benötigt wird. Die Anschaffung des Speichers war mit einer Bestellung bei Alibaba schnell erledigt. Er besteht aus 16 LiFePO4 Akkus mit jeweils 230Ah und einer Nennspannung von 3,2V je Zelle. Insgesamt stehen mit dem Block nun knapp 12kWh elektrischer Batteriespeicher zur Verfügung. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das Daly-BMS kommt mit einer UART-Schnittstelle die leider recht sparsam beschrieben ist. Mit etwas Recherche und reverse engineering konnten aber leicht die Befehle gefiltert werden, mit denen nicht nur die Parameter ausgelesen werden können, sondern auch die Einstellungen möglich sind. Die Kommunikation ist wirklich recht simpel und kann ohne große Umstände über die Rx/Tx Pins jedes ESP8266 realisiert werden. Es wird einfachh die RS-232 Schnittstelle des ESP mittels Serial.begin(9600, SERIAL_8N1); initialisiert und dann alle Befehle nur noch mit einem Serial.write(my_txBuffer, XFER_BUFFER_LENGTH); auf die Schnittstelle gejagt. Beispiel-Telegramm:
Die Buffer-Variable besteht immer aus 12 Bytes und setzt sich wie in der Daly-Spezifikation beschrieben zusammen. Byte [0] ist immer 0xA5, Byte [2] trägt den Befehlscode, Byte [8] ist immer 0x08 und Byte [12] die Checksumme. Die Datenbytes sind bei Datenabrufen mit 0x00 gefüllt.
Parameter schreiben
. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kleine Adapterplatine mit ESP8266
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. Informationen Schaltpläne können auf Anfrage zur Verfügung gestellt werden.
Quellen: |