PV überschuss -> E Patrone

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

Moderatoren: Cyrelian, seppy

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

PV überschuss -> E Patrone

Beitrag von mad-mike »

Moin zusammen.


Ich Möchte meinen Überschüssigen PV Strom nicht in Netz einspeisen, sondern in den Heizungspuffer schieben. Angedacht ist es eine Heizpatrone mit 4,5 KW (3x1500 Watt).

Ich habe schon in den Anderen Themen mir Ideen, und Anreize geholt, und habe dort eine Regel genommen, und versucht diese anzupassen. Ich möchte es einem Hochleistungsdimmer von LCN realisieren.

Ob der Wechselrichter wir eine Watt zahl nennen kann, (Einspeisung) oder ob ich eventuell mit einem zusätzlichen Messgerät Arbeiten muss, weiss ich noch nicht. Ich dachte dann ggf an den Shelly PRO 3EM.

Nun komme ich aber nicht Weiter:

Code: Alles auswählen

rule "ePatrone 2"
when
//    Item pvsim changed or
    Item FRITZDECT2101_Leistung changed or
    Item StromBedarf changed
then
    if((ePatrone.state != ON)){                                                 
            Ladeleistung.sendCommand(0)                                             // Wert 0
            logInfo("ePatrone","Leistung = {}% ",Ladeleistung.state)
        return;                                                                 // Abbrechen
        }
    val Number nPV   = if(FRITZDECT2101_Leistung.state instanceof Number) (FRITZDECT2101_Leistung.state as Number).floatValue else 0
//    val Number nPV   = if(pvsim.state instanceof Number) (pvsim.state as Number).floatValue else 0
    val Number nHaus = if(StromBedarf.state instanceof Number) (StromBedarf.state as Number).floatValue else 30
    
    val Number nDiff = ((nPV*50) - nHaus) //ändern
    var Number nStufe = 0
    if(nDiff <= 0) nStufe = 0
        else if(nDiff < 150) nStufe = 10
        else if(nDiff < 165) nStufe = 11
        else if(nDiff < 160) nStufe = 12
//...
        else if(nDiff < 1455) nStufe = 97
        else if(nDiff < 1470) nStufe = 98
        else if(nDiff < 1485) nStufe = 99    
        else nStufe = 100
    logInfo("ePatrone","Leistung = {}% / Überschuss = {} Watt ",nStufe,nDiff)
    Ladeleistung.sendCommand((nStufe)/10)                                       // Senden an LCN Dimmer
end


Nun soll bei 100 = Relais schalten und Dimmer wieder auf 0 gesetzt werden. :!:

Die liste will ich nun noch bis 300 % fortführen. Wobei der Dimmer immer bei 10% starten soll.

Also Relais Schaltet und dann geht weiter mit

Code: Alles auswählen

nStufe = 110
Wobei der Dimmer dann halt 10% und Relais 1 = ON.
Die Frage geht ja auch weiter wenn ich dann bei 200% angekommen bin, Relais 2 = ON und Dimmer geht wieder bei 10 % Los...

Code: Alles auswählen

nStufe = 210 
Relais 1 = ON
Relais 2 = ON
10% = sende an LCN dimmer...


Achso, natürlich müssen die Relais auch wieder auf "OFF" gesetzt werden, wenn die Leistung der PV Anlage sinkt.

Ich vermute Mal, das sich der Energie Meter bei Ausführung der rule dann immer auf annähernd 0 geht, müsste man die E-Patrone ja vor dem Energie Meter abnehmen und eine weitere Überwachung einbauen... (Shelly misst Überschuss aber nicht die E-Patrone, 2te Shelly misst nur E-Patrone...)

Oder bin ich auf einen völlig falschen weg? :?:

Danke und Gruss.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: PV überschuss -> E Patrone

Beitrag von udo1toni »

Also, ein paar Fragen dazu...

Warum fängst Du mit 10 % an?
Wäre es nicht sinnvoller, den Heizstab grundsätzlich mit allen drei Phasen zu betreiben?
Wozu 300 if-else Konstrukte? Wenn Du den Leistungsüberschuss hast, kannst Du daraus direkt die Stufe berechnen:

Code: Alles auswählen

    var Integer iStufe = (nDiff / 45).intValue
    if(iStufe < 0)
        iStufe = 0
    if(iStufe > 100)
        iStufe = 100
Gegeben, dass nDiff bei Überschuss größer 0 ist und dem Überschuss in Watt entspricht. Da der Heizstab insgesamt 4500 W verbrät, wird Stufe 100 (= volle Leistung) bei 4500 W Überschuss erreicht. Ist die Differenz negativ, muss die Stufe auf 0 begrenzt werden. Ist die Stufe über 100, muss sie auf 100 begrenzt werden.
Hast Du drei Dimmer für die drei Phasen, so kannst Du die Last immer schön gleichmäßig verteilen und alle Dimmer gleichmäßig auf den gleichen Wert regeln.
Ach so... immer auch daran denken, dass die Einspeisung möglichst gleichmäßig auf die Phasen verteilt sein sollte. In der Praxis ist das nur bei größeren Anlagen wichtig, also über 10 kW Peak, aber auch im kleinen Bereich sollte man natürlich immer versuchen, das Netz möglichst gleich auszulasten.


Allerdings... vermutlich wird die Leistungskurve des Dimmers nicht linear sein, da müsste man entweder ein paar Tests machen oder die technische Beschreibung durchforsten. Vermutlich wird es auf Ersteres hinauslaufen, Dimmerkurven sind gewöhnlich nicht mit angegeben.

Wie auch immer, der Zusammenhang wird vermutlich irgendwas Gemeines sein, man wird eine Wertetabelle verwenden müssen, um wirklich näherungsweise auf die korrekten Werte zu kommen.

Das Item ePatrone... ist das ein Schalter, um das automatische Laden des Speichers zu unterbinden?
Und wenn Du "das Relais" meinst... Wozu dient das Relais? Ist das ein Schalter, der den Dimmer komplett vom Netz trennt? Oder überbrückt das Relais den Dimmer, um die Verlustleistung zu minimieren?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: PV überschuss -> E Patrone

Beitrag von mad-mike »

Warum fängst Du mit 10 % an?
Ich dachte mir, es Wäre Besser :? Ich weiss ehrlich gesagt nicht, ob es überhaupt einen nutzen hätte eine E-Patrone bei ~~ keine Ahnung 30Watt zu nutzen. :?: Was macht denn wohl der Heizstab im Puffer bei 2% und 30 Watt... :?:
Wäre es nicht sinnvoller, den Heizstab grundsätzlich mit allen drei Phasen zu betreiben?
Der Dimmer, welchen ich nutzen möchte hat 2 Ausgänge, und jeweils könnte ich 2000Watt Dimmen... Deshalb wollte ich dort 2 Stufen setzen, und eine Variabele. Kann ja auch die Stufen jeweils auf einen anderen Außenleiter legen. L1 gedimmt, L2 -> Stufe 1, L3 Stufe 2.

Weiter ist es so, das der Dimmer Phasen gleich angeschlossen werden muss. :!: Das heisst, ich könnte bis zu 4000 Watt auf einen Außenleiter legen. Die Stufen, könnte ich besser auf teilen. :!:
Das Item ePatrone... ist das ein Schalter, um das automatische Laden des Speichers zu unterbinden?
Exakt. Ich habe hier gerade ein Test am laufen. Ich möchte sehen Ob das fehlerfrei funktioniert: Nur wenn Überschuss vorhanden ist, und auch eingespeist wird, soll die Rule überhaupt gestartet werden... :!: Nachts ist die ""Ladesteuerung"" aus.

In meinem Test sehe ich auch schön wie der die verschienden % sendet bei jedem

Code: Alles auswählen

    Item FRITZDECT2101_Leistung changed
Und wenn Du "das Relais" meinst... Wozu dient das Relais? ist das ein Schalter, der den Dimmer komplett vom Netz trennt? Oder überbrückt das Relais den Dimmer, um die Verlustleistung zu minimieren?
Ich möchte eine E-Patrone nutzen mit 3 Heizwendeln. zu je 1500 Watt. L1 L2 L3 und 3x zusammen ein Stern N. Wie oben schon steht, könnte ich ja 2 Stufen schalten und eine Stufe welche Variabele hoch und runter fährt.


vermutlich wird die Leistungskurve des Dimmers nicht linear sein, da müsste man entweder ein paar tests machen oder die technische Beschreibung durchforsten. Vermutlich wird es auf ersteres hinauslaufen, Dimmerkurven sind gewöhnlich nicht mit angegeben.

Wie auch immer, der Zusammenhang wird vermutlich irgendwas gemeines sein, es wird darauf hinauslaufen, dass man eine Wertetabelle verwenden muss, um wirklich näherungsweise auf die korrekten Werte zu kommen.
Ich habe auch ein paar kollegen gefragt, aber konnte mir keiner Beantworten.

In meinen 300 "If else" habe ich ja jede Leistungsstufe einzeln eingetragen. (fairer weise muss ich sagen auch Linear derzeit eingetragen)

Ich könnte mich ja auch mal 2 - 3 Stunden in Keller stellen, und jeden % Wert einzeln ermitteln und dann in die Tabelle eintragen. :idea:

Aber wie gesagt. Wenn ich befehl sende : Ladeleistung ""255"" dann sollten halt Relais 1 + 2 auf ON gestezt werden und der Dimmer auf 55% ergibt eine Leistung von 3825 Watt...

Wenn dann die Kaffee maschine gestarten wird, und dann von jetzt auf gleich ""178"" gesendet wird, muss Relais 1 ON und Relais 2 OFF und Dimmer auf 78 % gesetzt werden. (2670 Watt)

Verstehst was ich meine??
Wenn Du den Leistungsüberschuss hast, kannst Du daraus direkt die Stufe berechnen:
Ich sage mal so: Es ist einfacher 300 If else befehle mit der Heizpatrone in Einklang zu bekommen, als die LCN Kurve mit der Berechnung zu Synchronisieren. Aber es würde technisch gehen.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: PV überschuss -> E Patrone

Beitrag von udo1toni »

Ah, jetzt hab ich es...

Also läuft es darauf hinaus, Du fängst mit 10% auf L1 an und steigerst das bei wachsendem Überschuss bis zu 100%. Dann schlatest Du L1 aus und Schaltest L2 auf voller Leistung hinzu. Überschuss steigt weiter, also L1 wieder aufregeln, bis 100 %, L1 aus und l3 mit dazu... Ja, das ginge sicherlich gut.

Ist auch keine Problem, das mathematisch zu lösen. Ansatz: ähnliche Formel wie oben:

Code: Alles auswählen

    var relais1 = OFF
    var Relais2 = OFF
    var Integer iStufe = (nDiff / 15).intValue
    if(iStufe < 0)
        iStufe = 0
    if(iStufe > 300)
        iStufe = 300
        
    if(iStufe > 100) {
        istufe -= 100
        Relais1 = ON
    }
    if(iStufe > 100) {
        istufe -= 100
        Relais2 = ON
    }
Dimmer.sendCommand(iStufe)
ItemRelais1.sendCommand(Relais1)
ItemRelais2.sendCommand(Relais2)
Also, so als Prinzip.

Die 10 % kann man da natürlich auch noch einbauen :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: PV überschuss -> E Patrone

Beitrag von mad-mike »

udo1toni hat geschrieben: 26. Feb 2023 23:34 Ah, jetzt hab ich es...

Also läuft es darauf hinaus, Du fängst mit 10% auf L1 an und steigerst das bei wachsendem Überschuss bis zu 100%. Dann schlatest Du L1 aus und Schaltest L2 auf voller Leistung hinzu. Überschuss steigt weiter, also L1 wieder aufregeln, bis 100 %, L1 aus und l3 mit dazu... Ja, das ginge sicherlich gut.

Ist auch keine Problem, das mathematisch zu lösen. Ansatz: ähnliche Formel wie oben:

Code: Alles auswählen

    var relais1 = OFF
    var Relais2 = OFF
    var Integer iStufe = (nDiff / 15).intValue
    if(iStufe < 0)
        iStufe = 0
    if(iStufe > 300)
        iStufe = 300
        
    if(iStufe > 100) {
        istufe -= 100
        Relais1 = ON
    }
    if(iStufe > 100) {
        istufe -= 100
        Relais2 = ON
    }
Dimmer.sendCommand(iStufe)
ItemRelais1.sendCommand(Relais1)
ItemRelais2.sendCommand(Relais2)
Also, so als Prinzip.

Die 10 % kann man da natürlich auch noch einbauen :)
Danke dafür. Passt eigentlich perfekt. Und genau wie ich es mir gedacht habe.

Meinste also, es wäre sinnvoll eine angepasste dimmkurve direkt beim Dimmer zu hinterlegen?

Der Dimmer hat 3 voreingestellte Kurven, und eine frei einstellbare. Linear ist klar. Dann kann ich einstellen noch LED und Halogen. Man sieht in der Programmier Software von LCN das man dann halt schön gebogene Kurven hat.

Und einmal kann ich die Kurve einstellen. Das sind etwa 10 Punkte die ich setzen kann zwischen 0-% und 100-%.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: PV überschuss -> E Patrone

Beitrag von udo1toni »

mad-mike hat geschrieben: 28. Feb 2023 06:43 Meinste also, es wäre sinnvoll eine angepasste dimmkurve direkt beim Dimmer zu hinterlegen?
Also, zumindest solltest Du es mal grob ausmessen, entweder stellst Du dann die Dimmerkurve passend ein, oder Du bestimmst halt ;) eine entsprechende Formel.
Schlimmstenfalls kann man eine Tabelle mit Wertezurodnungen erstellen, LookupTable war mal so eine Bezeichnung :) das ist jedenfalls im Schnitt um Faktor 50 schneller (also ein Wert nachschlagen statt im Schnitt die Hälfte der Werte zu vergleichen - im Worst Case Faktor 100, im best Case Faktor 1)
So eine Tabelle könnte man z.B. gut mit SCALE oder mit MAP erledigen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: PV überschuss -> E Patrone

Beitrag von mad-mike »

'Ich versuche die ganze zeit das zu verstehen als Laie... :?

Es funktioniert ja wie schon erwähnt. :!:
Oder überbrückt das Relais den Dimmer, um die Verlustleistung zu minimieren?
Ich dachte mir folgendes: bei Relais 1+2 ON und der Dimmer 100% noch ein weiteres Relais schalten um den Dimmer weg zuschalten. Also eine Art Bypass...

Ich habe das ganze derzeit mit dem Balkonkraftwerk verknüpft, und sehe schön wie sich die Stufen schalten. (Okay ich habe geschummelt und den wert vom Balkonkraftwerk mal 15 genommen, damit die Rule anspricht :D .)

Code: Alles auswählen

var Relais1 = OFF
    var Relais2 = OFF
    var Number nDiff = ((FRITZDECT2101_Leistung.state as Number).floatValue *15)
    var Integer iStufe = (nDiff / 15).intValue
    if((ePatrone.state != ON)){                                                 
        iStufe = 0
        }
    
        if(iStufe < 0)
        iStufe = 0
        
    if(iStufe > 300)
        iStufe = 300
        
    if(iStufe > 100) {
        iStufe -= 100
        Relais1 = ON
    }
    if(iStufe > 100) {
        iStufe -= 100
        Relais2 = ON
    }
    Ladeleistung.sendCommand(iStufe)
    Stufe1.sendCommand(Relais1)
    Stufe2.sendCommand(Relais2)
    Thread::sleep(500)
        pvakt.postUpdate(nDiff)
        logInfo("ePatrone","Überschuss = {} Watt, Stufe1 = {} / Stufe2 = {}",nDiff,Stufe1.state,Stufe2.state)
Könnte man also ein wert bei Über 300% ein drittes Relais schalten um den Dimmer zu Brücken?

Ich würde oben 301 Schreiben und eine weitere Zeile mit:

Code: Alles auswählen

if(iStufe > 100) {
        iStufe -= 100
        Relais3 = ON
setzen??


Danke und Gruss. 8-)
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: PV überschuss -> E Patrone

Beitrag von udo1toni »

Ja, das sollte kein Problem sein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: PV überschuss -> E Patrone

Beitrag von mad-mike »

Soweit funktioniert das alles perfekt. Das i Tüpfelchen wäre, wenn wert über 300 (also 301 gleich Dimmer aus) habe jetzt den Zustand Relais 1,2,3 on und Dimmer auf 1%.

Auch ist es so, das ich den Zustand hatte Dimmer gleich 100%, wobei dann Relais 1,2,3 Off waren.

Wie gesagt ist aber nur Nebensache.


Ich habe mir anhand dieser rule aber gedacht, ich könnte auch meine Drehzahl Steuerung der Pumpe realisieren.

Pumpe ist eine 0-10 Volt pumpe, und der Ausgang steht mir am LCN Modul zu Verfügung.

Wenn on Brauch die Pumpe 2 Volt, der Regel Bereich ist dann von 2 bis 10 Volt.

Ich dachte mir, das man also eine rule baut, die anhand von einem Temperatur Sensor ab 60 Grad die Drehzahl nach oben stellt.

Kann man doch bestimmt so abwandeln?

Ich versuche mich Mal dran.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: PV überschuss -> E Patrone

Beitrag von udo1toni »

mad-mike hat geschrieben: 1. Apr 2023 11:50 Das i Tüpfelchen wäre, wenn wert über 300 (also 301 gleich Dimmer aus) habe jetzt den Zustand Relais 1,2,3 on und Dimmer auf 1%.
Das war aber schon im Code integriert. zeig bitte mal Deine komplette Rule, vielleicht ist da was durcheinandergeraten
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten