Mindestlaufzeit für mein BHKW

Begonnen von dobiwan, 13 Februar 2023, 10:58:30

Vorheriges Thema - Nächstes Thema

dobiwan

Hallo zusammen,

ich habe ein BHKW und seit einiger Zeit habe ich das Problem, dass es zu oft startet und nicht mindestens 60 Minuten am Stück läuft.
Also zum Problem:
Ich habe eine PV mit Speicher. Den Speicher lasse ich durch das BHKW hauptsächlich in der Nacht laden. Dann wird das BHKW im Winter zusätzlich so gesteuert, dass es die Vorlauftemperatur für die Heizkreise hält. Das bedeutet, dass ich mehrere Ereignisse überwache und dann das BHKW für den Lauf frei gebe und auch starte. Nun passiert es, dass das eine Ereignis das BHKW startet und ein anderes es wieder nach kurzer Laufzeit stoppt. Deshalb möchte ich die Laufzeit auf mindestens 60 Minuten setzen können und kein Ereignis das unterbrechen kann.

Hier die Wärmeführung

Dachs {if(ReadingsNum("Dachs", "Temp.sbFuehler1","") <= ReadingsNum("BHKW_Start_temp", "Temperatur","") && ReadingsNum("Dachs", "Temp.sbAussen", "") <= "13" && "Modulfreigabe.STATE" == "Freigegeben") { fhem("set Anforderung_Heizung Anfordern")}}

Und hier die Akku Ladeführung

Dachs:Temp.sbRuecklauf:.*|PV_Fronius:Storage_0_Controller_StateOfCharge_Relative.* {if (ReadingsVal("PV_Fronius","Storage_0_Controller_StateOfCharge_Relative","") <= 20 && ReadingsVal("Dachs","Temp.sbRuecklauf","") < 55) {fhem("set Anforderung_Heizung Anfordern")}}

und als letztes die Modulfreigabe

(([PV_Fronius:Storage_0_Controller_StateOfCharge_Relative] < 30 or [Dachs:Temp.sbFuehler1] < [BHKW_Start_temp:Temperatur] )and [Dachs:Temp.sbRuecklauf] < 55) (set Modulfreigabe Freigegeben) DOELSEIF ([PV_Fronius:Storage_0_Controller_StateOfCharge_Relative] > 80 and [Dachs:Temp.sbFuehler1] > [Waermebedarf_Vorlauf_Temp:Temperatur]) (set Modulfreigabe Gesperrt)


Und hier muss ich dafür sorgen, dass die Freigabe nicht auf gesperrt gesetzt wird solange die Mindestlaufzeit nicht erreicht ist.

Ich habe schon nach Timern und Countdown gesucht aber irgendwie pass das alles nicht zu meinem Problem, oder ich werde einfach nicht schlau aus den Erklärungen.

Vielleicht hat ja jemand eine Idee

xerion

Zitat von: dobiwan am 13 Februar 2023, 10:58:30
Hallo zusammen,

ich habe ein BHKW und seit einiger Zeit habe ich das Problem, dass es zu oft startet und nicht mindestens 60 Minuten am Stück läuft.
Also zum Problem:
Ich habe eine PV mit Speicher. Den Speicher lasse ich durch das BHKW hauptsächlich in der Nacht laden. Dann wird das BHKW im Winter zusätzlich so gesteuert, dass es die Vorlauftemperatur für die Heizkreise hält. Das bedeutet, dass ich mehrere Ereignisse überwache und dann das BHKW für den Lauf frei gebe und auch starte. Nun passiert es, dass das eine Ereignis das BHKW startet und ein anderes es wieder nach kurzer Laufzeit stoppt. Deshalb möchte ich die Laufzeit auf mindestens 60 Minuten setzen können und kein Ereignis das unterbrechen kann.

Hier die Wärmeführung

Dachs {if(ReadingsNum("Dachs", "Temp.sbFuehler1","") <= ReadingsNum("BHKW_Start_temp", "Temperatur","") && ReadingsNum("Dachs", "Temp.sbAussen", "") <= "13" && "Modulfreigabe.STATE" == "Freigegeben") { fhem("set Anforderung_Heizung Anfordern")}}

Und hier die Akku Ladeführung

Dachs:Temp.sbRuecklauf:.*|PV_Fronius:Storage_0_Controller_StateOfCharge_Relative.* {if (ReadingsVal("PV_Fronius","Storage_0_Controller_StateOfCharge_Relative","") <= 20 && ReadingsVal("Dachs","Temp.sbRuecklauf","") < 55) {fhem("set Anforderung_Heizung Anfordern")}}

und als letztes die Modulfreigabe

(([PV_Fronius:Storage_0_Controller_StateOfCharge_Relative] < 30 or [Dachs:Temp.sbFuehler1] < [BHKW_Start_temp:Temperatur] )and [Dachs:Temp.sbRuecklauf] < 55) (set Modulfreigabe Freigegeben) DOELSEIF ([PV_Fronius:Storage_0_Controller_StateOfCharge_Relative] > 80 and [Dachs:Temp.sbFuehler1] > [Waermebedarf_Vorlauf_Temp:Temperatur]) (set Modulfreigabe Gesperrt)


Und hier muss ich dafür sorgen, dass die Freigabe nicht auf gesperrt gesetzt wird solange die Mindestlaufzeit nicht erreicht ist.

Ich habe schon nach Timern und Countdown gesucht aber irgendwie pass das alles nicht zu meinem Problem, oder ich werde einfach nicht schlau aus den Erklärungen.

Vielleicht hat ja jemand eine Idee

Ich nutze für Zeitabhängige Blockeirungen meistens einen Dummy ein. Das setze ich dann mit set-on-for-timer xx auf die gewünschte Zeit in deinem Fall dann auf 60 Minuten. Im DOIF wertest du dann einfach den state vom Dummy mit aus, also dass das DOIF nicht ausgeführt werden kann, solange der Dummy auf on ist. Vielleicht wäre das ein Ansatz für deinen Aufbau.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880