Mit der Erweiterung erzeugt das Script ein Logfile im Ordner /opt/fhem/Saft_BMM-yyyy-mm.log mit folgender Struktur
''2024-08-01_21:55:56 SAFT_BMM sOC: 70 internalBatteryVoltage: 526.075 internalBatteryCurrent: -1.0 batterySystemMode: 3 rawBatteryContactorsStatus: 1 IMD: 50.0 VMD: 420.0 PMD: 25680 batteryRequests: 0 IMRContinuous: 23.5 IMR: 29.0 VMR: 560.0 PMR: 15350 globalBatteryStatus: 0 sOCThreshold: 0 ''
Auf Änderungen in diesem File reagiert FHEM und aktualisiert seine internen Readings und Plots.
Das Perl Skrit SaftBMSGoodwe2_Monitor.pl übwerwacht ob das Python Skript läuft und startet ggf. neu. Dies soll die Stabilität erhöhen falls es zu Abbrüchen kommt.
Das Script wird automtisch bei Systemstart ausgeführt hierzu folgende Anpassungen vornehmen.
Crontab aufrufen:
sudo nano /etc/crontab
Zeile einfügen
*/5 * * * * pi /opt/fhem/SaftBMSGoodwe2_Monitor.pl
Speichern mit Str-O Verlassen mit Str-X
Die Funktion sowie die PID des Überwachungsskript lässt sich am File SaftBMSGoodwe2.log erkennen.
2024-08-18 14:50:01 - Das Skript SaftBMSGoodwe2.py läuft nicht. Starte neu...
2024-08-18 14:50:01 - Das Skript SaftBMSGoodwe2.py wurde gestartet mit PID 27395:
2024-08-18 14:55:02 - Das Skript SaftBMSGoodwe2.py läuft bereits mit der PID 27395.
Der Batterieschrank aus der ursprünglichen Caterva-Umgebung soll in Kombination mit einem Goodwe Hybrid Wechselrichter weiter betrieben werden. Michael hat ein Python-Script geschrieben, welches die Daten aus dem Saft Batterie Management Modul extrahiert. Mit FHEM sollen diese Daten visualisiert werden.
Auf der Weboberfläche können die extahierten Daten als Plot angezeigt werden...
... Batreriespannung und Strom
... Maximale Lade und Entladeströme
... Maximale Lade und Entladeleistung
Zusätzlich können die Daten an einen MQTT-Server gesendet werden und damit in vorhandene Hausautomatisierungsysteme eingebunden werden.
Batteriemanagement System:
- BMM: P/N 776354-00
- 24Volt Netzteil z.B. Mean Well HDR-30-24
RS485-Kommunikation
- Waveshare RS485 to ETH Adapter
- Spannungsversorgung gemeinsam mit BMM am 24 Volt Netzteil
CAN-Kommunikation:
- Raspberry-PI mit Netzteil mit Hutschinengehäuse
- Waveshare 17912 2-CH CAN HAT
Modbus-Anbindung (optional)
- LAN-Apapter für GoodWe Wechselrichter. GA10081-37-00P
folgende Files können auch in einen bestehende FHEM-Installation übernommen werden wenn nicht das gesamte Repository übernommen werden soll.
-
/opt/fhem/fhem.cfg
Hier werden alle übrigen .cfg Files über einen include eingebunden. -
/opt/fhem/FHEM/00_SAFT_BMM.cfg
Reagiert auf Änderungen am Logfile SAFT_BMM-yyyy-mm.log im Verzeichnis /opt/fhem/log -
/opt/fhem/FHEM/99_myUtils.pm
Unterfunktion zur Erzeugung der Readings aus dem Logfile -
/opt/fhem/FHEM/00_MQTT_Interface.cfg
Verbindet sich in dieser Konfiguration mit dem MQTT-Server (localhost) Gibt es bereits einen MQTT Server in dieser Zeile die IP Nummer eintragen.
define mqttClient MQTT2_CLIENT 127.0.0.1:1883
Weiterhin diese Zeile im fhem.cfg auskommentieren
include ./FHEM/00_MQTT_Server.cfg
-
/opt/fhem/FHEM/00_MQTT_Server.cfg
MQTT Server falls noch kein eigener Server vorhanden. -
/opt/fhem/FHEM/00_Goodwe.cfg
Optionale Einbindung des Goodwe Wechselrichters in FHEM.
Genutzt wird die MODBUS Schnittstelle des Wechselrichters. Zur Verwendung ist der GoodWe-LAN Adapter erforderlich.
Folgende Zeile die IP-Nummer des Wechselrichters eintragen.
define GoodweET10 ModbusAttr 247 30 192.178.168.184:502 TCP
Durch diese Einbindung können folgende sämtliche Energiewerte, Leistungswerte der einzelnen Phasen sowie Backup-Ausgänge, Frequenzen, Ströme ausgelesen werden. Weiterhin Batterie-Spannung und Ströme.
Die Einbingung nutze ich für Überschussladen am der Wallbox sowie Ansteuerung der Wärmepumpe.
Bei Benutzung die Auskommentierung der folgende Zeile in der fhem.cfg entfernen.
#include ./FHEM/00_Goodwe.cfg
- Zunächst auf Github einen User anlagen falls noch nicht vorhanden.
- der .git Ordner soll im Unterordner /opt/fhem/ liegen also vorab in diesen Ordner wechseln.
cd /opt/fhem
- SSH-Schlüssel generieren:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
- SSH-Agent starten und Schlüssel hinzufügen:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
- Öffentlichen Schlüssel zu GitHub hinzufügen:
Kopiere den Inhalt deines öffentlichen Schlüssels (~/.ssh/id_ed25519.pub) und füge ihn zu deinem GitHub-Konto hinzu:
cat ~/.ssh/id_ed25519.pub
Kopiere den gesamten Inhalt.
Gehe zu GitHub, navigiere zu Settings > SSH and GPG keys und füge einen neuen SSH-Schlüssel hinzu. - Verbindung zu GitHub testen:
ssh -T [email protected]
- Git installieren:
git --version
# schon installiert?
sudo apt update
sudo apt upgrade
sudo apt install git
- Repository klonen:
cd /opt/fhem/
git clone [email protected]:meschnigm/BMM.git
sudo chmod 755 -R /opt/fhem
sudo chown -R fhem:dialout /opt/fhem/