Powerstation mit PV-Überschuss AC Laden

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Powerstation mit PV-Überschuss AC Laden

Beitrag von PeterA »

Hallo Zusammen,

demnächst gibt es hier eine Powerstation Grid (2,2kWh) von Sunbooster.
Das Teil kann zusätzlich zum DC Laden über Panels auch über 230V Geladen werden und das in Leistungsstufen also angepasst zum Überschuss.
Ebenso kann die Powerstation durch einen integrierten Wechselrichter auch wieder ins Netz Einspeisen auch abgestuft.
Zunächst möchte ich mich aber auf das AC Laden konzentrieren.
Folgendes Konzept schwebt mir vor:
Wenn Überschuss von der PV Vorhanden ist, also der momentane Watt Wert mit negativem Vorzeichen anliegt,
soll das AC Laden in Stufen entsprechend dem Überschuss erfolgen.
Der Wert hierfür kommt vom Shelly Pro3EM und ist auch in OpenHab schon verfügbar: "em0_total_act_power"
Dieses Item repräsentiert die momentane Leistung aller 3 Phasen saldiert.
Bei Lieferung im April ist eine API noch nicht für die Powerstation verfügbar ist aber gerade in Entwicklung und wird mit einem Update Nachgeliefert.
Vorerst kann das Laden und Entladen nur Zeitgesteuert erfolgen. Deshalb vorher erst mal Testen
und nur eine push Nachricht senden lassen wenn AC Laden entsprechend dem PV-Überschuss möglich ist.

Könnte man hier mit einer Switchcase Rule arbeiten ?

Zunächst würde ich 3 Stufen vorsehen:
Case 1: Überschuss -100W dann Lade mit 100W
Case 2: Überschuss -300W dann Lade mit 300W
Case 3: Überschuss -500W dann Lade mit 500W
Case 4: Überschuss 0W dann Lade nicht bzw. Beende das Laden.
ggf. Später noch feiner Abgestuft.
Wäre ein Überschussbereich sinnvoll also quasi eine Hysterese ? Also Wenn Überschuss von -50 bis -150W dann Lade usw. ?
Wie dämpfe ich zu häufiges hin und her schalten ? Oder kann das über die Hysterese abgefangen werden ?

Vielleicht kann ich ja etwas Input von euch bekommen.

Vielen Dank.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von udo1toni »

Da ja potenziell viele Abstufungen möglich sein könnten, wäre mein Tipp die SCALE Transformation.
Du könntest dazu sogar einfach ein zweites Item an den Channel "dran pappen" der den Messwert liefert. In der Definitionsdatei für Scale kannst Du dann einfach die Eingangswertebereiche angeben und welcher Ausgangswert jeweils anstehen soll.

Code: Alles auswählen

[..-2000]=10
]-2000..-1500]=9
]-1500..-1300]=8
]-1300..-1100]=7
]-110..-900]=6
]-900..-700]=5
]-700..-500]=4
]-500..-300]=3
]-300..-200]=2
]-200..-100]=1
]-100..]=0
Die Wertebereiche müssen den Gesamtbereich lückenlos abdecken. ] links bedeutet "größer als", [ bedeutet "größer oder gleich", rechts entsprechend [ "kleiner als" und ] "kleiner oder gleich". steht keine Zahl da, bedeutet es "offenes Ende", also [..-2000] -> alle Werte kleiner oder gleich -2000

Die SCALE Transformation packst Du in den Link zum Item, so dass im Item direkt der jeweilige Sollwert landet.
Alternativ zum zweiten Item kannst Du die Transformation auch von der Rule aus aufrufen, siehe auskommentierte Zeile im nachfolgenden Code.

Was die zeitliche Entzerrung betrifft, so würde ich am ehesten eine Totzeit definieren, so in dieser Art:

Code: Alles auswählen

var Timer tPowerstation = null

rule "Powerstation Ladestufe"
when
    Item LadestufeSoll changed // das Item, welches über SCALE direkt die Stufe liefert
then
    if(tPowerstation !== null) // Timer läuft bereits
        return; 
    // val soll = transform("SCALE","...Name der Datei...",newState)

    LadestufeIst.sendCommand(newState) // oder alternativ sendCommand(soll), falls Transformation innerhalb der Rule
    tPowerstation = createTimer(now.plusMinutes(1),[
        tPowerstation = null
    ])
end
Der Timer dient also lediglich dazu, die Rule vorzeitig abzubrechen. Im Timer selbst passiert absolut nichts (außer die Timer Variable zu leeren).
Natürlich bestimmt auch die Häufigkeit der Messwerte, wie oft die Ladestufe angepasst werden kann.

Schau auch in der Doku zur Powerstation nach, ob es Umschaltzeiten gibt, also falls beim Umschalten der Stufen die Powerstation zunächst den Ladevorgang stoppen sollte, um ihn dann mit der neuen Ladestufe fortzuführen, wäre das ganze vermutlich eher unpraktisch, aber vielleicht funktioniert die Regelung ja auch fließend...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von PeterA »

Hi Udo,

danke für den Interessanten Ansatz mit der Scale Transformation.
So habe das auch noch nicht verwendet.
Aber somit könnte ich elegant diese Hysterese lösen?
Also wenn der Überschuss zwischen -50 und -150Watt liegt, lade mit 100Watt z.B.?

Und da fällt mir noch etwas ein:

Nehmen wir an es liegen -300W an dann beginnt die Powerstation mit 300W zu laden. Dh. Der Überschuss wird "aufgebraucht" und geht gegen 0W. Somit würde die Rule ja die Ladung wieder beenden? Müsste hier nicht auch die PV Leistung mit einfließen?

Eine Doku zur Powerstation gibt's erst ab März. Es gibt aber schon ein paar Tests und im Video ist zu sehen das über die zugehörige App die Ladeleistung zunächst über 3 Stufen verändert werden kann.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von udo1toni »

PeterA hat geschrieben: 25. Feb 2024 23:05 Müsste hier nicht auch die PV Leistung mit einfließen?
Ja, definitiv, entsprechend muss die Transformation auf jeden Fall in der Rule stattfinden, da der Wert ja zunächst korrigiert werden muss (also durch Beaufschlagen mit der aktuellen Ladeleistung).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von PeterA »

Also bedeutet das ohne Scale zu Arbeiten?
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von udo1toni »

Nein, das bedeutet lediglich, dass Du den errechneten Überschuss innerhalb der Rule der Scale Transformation zuführen musst.
Ich hatte ja schon die betreffende Code Zeile mit eingebaut... muss halt noch um den weiteren zu berücksichtigenden Wert ergänzt werden...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von PeterA »

Irgendwie hab ichs noch nicht ganz verstanden :/

Also das SCALE direkt im Item schon aber das hier noch nicht.
udo1toni hat geschrieben: 26. Feb 2024 10:38 Nein, das bedeutet lediglich, dass Du den errechneten Überschuss innerhalb der Rule der Scale Transformation zuführen musst.
Ich hatte ja schon die betreffende Code Zeile mit eingebaut... muss halt noch um den weiteren zu berücksichtigenden Wert ergänzt werden...
Und Ebenso noch nicht verstanden ob ich jetzt mit dem Auskommentierten
" // val soll = transform("SCALE","...Name der Datei...",newState)" arbeiten soll oder nicht ?

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von udo1toni »

Also, da der gelieferte Messwert alleine ja nicht ausreicht, musst Du den zu verwendenden Wert aus mehreren unterschiedlichen Messwerten errechnen. Entsprechend musst Du die SCALE Transformation in der Rule nutzen, also etwa so:

Code: Alles auswählen

var Timer tPowerstation = null

rule "Powerstation Ladestufe"
when
    Item Verbrauch changed or
    Item Produktion changed
then
    if(tPowerstation !== null) // Timer läuft bereits
        return; 
    var Number nVerbrauch = 0.0
    if(Verbrauch.state instanceof Number)
        nVerbrauch = (Verbrauch.state as Number).floatValue
    var Number nProduktion = 0.0
    if(Produktion.state instanceof Number)
        nProduktion = (Produktion.state as Number).floatValue

    val Number nExcess = nVerbrauch + nProduktion
    val soll = transform("SCALE","ladestufe.scale",fExcess)

    LadestufeIst.sendCommand(soll) 
    tPowerstation = createTimer(now.plusMinutes(1),[
        tPowerstation = null
    ])
end
Wobei ich inzwischen etwas irritiert bin...
Verständnisfrage:
Wie exakt sind die Geräte miteinander verschaltet? Wo misst Du? Wo hängen Wechselrichter und Powerstation in Bezug auf die Messeinrichtung?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von PeterA »

Hallo Udo,

die "Hardware" sieht grob so aus:

Shelly Pro3EM direkt hinter dem "leider" nur Bezugszähler.
(Zähler wurde zwar vom Netzbetreiber im Zuge der Balkon PV getauscht aber eben nur ein Bezugszähler der bei Einspeisung einfach nur 0 Watt ausgibt)
Somit kommen Leistungswerte >0 vom Zähler und <0 vom Shelly (wobei der natürlich auch Werte >0 ausgibt)

Kurz:
Es gibt ein "Power" Item vom Shelly welches ich hier überall verwende.

Nach dem Zähler und Shelly hängt die ganze Hütte inkl. PV

Die Erzeugte Leistung von der PV kommt direkt vom WR (über OpenDTU).

Die Powerstation wird dann zunächst irgendwo im Keller stehen und zu Beginn nur über AC Geladen werden.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 13984
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Powerstation mit PV-Überschuss AC Laden

Beitrag von udo1toni »

Ok, dann geht es eigentlich darum, dafür zu sorgen, dass der Zähler einen Wert möglichst nah bei 0 liefert (im Grunde auch wenn der Bezug größer als 0 ist, dann würde die Powerstation halt den "fehlenden" Strom liefern).

Der anders ausgedrückt: Eigentlich musst Du nur schauen, ob der Messwert kleiner als 0 ist (meinetwegen wie viel) und wenn es so ist, ausrechnen, um wie viel Du den Ladestrom erhöhen musst (also nicht den absoluten Ladestrom, sondern die relative Änderung). Genauso, wenn der Messwert größer als 0 ist, musst Du bestimmen, um wie viel Du den Ladestrom verringern musst. Größer 0 bedeutet also nicht Ladung aus, sondern Ladestrom senken. Insofern wird Dir die Scale Transformation hier auch nur bedingt helfen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten