PV Batterielade/Bezugssteuerung

Begonnen von satprofi, 12 Oktober 2014, 18:42:59

Vorheriges Thema - Nächstes Thema

satprofi

Hallo.
Habe mir gebrauchte Taktionsakkus besorgt, die bei Überschuss der PV Anlage geladen werden.
Dies übernimmt ein Studer Xtender XTM, der mit ext. Kontakt die Ladung steuert. Ich habe "Ladung verboten" statt Ladebegrenzung.

Jetzt habe ich das HourCounter Modul dahingegend getrimmt das mir bei eingeschalteter Ladung die Betriebsstunden gezählt werden.


define Batterieladezeit HourCounter Batterielader_aus:off  Batterielader_aus:on


Bei den Readings habe ich die geladenen kWh eingefügt


attr Batterieladezeit userReadings kWh  { ReadingsVal("Batterieladezeit","pulseTimePerDay",0)/3600.0;;;; }


Ich habe 22A Ladestrom bei 50V, dadurch erspare ich mir die Rechnung Zeit*A*h, der gelieferte Wert entspricht fast genau die kWh.

Dann habe ich einen Dummy definiert, der tägl. um 18:00 mit dem Wert kWh gefüttert wird


define load_kWh_daily dummy
define loadkWhPerDay DOIF ([18:00]) ({  my $sld = ReadingsVal("Batterieladezeit","kWh",0);;;; fhem("set load_kWh_daily $sld ");;;;})


Dieser Wert wird jetzt ab 22:00h abgefragt und je nach Höhe wird dann vor 6:00h der Netzschütz vor dem Xtender geöffnet um die Batterie zu belasten


define Xtender DOIF ([load_kWh_daily] > 6 and [22:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 5 and [23:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 4 and [23:30-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 3 and [00:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 2 and [02:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 1 and [04:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([06:00:01-07:59:59]) (set Netz_Schuetz_aus off,sleep 5,set Batterielader_aus on,set Batterieladezeit pulseTimePerDay 0)\
DOELSE (set Netz_Schuetz_aus off,sleep 5,set Batterielader_aus on)


Um 6:00:01 wird zusätzlich der Wert des HourCounter auf 0 gesetzt, weil ja bei jedem "Batterielader_aus off" der Counter gestartet wird, und in der Nacht aber kein Laden stattfindet.

Ich weiss das dies alles natürlich einfacher gehen würde, aber ein Anfänger wie ich ist mit dieser Lösung zufrieden.
Wenn wer Verbesserungen hat, bitte her damit.

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

Damian

Zitat von: satprofi am 12 Oktober 2014, 18:42:59
Hallo.
Habe mir gebrauchte Taktionsakkus besorgt, die bei Überschuss der PV Anlage geladen werden.
Dies übernimmt ein Studer Xtender XTM, der mit ext. Kontakt die Ladung steuert. Ich habe "Ladung verboten" statt Ladebegrenzung.

Jetzt habe ich das HourCounter Modul dahingegend getrimmt das mir bei eingeschalteter Ladung die Betriebsstunden gezählt werden.


define Batterieladezeit HourCounter Batterielader_aus:off  Batterielader_aus:on


Bei den Readings habe ich die geladenen kWh eingefügt


attr Batterieladezeit userReadings kWh  { ReadingsVal("Batterieladezeit","pulseTimePerDay",0)/3600.0;;;; }


Ich habe 22A Ladestrom bei 50V, dadurch erspare ich mir die Rechnung Zeit*A*h, der gelieferte Wert entspricht fast genau die kWh.

Dann habe ich einen Dummy definiert, der tägl. um 18:00 mit dem Wert kWh gefüttert wird


define load_kWh_daily dummy
define loadkWhPerDay DOIF ([18:00]) ({  my $sld = ReadingsVal("Batterieladezeit","kWh",0);;;; fhem("set load_kWh_daily $sld ");;;;})


Dieser Wert wird jetzt ab 22:00h abgefragt und je nach Höhe wird dann vor 6:00h der Netzschütz vor dem Xtender geöffnet um die Batterie zu belasten


define Xtender DOIF ([load_kWh_daily] > 6 and [22:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 5 and [23:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 4 and [23:30-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 3 and [00:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 2 and [02:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([load_kWh_daily] > 1 and [04:00-06:00]) (set Batterielader_aus off,sleep 5,set Netz_Schuetz_aus on)\
DOELSEIF ([06:00:01-07:59:59]) (set Netz_Schuetz_aus off,sleep 5,set Batterielader_aus on,set Batterieladezeit pulseTimePerDay 0)\
DOELSE (set Netz_Schuetz_aus off,sleep 5,set Batterielader_aus on)


Um 6:00:01 wird zusätzlich der Wert des HourCounter auf 0 gesetzt, weil ja bei jedem "Batterielader_aus off" der Counter gestartet wird, und in der Nacht aber kein Laden stattfindet.

Ich weiss das dies alles natürlich einfacher gehen würde, aber ein Anfänger wie ich ist mit dieser Lösung zufrieden.
Wenn wer Verbesserungen hat, bitte her damit.

Gruss

Da hätte ich gleich welche:

Readings im Ausführungsteil kannst du wesentlich eleganter einbauen:

define loadkWhPerDay DOIF ([18:00]) (set load_kWh_daily [Batterieladezeit:kWh])

sleep bei DOIF friert dein FHEM ein, daher erst mal mit at arbeiten, bis ich DOIF erweitert habe, z. B.:

... DOELSEIF ([load_kWh_daily] > 5 and [23:00-06:00]) (set Batterielader_aus off, define at_sleep5 at +00:00:05 set Netz_Schuetz_aus on)

Gruß
Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

satprofi

hallo.
sllep friert fhem ein? ich denke fhem sllep friert fhem ein. bei DOIF klappt sleep bestens.
werde aber deine tipps einarbeiten.
thx.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram