[BETA][MODUL]E3DC RSCP Connect (MQTT)

IP-Symcon Modul für die Steuerung des E3DC Hauskraftwerkes über das RSCP Protokoll

Die Nutzung des Moduls geschieht auf eigene Gefahr ohne Gewähr.

Dokumentation

Inhaltsverzeichnis

  1. Funktionsumfang
  2. Systemanforderungen
  3. Installation
  4. Module
  5. ChangeLog

1. Funktionsumfang

Mit diesem Modul kann man das E3DC Hauskraftwerk über das RSCP Protokoll steuern. Da für das RSCP Protokoll leider keine direkte Implementierung in PHP zur Verfügung steht, nutzt dieses Modul die von der RSCP2MQTT - Bridge (GitHub - pvtom/rscp2mqtt: Bridge between an E3/DC S10 home power station and an MQTT broker based on the RSCP protocol) von PVTOM zur Verfügung gestellten MQTT-Topics zum empfangen und zum senden. RSCP2MQTT ist auf einem Raspbery PI lauffähig.
Danke an dieser Stelle auch an PVTOM für die Implementierung der SET_POWER Befehle.

Der Hauptaugenmerk liegt zu Beginn bei dem Modul auf der Steuerung des Hauskraftwerkes, da hier viel mehr Möglichkeiten zur Verfügung stehen im Vergleich zu der alternativ möglichen Anbindung über Modbus TCP.

Es werden aber nach und nach weitere Status Variablen/Werte integriert werden.

Grundsätzlich kann natürlich auch jede andere Software genutzt werden, welche auch die RSCP Werte per MQTT bereitstellt. Das Modul erwartet die Werte im aktuellen Versionsstand allerdings in den von RSCP2MQTT definierten Topics.

2. Systemanforderungen

  • IP-Symcon ab Version 5.5

3. Installation

RSCP2MQTT

Als Voraussetzung für die Nutzung diese Moduls muss die RSCP2MQTT - Bridge die Werte per MQTT an den Symcon MQTT Server senden. Eine detaillierte Installationsanleitung für den RSCP2MQTT findet ihr unter:

Installation des Moduls

Das Modul ist im Symcon Modul Store verfügbar und kann von dort einfach installiert werden.

Einrichten der Modul-Instanz

Nachdem eine Instanz des Moduls angelegt wurde, muss diese eingerichtet werden.

Da das Modul die Werte direkt von dem MQTT Server als Parent erhält, sind keine weiteren Einstellungen für die Verbindung in der Modul Instanz notwendig.

Für die möglichen Statusvariablen gibt es eine Auswahlliste, in der man Variablen, welche man nicht benötigt, einfach auch abwählen kann.

4. Module

4.1. RSCP-Connect

Das Modul „RSCP-Connect“ dient als Schnittstelle zu einem lokal installierten E3DC Hauskraftwerk über das RSCP Protokoll via MQTT Server. Es liefert die Daten des E3DC Hauskraftwerkes als Statusvariablen und bietet die Möglichkeit Einstellungen des Hauskraftwerkes zu ändern. Vor allem bietet das Modul auch die Möglichkeit über die „SET_POWER“ Befehle das EMS vom Hauskraftwerk direkt zu steuern, um so das Laden/Entladen direkt zu beeinflussen.

4.1.1 Status Variablen

Die RSCP2MQTT Bridge sendet Updates zu den verschiedenen Variablen nur bei Änderung einer Variablen. Somit kann es sein das Variablen länger kein Update erhalten, wenn keine Änderung vorliegt.

Im folgenden werden die verfügbaren Statusvariablen aufgelistet:

"Leistung PV" 
"Leistung Batterie" 
"Leistung Haus" 
"Leistung Netz" 
"Leistung Ext. Quelle" 
"SOC" 
"Batterie Zyklen" 
"Batterie Status" 
"Maximale Entladeleistung" 
"Maximale Ladeleistung" 
"Wettergeführtes Laden" 
"Aktueller Set Power Wert" 
"Software Version" 
"Installierte Leistung" 
"EMS Modus" 
"Ladesperre" 
"Entladesperre" 
"Notsrom verfügbar" 
"Ladung begrenz" 
"Einspeisung Limitiert" 
"Lade Sperrzeit" 
"Entlade Sperrzeit" 
"Betriebsmodus" 

4.1.2. Funktionen

force_update()

Mit der Funktion sendet die RSCP2MQTT-Bridge für alle Werte die Daten. Somit auch für Variablen welche sich nicht geändert haben.

set_refresh_interval(int $value)

Diese Funktion ändert das Update-Intervall mit der die RSCP2MQTT-Bridge die Werte sendet. Es sind Werte zwischen 1 und 10 Sekunden möglich. Damit werden zu Laufzeit die in der Konfiguration der RSCP2MQTT-Bridge definierten Update Zeit.

set_manual_charge(int $value)

Mit dieser Funktion kann man eine manuelle Speicherladung starten. Es muss der Wert in Wh übergeben werden. Dieser kann in 100Wh Schritten erfolgen.

set_weather_regulation(bool $value)

Mit der Funktion kann man das Wetter geführte Laden aktivieren/deaktivieren

set_power_limits_mode(bool $value)

Die Funktion steuert ob die Lade-/Entladeleistung gesetzt werden können oder ob die Werte vom E3DC automatisch gesetzt werden.

set_max_discharge_power(int $value)

Mit dieser Funktion kann man den Wert für die Maximale Entladeleistung des Hauskraftwerkes in Watt setzen. Es können Werte in 100 Watt Schritten gesetzt werden. Der Höchstwert hängt vom vorhandenen Hauskraftwerk ab und muss dementsprechend gesetzt werden.

set_max_charge_power(int $value)

Mit dieser Funktion kann man den Wert für die Maximale Entladeleistung des Hauskraftwerkes in Watt setzen. Es können Werte in 100 Watt Schritten gesetzt werden. Der Höchstwert hängt vom vorhandenen Hauskraftwerk ab und muss dementsprechend gesetzt werden.

SET_POWER Funktionen

Mit den SET_Power Funktionen kann man dass EMS direkt beeinflussen. Somit hat man alle Möglichkeiten das Lade/Entladeverhalten des Systems komplett selbst zu steuern. Mit diesen Befehlen werden keine Werte fix im Hauskraftwerk gesetzt, sondern die Werte von diesen Befehlen sind nur wenige Sekunden gültig und müssen daher zur Steuerung ständig wiederholt werden. Kommt nach ca 5 Sekunden nicht ein erneuter Wert, fällt das Hauskraftwerk wieder in seinen normnalen Modus zurück.
Über den Parameter $cycles kann man übergeben, für wie viele Intervalle () der Befehl wiederholt werden soll… Somit muss man nicht alle paar Sekunden den Befehl wiederholen, wenn man den Modus und die Leistungswerte nicht ändern will. Die Intervalldauer entspricht der im RSCP2MQTT eingestellten Intervallzeit. Wenn die Intervalle von einem Befehl noch nicht abgelaufen sind, können diese mit einem neuen Befehl einfach überschrieben werden.

!!! Mit diesen Befehlen muss man sehr behutsam umgehen, da damit auch evtl. Einspeise-Limits übersteuert werden können. Zusätzlich ist es möglich dass die Ladeleistung höher als die PV Leistung eingestellt wird, und somit auch Netzstrom in den Akku geladen wird. Das Verwenden der Befehle erflogt auf eigene Verantwortung !!!

set_power_mode_auto()

Der Befehl setzt das Hauskraftwerk in den Auto Modus zurück, so dass es wieder im „Normalen“ Modus läuft.

set_power_mode_idle(int $cycles)

Dieser Befehl versetz das Hauskraftwerk in den „IDLE“ Mode, es wird in dem Modus dann der Akku weder geladen noch entladen.
Über den Parameter $cycles kann man übergeben, für wie viele Intervalle () der Befehl wiederholt werden soll.

set_power_mode_discharge(int $value, int $cycles)

Dieser Befehl versetzt das Hauskraftwerk in den „ENTLADE“ Mode, es wird in dem Modus, der Akku mit dem übergebenen Wert entladen.
Über den Parameter $value übergibt man die Entladeleistung in Watt.
Über den Parameter $cycles kann man übergeben, für wie viele Intervalle () der Befehl wiederholt werden soll.

set_power_mode_charge(int $value, int $cycles)

Dieser Befehl versetzt das Hauskraftwerk in den „LADE“ Mode, es wird in dem Modus, der Akku mit dem übergebenen Wert geladen.
Über den Parameter $value übergibt man die Ladeleistung in Watt.
Über den Parameter $cycles kann man übergeben, für wie viele Intervalle () der Befehl wiederholt werden soll.
!! Hier können bei nicht reinen DC Systemen auch Werte übergeben werden, welche höher als die PV Leistung sind, und somit eine Netzladung auslösen!!

set_power_mode_gridcharge(int $value, int $cycles)

Dieser Befehl versetzt das Hauskraftwerk in den „NETZLADE“ Mode, es wird in dem Modus, der Akku mit dem übergebenen Wert aus dem Netz geladen.
Über den Parameter $value übergibt man die Ladeleistung in Watt.
Über den Parameter $cycles kann man übergeben, für wie viele Intervalle () der Befehl wiederholt werden soll.
!! Hier wird aus dem NETZ geladen !!

5. ChangeLog

Änderungshistorie

Version 0.8 Beta

  • Initialer Commit

Hiermit steuere ich endlich mein erstes Modul bei.

Ich habe das Modul nun ca 3 Monate bei mir mit meinem S10 Pro im Live-Betrieb getestet.

Freue mich über Feedback und bei Erweiterungswünschen einfach melden.

Philipp

Danke Philipp für deine Arbeit. Im Sommer wird ein E3DC installiert, da werde ich es bestimmt nutzen.

Hallo Philipp,

ich habe das Modul gerade installiert. Hat problemlos funktioniert.
Vielen Dank dafür! Ich habe alle Variablen aktiviert.

Ich habe allerdings ein paar kleinere Probleme. Als erstes funktioniert bei mir das Schalten der Boolean Variablen nicht. Ich musste da ja schon beim Testen ohne deines Moduls 1 und 0 verwenden anstatt true und false.
Wäre es möglich das du das änderst?

Kannst du mir auch sagen welche Variable die im Screenshot gekennzeichnete sein soll?


Bei mir wird diese nicht aktualisiert. Auch nicht manuell.


Für die Wetterprognose wird der Status geupdatet. Da klappt nur wie oben schon erwähnt das Schalten nicht.

Klappt bei dir das was bei mir nicht klappt? Woran das dann wieder bei mir liegt?

Danke schon mal für deine Hilfe und Grüße
Stephan

Update mit Änderung auf 1/0 ist online.
Die fehlende Variable aus dem Screenshot ist auch ergänzt.

Grüße
Philipp

Hi,

sehr schick, gefällt mir gut die Umsetzung. Mir fehlen aber noch viele Variablen wie
autarky, consumed, pvi/power/string1 und 2 und die Ladeleistung Wallbox, wobei die noch nicht abgefragt und weitergeleitet werden.

VIele Grüße

Hi,

hab mal ein PR erstellt, darin ist ein neues Profil für Prozente sowie die Variablen Autarkie, Eigenverbauch. Zudem gibt es noch die Leistung vom DC_String, diese sind standardmäßig ausgeschaltet, da auch die .config von rscp2mqtt passend konfiguriert sein muss.

Viele Grüße

Hi,

danke für den Beitrag zur Mapping Tabelle :slight_smile:
hab den PR gerade gemerged und werde gleich ein Modul Update einstellen.

Viele Grüße
Philipp

Hi,

ich hab das erste Augenmerk vor allem auf die SET_POWER Befehle gelegt, da ich diese benötige um die Lade / Entladelogik so zu steuern, dass ich den vorhandenen PVStrom zu den Zeiten nutze wo ich bei Tibber hohe Preise habe und den Netzstrom ziehe wenn die Börsenpreise niedrig sind.
Und diese Befehle sind ja per Modbus nicht möglich.

Weitere Variablen können aber natürlich problemlos erweitert werden.

Viele Grüße
Philipp

Hi,

Das war mein zukünftiger Plan wenn mein Vertrag beim bisherigen Stromanbieter ausläuft. Ich nutze das E3DC Modul seit einiger Zeit gar nicht sondern frage die paar Variablen dich ich brauche manuell ab, da aber fast alle Variablen auch über RSCP2MQTT kann ich Modbus ganz abhaken.

Wenn du möchtest kann ich die Liste erweitern. Ich würde aber die Forms ändern und die Variablen gruppieren.

Sozusagen EMS, Battery, PM, PVI, System jeweils sortieren, was meinst Du?

VIele Grüße