Skip to content

meschnigm/BMM

Repository files navigation

erweitertes Python Script von Michael - SaftBMSGoodwe2.py

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.

Monitor Script for SaftBMSGoodwe2.py - SaftBMSGoodwe2_Monitor.pl

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.

Kurzanleitung FHEM_BMM

FHEM_BMM_PIC1.png

Motivation

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.

Funktionsumfang

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.

Aufbau:

image_GIMP.png

Stückliste:

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

FHEM Files:

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

    00_Goodwe_Bild.png

Daten aus Github überspielen (ungetestet)

  • 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

Benutzerrechte für FHEM anpassen:

sudo chmod 755 -R /opt/fhem
sudo chown -R fhem:dialout /opt/fhem/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published