Daly BMS WLAN

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Antworten
gzi
Beiträge: 167
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 16 Mal
Danksagung erhalten: 25 Mal

Daly BMS WLAN

Beitrag von gzi »

Daly-Batterie-Managementsysteme können über ein RS485 to USB Kabel mit der Solaranzeige verbunden werden. In meinem Fall war aber ein Kabel nicht machbar und ich brauchte eine WLAN-Anbindung. Ich habe deshalb mein BMS mit einem WLAN Interface versehen und dann als „User Device“ in die Solaranzeige integriert. (Wie man die Solaranzeige selbst ins WLAN bringt, habe ich hier beschrieben).

Die erforderliche Hardware, ein Wemos D1 mini und eine USB Buchse, kostet nur wenige Euro und habe ich bereits in einem früheren Posting beschrieben. Die Firmware dazu stammt aus einem Open Source Github Projekt .

Die Datei user_device.php ist im o.a. Posting angehängt. Dieses Script macht einiges mehr als die Anbindung des BMS. Hier möchte ich speziell genauer beschreiben, wie die Anbindung des Daly BMS dort funktioniert. Bei der Implementierung habe ich mich soweit als möglich an die Default-Struktur der user_device.php gehalten.

Im Abschnitt 1.3 finden sich die fürs Daly-BMS notwendigen Einstellungen

Code: Alles auswählen

$DALY_BMS_to_MQTT_IP = "10.0.0.25"; 	// IP Adresse des Wemos D1 mini
$InfluxDBLokal_BMS  = "DalyBMS";                      // Name der Influx DB
$MQTT_BMS = false;                                          // Der Wemos sendet selber Daten an Mosquitto
Im Wesentlichen muss nur die IP Adresse des Wemos D1 und der Name der Influx Datenbank in der die BMS Daten abgelegt werden sollen, angegeben werden.
Der Code für die weitere Verarbeitung befindet sich im Abschnitt 3

// 3.1 JSON Daten auslesen

Das ist eigentlich recht simpel. Über die URL

Code: Alles auswählen

http://<DALY_BMS_to_MQTT_IP>/livejson
Antwortet der Wemos D1 mit einer JSON Datei, die die aktuellen BMS Daten enthält. Diese wird mit curl eingelesen (file_get_contents stellte sich als zu langsam heraus) und dann mit json_decode in ein array umgewandelt. Anschließend werden die Messwerte in $aktuelleDaten übertragen.

// 3.2 Query für das Schreiben in die influxDB zusammenstellen

Hier wird in $zq eine query (eigentlich eine INSERT Anweisung) zusammengestellt mit der dann die Daten in die Influx-Datenbank gespeichert werden können

// 3.3 optionale Nachbearbeitung der BMS Daten

Das verwende ich nicht

// 3.4 Optional BMS Daten an den hauseigenen MQTT Broker übergeben

Das wird über $MQTT_BMS gesteuert. Wenn diese Variable in 1.3 auf true gesetzt wird, werden die vom BMS gelesenen Daten an den MQTT Broker der Solaranzeige gesendet. Das kann jedoch der Wemos D1 Mini direkt. Daher habe ich das hier ausgeschaltet um Ressourcen zu sparen.

// 3.5 Zeitpunkte definieren

Das stammt aus der Vorlage.

// 3.6 BMS Daten in influxDB ablegen

Hier wird der Name der lokalen Influx Datenbank übernommen.
Dann werden mit der Solaranzeige-Standardfunktion influx_local die aktuellen Daten in die Datenbank geschrieben.

// 3.7 Wiederholungen des Auslesens steuern

Das stammt aus der Vorlage. (Falls das Auslesen weniger als 7 Sekunden dauern würde, wird hier auf die vollen 7 Sekunden gewartet. )

BMS-Daten in einem Dashboard darstellen

Man kann dazu das in der Solaranzeige mitgelieferte Daly Dashboard nehmen. Damit man die in user_device.php vom BMS gesammelten Daten in einem Grafana Dashboard darstellen kann, muss man aber zuerst die Datenbank DalyBMS bei Grafana bekannt machen.

Dazu klickt man in Grafana aufs Zahnrad-Symbol und wählt dort Data Sources aus. Dann rechts auf „Add data source“, dann auf InfluxDB. Im Formular unter

Code: Alles auswählen

Name: DalyBMS 
URL: http://localhost:8086 (wichtig: das selbst ausfüllen, das Feld hat keinen Default-Wert)
Database: DalyBMS
http-Method: GET
Und dann Save & Test klicken. Nun kann man das vorgefertigte Daly BMS Dashboard öffnen und dann zum Beispiel auf „Batteriespannung“ klicken und dann Edit auswählen.
Dort gibt man dann ein:

Code: Alles auswählen

Data Source: DalyBMS
From: Batteriezustand
Select: Voltage
Der Rest kann bleiben wie er ist. Dann „Apply“ klicken. Das macht man dann bei allen anderen Ausgabefeldern ähnlich. Am Ende nicht vergessen das ganze Dashboard speichern. Das geht rechts oben mit dem Diskettensymbol. Am Ende kann es dann so aussehen:
Bild

Viel Spass beim Nachbau!
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

Antworten

Zurück zu „Allgemeines“