Bei PV-Überschuss Steckdose schalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
KarlNapf
Beiträge: 20
Registriert: 29. Feb 2020 10:48
Answers: 0

Bei PV-Überschuss Steckdose schalten

Beitrag von KarlNapf »

Hallo zusammen,

ich habe folgenden Plan, um meinen PV-Strom noch besser zu nutzen:

Ich möchte gerne, dass wenn das Item "Production" (aktueller Produktionswert der PV-Anlage) 4KW größer ist, als das Item "Consumption" (aktueller Stromverbrauch), dass dann das Item "Steckdose Heizstab" den Befehl "On" bekommt und bei kleiner 3,5KW den Befehl "Off".

Mein Ziel ist es dadurch, wenn das Auto geladen ist und ich dann ausreichend Überschuss habe, den erst mal in Heißwasser wandle, bevor er ins Netz geht.

Mir fehlt jetzt allerdings so ein wenig die richtige Herangehensweise für die Ansteuerung mit den +4KW und kleiner 3,5 KW.

Ich hoffe, dass das hier schonmal jemand ähnlich realisiert hat.

Vielen Dank schonmal und einen sonnigen Samstag.

Gruß KarlNapf

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

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von udo1toni »

Da gibt es schon diverse Threads hier :) Es kommt dabei natürlich auch sehr darauf an, wie die Heizpatrone angesteuert wird. Letzter Thread dazu hier:
viewtopic.php?t=7945

Ein nicht ganz unwichtiger Punkt dabei ist, an welcher Stelle die Messung vorgenommen wird. Gewöhnlich läuft es darauf hinaus, dass man den offiziellen Smart Zähler abgreift und damit natürlich die Heizpatrone im Verbrauch mit berücksichtigt wird. Eine entsprechende Regel muss also so aussehen:

Überschuss größer 4 kW UND Heizpatrone aus -> Heizpatrone an
Überschuss kleiner 0 (oder meinetwegen kleiner 500 W) UND Heizpatrone an -> Heizpatrone aus

Als simple Rule:

Code: Alles auswählen

rule "PV Überschuss Warmwasser laden"
when
    Item Zaehler_182 changed
then
    var Number nEinspeisung = 0.0
    if(Zaehler_182.state instanceof Number)
        nEinspeisung = (Zaehler_182.state as Number).floatValue

    if(nEinspeisung > 4000 && Heizpatrone.state != ON)
        Heizpatrone.sendCommand(ON)
    else if(nEinspeisung < 500 && Heizpatrone.state != OFF)
        Heizpatrone.sendCommand(OFF)
end
1.8.2 ist der Obis-Code für den Einspeisezähler. Falls ein solcher nicht vorhanden ist, kann man den Wert natürlich auch berechnen (aus Produktion - Verbrauch, aber dran denken, der Hausstromzähler kann hier nur 0 liefern, sobald die Produktion größer als der Verbrauch ist, dann braucht es also einen zusätzlichen Zähler, der den tatsächlichen Verbrauch ohne die PV-Einspeisung misst. Bei größeren Anlagen (alles oberhalb Balkonsolar) gibt es natürlich einen extra Zähler für den Eigenverbrauch, den man dann auch auswerten kann. Mit dem Zweirichtungszähler am Hausanschluss ist aber schon alles vorhanden und man muss nicht großartig rumrechnen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

KarlNapf
Beiträge: 20
Registriert: 29. Feb 2020 10:48
Answers: 0

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von KarlNapf »

Hallo udo1toni,

vielen Dank schonmal für die schnelle Antwort. Ich habe das Solaredge binding installiert und der aktuelle Wert von Produktion und aktuellem Verbrauch wird über das Solaredge Smartmeter abgegriffen. Ich habe also keinen Zugriff auf den Strohmzähler sondern greife die Werte direkt vom Wechselrichter ab, oder hab ich da was falsch verstanden?

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

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von udo1toni »

Nein, das hast Du schon richtig verstanden. In dem Fall musst Du halt den tatsächlichen Überschuss errechnen. Ändert aber nichts am Verhalten :) Du musst nicht bei < 3500 W abschalten, sondern bei < 500 (oder noch weniger... Wie hoch ist die echte Heizleistung des Heizstabs?)
Z.B. so:

Code: Alles auswählen

rule "PV Überschuss Warmwasser laden"
when
    Item Consumption changed or                                                         // gemessener Verbrauch geändert
    Item Production changed                                                             // gemessene Produktion geändert
then
    var Number nProduktion  = 0.0                                                       // Variablen vordefinieren
    var Number nBedarf      = 0.0
    var Number nDifferenz   = 0.0

    if(Consumption.state instanceof Number)                                             // falls gültiger Wert
        nBedarf = (Consumption.state as Number).floatValue                              // Wert übernehmen
    else {                                                                              // ansonsten
        Heizpatrone.sendCommand(OFF)
        logWarn("solaredge","Consumption liefert ungültigen Wert ({}). Sicherheitsabschaltung!",Consumption.state)
        return;
    }

    if(Production.state instanceof Number)                                              // falls gültiger Wert
        nProduktion = (Production.state as Number).floatValue                           // Wert übernehmen
    else {                                                                              // ansonsten
        Heizpatrone.sendCommand(OFF)
        logWarn("solaredge","Production liefert ungültigen Wert ({}). Sicherheitsabschaltung!",Production.state)
        return;
    }

    nDifferenz = nProduktion - nBedarf                                                  // Differenz bestimmen

    if(nDifferenz > 4000 && Heizpatrone.state != ON) {                                  // viel Überschuss und Heizstab aus
        logInfo("solaredge","Massig Überschuss ({}). Schalte Heizstab ein!",nDifferenz)
        Heizpatrone.sendCommand(ON)
    }
    else if(nDifferenz < 100 && Heizpatrone.state != OFF) {                             // wenig/kein Überschuss und Heizstab an
        logInfo("solaredge","Wenig Überschuss ({}). Schalte Heizstab aus!",nDifferenz)
        Heizpatrone.sendCommand(OFF)
    }
end
Die Rules sieht nun etwas komplizierter aus, ist es aber nicht. Letztlich funktioniert sie genau wie die andere Rule, sie macht nur etwas mehr...
Alle Items können auch ungültige Werte liefern, das muss die Rule abfangen. Um hier eine unnötig hohe Stromrechnung zu vermeiden, muss die Rule den Heizstab im Zweifel abschalten.
Und natürlich möchte man als Admin darüber in irgendeiner Form benachrichtigt werden, das passiert hier mit einer entsprechenden Warnmeldung im Log.
Im Regelbetrieb ist es auch nett, eine Information zu erhalten, dass die Rule tätig geworden ist. :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

KarlNapf
Beiträge: 20
Registriert: 29. Feb 2020 10:48
Answers: 0

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von KarlNapf »

Errechnen muss ich den Überschuss nicht, der wird mir über das Item "export" angezeigt. Damit sollte es dann ja noch einfacher sein, oder? Sorry für die vielen Fragen, aber bei Rules tu ich mich einfach schwer.

Ich will einen 3,5kw Heizstab nutzen.

Gesendet von meinem SM-S711B mit Tapatalk



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

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von udo1toni »

Na, dann brauchst Du nur das eine Item...

Code: Alles auswählen

rule "PV Überschuss Warmwasser laden"
when
    Item export changed                                                            // gemessene Produktion geändert
then
    var Number nExport  = 0.0                                                      // Variablen vordefinieren

    if(export.state instanceof Number)                                             // falls gültiger Wert
        nExport = (export.state as Number).floatValue                              // Wert übernehmen
    else {                                                                         // ansonsten
        Heizpatrone.sendCommand(OFF)
        logWarn("solaredge","export liefert ungültigen Wert ({}). Sicherheitsabschaltung!", export.state)
        return;
    }

    if(nExport > 4000 && Heizpatrone.state != ON) {                                // viel Überschuss und Heizstab aus
        Heizpatrone.sendCommand(ON)
        logInfo("solaredge","Massig Überschuss ({}). Schalte Heizstab ein!", nExport)
    }
    else if(nExport < 1 && Heizpatrone.state != OFF) {                             // kein Überschuss und Heizstab an
        Heizpatrone.sendCommand(OFF)
        logInfo("solaredge","Kein Überschuss Überschuss ({}). Schalte Heizstab aus!",nExport)
    }
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

KarlNapf
Beiträge: 20
Registriert: 29. Feb 2020 10:48
Answers: 0

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von KarlNapf »

Vielen lieben Dank für deinen Support, werde ich gleich morgen mal testen. Ich gebe Rückmeldung.

Gesendet von meinem SM-S711B mit Tapatalk


KarlNapf
Beiträge: 20
Registriert: 29. Feb 2020 10:48
Answers: 0

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von KarlNapf »

Yes!!!! Funktioniert perfekt, vielen Dank für den klasse Support.

Gesendet von meinem SM-S711B mit Tapatalk


EmptySoft
Beiträge: 188
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Bei PV-Überschuss Steckdose schalten

Beitrag von EmptySoft »

ich werte auch noch den lastChange vom Item aus, damit es nicht im Sekundentackt ein und aus schaltet
BYe
Harald

Antworten