Steuerung für Batteriespeicher und Photovoltaikanlage

Begonnen von kores, 12 Januar 2015, 20:01:08

Vorheriges Thema - Nächstes Thema

Audi_Coupe_S

So, ich kann jetzt auch die Pylontech US3000 auslesen.

Dafür sind ein paar kleine Änderungen am Protokoll nötig.
Wenn jemand Interesse hat, dann kann er sich gerne melden.

ch.eick

Zitat von: Audi_Coupe_S am 23 Dezember 2020, 17:12:52
So, ich kann jetzt auch die Pylontech US3000 auslesen.

Dafür sind ein paar kleine Änderungen am Protokoll nötig.
Wenn jemand Interesse hat, dann kann er sich gerne melden.
Ich habe meine Erkenntnisse einfach im Wiki dokumentiert. Ersten weiß ich dann was ich gemacht habe und alle anderen können es auch finden ;-)
Einfach eine Seite mit dem Gerätenamen anlegen und alles rein schreiben.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

satprofi

Zitat von: Audi_Coupe_S am 23 Dezember 2020, 17:12:52
So, ich kann jetzt auch die Pylontech US3000 auslesen.

Dafür sind ein paar kleine Änderungen am Protokoll nötig.
Wenn jemand Interesse hat, dann kann er sich gerne melden.

wo ist der unterschied zu den 2400er?
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Audi_Coupe_S

Die Pylontech US3000 antworten auf die Anfrage nach den Daten mit 140Byte statt 128Byte.

Die Gesamt- und noch verfügbare Kapazität befinden sich an anderer Stelle im Antwortstring.

Desweiteren müssen die Anfragen mit dem EOI 0D Hex beendet werden, was aber eigentlich laut Doku bei den US2000er Modellen auch so sein müsste.
Im Originalmodul wird hier aber 5C 72 Hex gesendet. Das funktioniert zumindest bei mir mit dem US3000 nicht.

@ch.eick: Ich wäre durchaus bereit, meine Erkenntnisse zu dokumentieren. Allerdings habe ich keine Ahnung, wie ich ins Wiki schreiben kann und darf.
Desweiteren ist das Modul ja durch jemand anderes geschrieben worden, dem ich nicht herein pfuschen möchte.

Auch wäre es mit recht einfachen Modifikationen möglich, das Modul so umzubauen, das es sowohl die US2000er, als auch die US3000er abdecken könnte. Da ich aber keine 2000er zum testen habe, müsste das in Zusammenarbeit mit anderen Usern passieren.

Dazu wäre ich gerne bereit. Dann könnten wir zusammen das Modul für beide Typen nutzbar machen.

satprofi

danke.
dachte der aufbau ist selbiges, nur zellenzahl verschieden.

wenn du mir das modul zukommen lassen könntest, würde ich versuchen die 2000er damit auszulesen
lg
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

ch.eick

Zitat von: Audi_Coupe_S am 25 Dezember 2020, 11:03:29
@ch.eick: Ich wäre durchaus bereit, meine Erkenntnisse zu dokumentieren. Allerdings habe ich keine Ahnung, wie ich ins Wiki schreiben kann und darf.
Desweiteren ist das Modul ja durch jemand anderes geschrieben worden, dem ich nicht herein pfuschen möchte.
Ich würde einfach mal den Maintainer anschreiben  und die Dokumentationshilfe anbieten. Ansonsten Dokumentiere doch einfach Dein Anwendungsbeispiel, da hat sicher niemand etwas dagegen und Du hast einen zentralen Ort für Deine Doku. Ich verwende ja auch nur Module anderer und habe einfach zusammengefasst, was ich daraus gemacht habe. Dann noch ein Thread dazu verlinken und schon denken alle anderen mit :-)
Zugriff zum Wiki

Frohes Fest
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

satprofi

Zitat von: Audi_Coupe_S am 25 Dezember 2020, 11:03:29
Die Pylontech US3000 antworten auf die Anfrage nach den Daten mit 140Byte statt 128Byte.

Die Gesamt- und noch verfügbare Kapazität befinden sich an anderer Stelle im Antwortstring.

Desweiteren müssen die Anfragen mit dem EOI 0D Hex beendet werden, was aber eigentlich laut Doku bei den US2000er Modellen auch so sein müsste.
Im Originalmodul wird hier aber 5C 72 Hex gesendet. Das funktioniert zumindest bei mir mit dem US3000 nicht.

@ch.eick: Ich wäre durchaus bereit, meine Erkenntnisse zu dokumentieren. Allerdings habe ich keine Ahnung, wie ich ins Wiki schreiben kann und darf.
Desweiteren ist das Modul ja durch jemand anderes geschrieben worden, dem ich nicht herein pfuschen möchte.

Auch wäre es mit recht einfachen Modifikationen möglich, das Modul so umzubauen, das es sowohl die US2000er, als auch die US3000er abdecken könnte. Da ich aber keine 2000er zum testen habe, müsste das in Zusammenarbeit mit anderen Usern passieren.

Dazu wäre ich gerne bereit. Dann könnten wir zusammen das Modul für beide Typen nutzbar machen.

hallo.
Modul funktioniert auch.
Zum Anfragestring habe ich nochmals nachgesehen bei PylonTech, da steht das der "alte" , bei dir nicht funktionierende, aber richtig ist. If we have a character: "~1203400456ABCEFEFC72\R
warum es bei dir nicht funktioniert, aber dein neuer aber auch, entzieht sich meiner kenntnis.

Ich versuche gerade das charge/discharge Managment Info einzufügen/auszulesen.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

Hallo.
Anbei die neuesete Version, Änderungen:
SerialNumber = original Label
BatteryName, ManufactorName
SoftwareVersion
ChargeManagmentInfo

SystemParameter folgt

Danke auch an User AUDI_Coupe_S für die Einarbeitung der US3000 Serie.

LG
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

sparkiie

Na hier hat sich ja einiges getan in den letzten Wochen.

Leider muss ich hier noch einmal die Frage stellen, ob das auslesen auslesen über USB auch möglich wäre?
Mein Server liegt auf den Pylontechs und da möchte ich nicht extra den wegen über die IP gehen...

Vielen Dank für Eure Unterstützung!

Grüße

tschirch

#114
Hallo Leute,
ich hoffe, dass das Thema noch jemanden interessiert. Viele Beiträge in diesem Thread gingen eigentlich am Thema vorbei und bezogen sich nur auf die Pylontech-Batterien. Das gehört zwar mit dazu, macht aber nur einen kleinen Teil der Kommunikation einer Speicheranlage aus. Matthias hat zwar seine Geräte aufgelistet, wie er es mit FHEM gelöst hat, bleibt aber im Dunkeln. Was ist mit Alex seinem Vorhaben geworden? Er hat diesen Thread schließlich begonnen. Da ich ein großer Fan  von FHEM bin, war für mich klar, das mache ich natürlich mit einem RasberryPi, der nur für die Regelung des Batteriespeichers da ist. Gut, dass Prof. König zurückgerudert ist, als er meinte es müsse doch möglich sein, trotz der relativ niedrigen Geschwindigkeit eines FHEM-Systems auf einem RPi, es damit zu probieren. Ich konnte den Nachweis erbringen. Die CPU-Auslastung schwankt zwischen 15 bis 20% bei einem RPi 3.

Genau wie bei Alex, hier meine Komponenten:

Shelly 1PM
Interface elektronischer Stromzähler (bei ebay, mein eigenes Projekt)
2 Pylontech US3000
Multiplus II
MK3-USB
USR-TCP232
RaspberryPi 3 A+
ATS 230V 2P/63A
zusammen ca. 3.800€ für 2,4kW und 6kWh (nutzbar)

Funktionsweise: Überschüssige Solarenergie wird nicht ins Netz geschoben, sondern wird in den Batterien gespeichert. Die Leistung zum Netz wird quasi auf 0W geregelt. Gibt es keine Sonne mehr wird die zur Verfügung stehende zwischengespeicherte Energie wieder für die eigenen Verbraucher verwendet, so dass ebenfalls die Leistung zum Netz zu 0W gemacht wird. Das geht solange, bis die Energie der Batterie auf ein Minimum abgesunken ist. Erst jetzt wird wieder Leistung aus dem Netz bezogen. Meine Anlage hat eine Größe, die es ernöglicht, dass fast nichts in das Netz eingespeist wird. Die Batterien sind groß genug, um die Energie eines Sonnentages komplett aufzunehmen. In meinem Haus wird auch soviel Energie verbraucht, dass am nächsten Tag wieder komplett die Sonne scheinen kann. Das sind dann 100% Eigenverbrauch! Ein Vorteil des Muliplus liegt darin, dass er unterbrechungsfrei Lasten versorgen kann. Ich benutze das für Server, Fritzbox, Hausautomation usw. Damit man das Batteriesystem auch mal zu Wartungszwecken abschalten kann, habe ich mir noch einen automatischen Transferschalter gegönnt. Der übernimmt die Umschaltung zum normalen Netz, wenn der Multiplus nicht arbeitet (nicht im Schaltplan enthalten).

Das Übersichtschaltbild als Floorplan in FHEM seht ihr im Anhang.

Was wird alles gemessen und wie läuft die Kommunikation?
Eigentlich würde das Wattmeter netzseitig ausreichen, um dort die Leistung zu null regeln zu können. Ich habe mir aber noch einen Shelly gegönnt, um die Leistung der Solarpaneele messen zu können. Folgende Messwerte stehen damit zur Verfügung Netzleistung, Solarleistung, Multiplus-Eingangs- und -Ausgangsleistung. Die Leistung für die nichtgestützten Verbraucher ist damit berechenbar. Alle Wattmeter liefern im Sekundentakt (so in etwa) Werte. Diese werden vom FHEM zu Anzeige- und Speicherzwecken weiterverarbeitet (5min- und Stundenrhythmus) und natürlich für die Regelung.
Das Interface zum Stromzähler ermöglicht die Nutzung des elektronischen Zählers des Stromversorgers. Das spart 250€. Software ist Tasmota. Werte per WLAN bzw. MQTT im Netz. Multiplus wird mit dem MK3-USB Interface dirtekt an den Raspberry gesteckt. Da läuft eine Python-SW, die Werte zwischen Multiplus und FHEM austauscht (Freeware). Batteriewerte landen über das USR-TCP232 im LAN.
Die Regelung im FHEM übernimmt ein PID-Regler. Alle im LAN und WLAN zur Verfügung stehenden Werte werden durch den RPi undFHEM verarbeitet.

Fragen und Meinungen zum Projekt sind immer willkommen.

VG, Steffen.

ch.eick

Hallo Steffen,
ich habe zwar nichts von diesen Komponenten, finde es jedoch ziemlich spannend.
Wie ich ja schonmal geschrieben hatte wäre es doch toll eine Wiki Seite einzurichten, dann  könnte man dort die Umsetzung mal komlett und übersichtlich ablegen.
Für meine PV-Lösung mit Kostal habe ich das auch schon gemacht und ertappe mich schon dabei meine eigene Dokumentation zu lesen :-)

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

schumi_x

Moin,
ich bin sehr dran interessiert, meine Bestehende E3DC Anlage zu erweitern.
Die hat bereits einen Stromspeicher und ist aber leider nicht weiter aufrüßtbar.
Ich suche also einen Stromspeicher, der einfach parallel zu meiner Anlage hängt, der aber nur Strom aufnimmt und abgibt, wenn ich das möchte.
Nämlich, wenn mein Speicher voll ist, um Einspeisen in Netz zu verhindern, und den Strom wieder abgibt, wenn der Speicher meiner E3DC Anlage leer ist.

Dazu müsste ich irgendwie das Laden/Entladen Kontrollieren können.
Bei der ECO8 Lösung scheint man das ja machen zu können.

Hat da schon mal einer drüber nachgedacht?

Schöne Grüße

Thomas.

roli

Zitat von: pmichel am 10 November 2020, 18:48:17
Zitat von: Daniel_pir am 20 Januar 2019, 22:01:06Hat dies auch schon mal jemand mit einer ECO8 realisiert?

Ist zwar schon eine Weile her, aber vielleicht suchst Du das für die ECO8:
# ----------------------------------------------------------------
# Sonnen.de Batterie
# ----------------------------------------------------------------
define SonnenBatterie HTTPMOD http://<IP-Adresse>:8080/api/v1/status 30
attr SonnenBatterie alias PV-Batteriespeicher
attr SonnenBatterie extractAllJSON 1
attr SonnenBatterie group Photovoltaik
attr SonnenBatterie room PV,Technik
attr SonnenBatterie stateFormat {sprintf("Verbrauch %d W: \n%d W aus PV \n+ %d W %s Speicher \n+ %d W %s Grid. \nSOC %d%%",\
ReadingsVal($name,"Consumption_W",0),\
ReadingsVal($name,"Production_W",0),\
abs(ReadingsVal($name,"Pac_total_W",0)),\
ReadingsVal($name,"FlowConsumptionBattery",1) !=0 ? "aus" : "in",\
abs(ReadingsVal($name,"GridFeedIn_W",0)),\
ReadingsVal($name,"FlowConsumptionGrid",1) !=0 ? "aus" : "in",\
ReadingsVal($name,"USOC","-1")\
)}
attr SonnenBatterie set01Name Charge
attr SonnenBatterie set01URL http://<IP-Adresse>:80/api/v2/setpoint/charge/$val
attr SonnenBatterie setHeader1 Auth-Token: <AUTH-TOKEN>
attr SonnenBatterie set01Data {}
attr SonnenBatterie set02Name Discharge
attr SonnenBatterie set02URL http://<IP-Adresse>:80/api/v2/setpoint/discharge/$val
attr SonnenBatterie set02Data {}

Mit
set SonnenBatterie Charge 1000lädt die Batterie mit 1 kW
oder
set SonnenBatterie Discharge 0stoppt z.B. das entladen (siehe API Doku von Sonnen)

Grüße, Peter


Mittlerweile gibt es das API Version 2 und dort ist es etwas geaendert. Also beachtet dies.
FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

rcks22

Hallo an alle,

habe eine eco 5, habe mich eingelesen und bereits so manches umsetzen können.
Ich kann im fhem bereits den "operationmode" erfolgreich umschalten:

http://ip:3480/data_request?id=action&output_format=xml&DeviceNum=7&serviceId=urn:psi-storage-com:serviceId:Battery1&action=SetOperationMode&newOperationModeValue=$val

Ist es auch möglich, beim eco 5, die folgenden Parameter mittels fhem zu setzen:
"WattsDischarge", "WattsCharge"?

Ich hätte das wie folgt probiert:

http://ip:3480/data_request?id=action&output_format=xml&DeviceNum=7&serviceId=urn:psi-storage-com:serviceId:Battery1&action=SetWattsCharge&newWattsChargeValue=1000

es kommt aber die folgende Meldung:
ERROR: No implementation

Das ändern der DeviceNum hat nicht geholfen.
Kann mit bitte wer auf die Sprünge helfen? - vielen Dank im voraus!

LG Ramazan

roli

Also ich kenne die ECO5 nicht, aber ich würde vermuten, dass man ebenfalls das gleiche API wie bei ECO8 verwenden kann  (API V2 ) .
HAst du dies versucht ?

Damit geht mit HTTPMOD alles recht problemlos.

  # auf  Manuellen Mode schalten
  $url_cmd = "curl -sX PUT --data 'EM_OperatingMode=$soll_mode' --header 'Auth-Token: $Auth_Token'
      http://sb-xxxxx:80/api/v2/configurations";
  $content = `$url_cmd `;
  rw_Trace( 3,"Ergebnis von curl: $content ");
  if ( $content eq '{\"EM_OperatingMode\":\"1\"}' )
    {
Log 1, "  #### Set Batterie OperationsMode  Manuell  fehlgeschlagen";
return;
    }
 
 

Melde dich falls dies nicht weiterhilft.
Bei mir funktioniert es ohne Probleme.
FHEM auf Debian Wheezy(RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp, GPIO based Relais-Schalter;i2c Bus
Integration von Sonnenbatterie Eco8;
Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag