FHEM - Anwendungen > Solaranlagen

Erhöhung PV Eigenverbrauch

(1/3) > >>

GG33:
Hallo zusammen

Ich möchte mein Eigenverbrauch weiter erhöhen.
Meine PV und auch der Zweirichtungzähler (D0) wird mittels SolarView geloggt. Die Wärmepumpe mit Luxtronik 2 Steuerung ist im Netzwerk eingebunden.

Was ich bis jetzt mit Hilfe von euch realisiert habe: Warmwasser erwärmen, wenn PV Leistung vorhanden und bevorzugt heizen, wenn PV Leistung vorhanden.

Jetzt möchte ich 3 weitere Geräte mittels FS20 Funk-Schaltstekdose einschalten, wenn Strom in Netz eingespeist wird. Die Geräte sollen zu einer bestimmten Zeit immer freigegeben sein (Niedertarif) oder nacheinander wenn die Einspeiseleistung grösser X ist.

etwa so: wenn Einspeiseleistung > 2000 W schalte GS ein, warte 5 min (wegen der Trägheit der errechneten Einspeiseleistung); wenn Einspeiseleistung immernoch > 2500 W schalte WM ein, warte 5 min; wenn Einspeiseleistung immernoch > 1500 W schalte TU ein.

Mit welchem Modul löse ich dieses Problem am besten? mit einem DOIF?


SpenZerX:
Also ich glaube du hast ein Probem wenn dein FHEM System nur die aktuellen Leistungsdaten kennt.

Ich habe einen Wechselrichter und S0 Zähler mit eigenen Modulen.
Diese bieten neben der aktuellen Leistung auch folgende readings an:

AvP1,AvP5 und AvP 15.  Average Power1,5,15 min. Damit lässt sich dann ja nach Anwendung prima arbeiten.

Beispiel: Kühltruhe wird mit PV Strom betrieben
Temperatur auf -14 bis -15 Grad eingestellt und Super Frost Taste durch Funkschalter geschaltet. Sicherheitsabschaltung um 22 und 0 Uhr wegen 433Mhz Technologie.

# Notify Kuehltruhensteuerung
define Kuehltruhensteuerung notify SMA.Wechselrichter.AvP05:.* {\
  if ( ( ($hour >= 8 && $hour < 16) && ReadingsVal("SMA.Wechselrichter", "AvP05", "") >= "1200") && ( ReadingsVal("Kuehltruhe_COOL_DOWN", "state", "off") eq "off" ) ) {\
    fhem("set Kuehltruhe_COOL_DOWN on");;\
  }\
  else {\
    if ( ( ($hour >= 16 or $hour < 8) or ReadingsVal("SMA.Wechselrichter", "AvP05", "") < "900" ) && ( ReadingsVal("Kuehltruhe_COOL_DOWN", "state", "on") eq "on" ) ) {\
     fhem("set Kuehltruhe_COOL_DOWN off");;\
   }\
   }\
}
define Kuehltruhe_COOL_DOWN_AUS_2 at *22:00:00 { fhem("set Kuehltruhe_COOL_DOWN off") }
define Kuehltruhe_COOL_DOWN_AUS_3 at *00:00:00 { fhem("set Kuehltruhe_COOL_DOWN off") }

GG33:

--- Zitat ---Also ich glaube du hast ein Probem wenn dein FHEM System nur die aktuellen Leistungsdaten kennt.
--- Ende Zitat ---
Warum? das ist doch das einzige was ich wissen muss: Die aktuelle Leistung und die Energierichtung am Einspeisepunkt?


Hier noch was schon läuft, vielleicht kann das ja sonst auch noch jemand gebrauchen:
Warmwasser erwärmen, wenn PV Leistung vorhanden

--- Code: ---DOIF([12:00-18:00] and [PVGG33:currentPower] > 4500 and ([Heizung:opModeHotWater] ne "Holiday" or [Heizung:opModeHotWater] ne "Off"))
(set Heizung hotWaterTemperatureTarget 51,set Heizung opModeHotWater Party)
DOELSEIF ([PVGG33:currentPower] < 4000)
  (set Heizung hotWaterTemperatureTarget 47,define auto at +00:20 set Heizung opModeHotWater Auto)
--- Ende Code ---

bevorzugt heizen, wenn PV Leistung vorhanden

--- Code: ---DOIF ([11:00-20:00] and [PVGG33:currentPower] > 3000)\
(set Heizung returnTemperatureSetBack 2.0)\
DOELSEIF ([PVGG33:currentPower] < 2500)\
  (set Heizung returnTemperatureSetBack 0)
attr wait 0:900
--- Ende Code ---

SpenZerX:
Wenn du nur die aktuelle Leistung und die Energierichtung am Einspeisepunkt betrachtest könnte das zu hohen Schaltfrequenzen führen. Meine Großverbraucher mögen das nicht. Wie willst du das verhindern?

GG33:
Ich habe jetzt mal dies gemacht:

--- Code: ---define wt_Stromtarif WeekdayTimer Stromtarif Mo-Fr|07:00|HT Mo-Fr|20:00|NT Sa|07:00|HT Sa|13:00|NT
--- Ende Code ---


--- Code: ---define di_GS DOIF ([wt_Stromtarif] eq "NT")
(set Eigenverbrauch_status 1000)
DOELSEIF ([E350:currentPower] > 2000)
(set Eigenverbrauch_status 1000)
DOELSEIF ([E350:currentPower] < -200 and [wt_Stromtarif] eq "HT" and [di_WM:cmd_3])
(set Eigenverbrauch_status 0)


attr di_GS wait 0:600:600
attr di_GS cmdState GS ein NT|GS ein PV|GS aus
--- Ende Code ---

Ich möchte nun weitere Gärate zuscahlten, wenn die Einspeiseleistung immernoch über einem bestimmten Wert liegt. (Ich weiss ja nicht, ob die Waschmaschine die freigegebn wurde auch wirklich gebraucht wird)
Kann dies irgendwie in einem DOIF gelöst werden oder soll ich mehre erstellen?

--- Code: ---define di_WM DOIF ([wt_Stromtarif] eq "NT")
(set Eigenverbrauch_status 2000)
DOELSEIF ([E350:currentPower] > 2000 and [di_GS:cmd_2])
(set Eigenverbrauch_status 2000)
DOELSEIF ([E350:currentPower] < -200 and [wt_Stromtarif] eq "HT" and [di_xxxxxxxxx:cmd_3])
(set Eigenverbrauch_status 0)

attr di_WM wait 0:600:600
attr di_WM cmdState WM ein NT|WM ein PV|WM aus
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln