diff --git a/loadvars.sh b/loadvars.sh index 40ac2273b..98f6f7353 100755 --- a/loadvars.sh +++ b/loadvars.sh @@ -947,19 +947,7 @@ loadvars(){ fi #uberschuss zur berechnung uberschuss=$(printf "%.0f\n" $((-wattbezug))) - if [[ $speichervorhanden == "1" ]]; then - if [[ $speicherpveinbeziehen == "1" ]]; then - if (( speicherleistung > 0 )); then - if (( speichersoc > speichersocnurpv )); then - speicherww=$((speicherleistung + speicherwattnurpv)) - uberschuss=$((uberschuss + speicherww)) - else - speicherww=$((speicherleistung - speichermaxwatt)) - uberschuss=$((uberschuss + speicherww)) - fi - fi - fi - fi + evua1=$(cat /var/www/html/openWB/ramdisk/bezuga1) evua2=$(cat /var/www/html/openWB/ramdisk/bezuga2) evua3=$(cat /var/www/html/openWB/ramdisk/bezuga3) @@ -1835,6 +1823,7 @@ loadvars(){ mqttconfvar["config/get/pv/minBatteryChargePowerAtEvPriority"]=speichermaxwatt mqttconfvar["config/get/pv/minBatteryDischargeSocAtBattPriority"]=speichersocnurpv mqttconfvar["config/get/pv/batteryDischargePowerAtBattPriority"]=speicherwattnurpv + mqttconfvar["config/get/pv/batteryDischargePowerAtBattPriorityHybrid"]=speicherwattnurpvhybrid mqttconfvar["config/get/pv/socStartChargeAtMinPv"]=speichersocminpv mqttconfvar["config/get/pv/socStopChargeAtMinPv"]=speichersochystminpv mqttconfvar["config/get/pv/boolAdaptiveCharging"]=adaptpv diff --git a/minundpv.sh b/minundpv.sh index f133bdc3a..1f8d3c64c 100644 --- a/minundpv.sh +++ b/minundpv.sh @@ -68,11 +68,8 @@ minundpvlademodus(){ fi fi fi - if [[ $speichervorhanden == "1" ]]; then - if (( speicherleistung < 0 )); then - uberschuss=$((uberschuss + speicherleistung)) - fi - else + + if [[ $speichervorhanden == "0" ]]; then speichersoc=0 speichersochystminpv=0 speichersocminpv=0 @@ -104,15 +101,10 @@ minundpvlademodus(){ llneu=$llalt fi if (( uberschuss > schaltschwelle )); then - if [[ $pvbezugeinspeisung == "0" ]]; then - llneu=$(( llalt + ( uberschuss / 230 / anzahlphasen))) - + if (( llalt == minimalampv )); then + llneu=$(( llalt + 1 )) else - if (( llalt == minimalampv )); then - llneu=$(( llalt + 1 )) - else - llneu=$(( llalt + ( (uberschuss - schaltschwelle) / 230 / anzahlphasen))) - fi + llneu=$(( llalt + ( (uberschuss - pvregelungm) / 230 / anzahlphasen))) fi if (( llneu > maximalstromstaerke )); then llneu=$maximalstromstaerke diff --git a/nurpv.sh b/nurpv.sh index 865694b53..0913bd847 100755 --- a/nurpv.sh +++ b/nurpv.sh @@ -221,37 +221,19 @@ nurpvlademodus(){ fi fi else - if [[ $speichervorhanden == "1" ]]; then - if (( speicherleistung < 10 )); then - if (( speichersoc > speichersocnurpv )); then - uberschuss=$((uberschuss + speicherleistung + speicherwattnurpv)) - openwbDebugLog "PV" 0 "SpeicherSoc ($speichersoc) über konfiguriertem Wert ($speichersocnurpv), neuer Überschusswert: $uberschuss" - else - uberschuss=$((uberschuss + speicherleistung)) - openwbDebugLog "PV" 0 "SpeicherSoc ($speichersoc) unter konfiguriertem Wert ($speichersocnurpv), neuer Überschusswert: $uberschuss" - fi - fi - fi + if (( uberschuss > schaltschwelle )); then if (( llalt == maximalstromstaerke )); then openwbDebugLog "MAIN" 1 "llalt == maximalstromstaerke" #exit 0 fi - if [[ $pvbezugeinspeisung == "0" ]]; then - if (( nurpvslowup == 1 )); then - llneu=$(( llalt + 1 )) - else - llneu=$(( llalt + ( uberschuss / 230 / anzahlphasen))) - fi + if (( llalt == minimalapv )); then + llneu=$(( llalt + 1 )) else - if (( llalt == minimalapv )); then + if (( nurpvslowup == 1 )); then llneu=$(( llalt + 1 )) else - if (( nurpvslowup == 1 )); then - llneu=$(( llalt + 1 )) - else - llneu=$(( llalt + ( (uberschuss - schaltschwelle) / 230 / anzahlphasen))) - fi + llneu=$(( llalt + ( (uberschuss - pvregelungm) / 230 / anzahlphasen))) fi fi if (( llneu > maximalstromstaerke )); then @@ -365,7 +347,32 @@ nurpvlademodus(){ fi openwbDebugLog "MAIN" 1 "Abschaltschwelle: $((-abschaltuberschuss)), Überschuss derzeit: $uberschuss" + pvLadungAusschalten=0 + if (( uberschuss < -abschaltuberschuss )); then + + if (( speichersoc > speichersocnurpv )); then + if ((minSpeicherLeistung < - speicherwattnurpv )); then + if ((speicherleistung < -speicherwattnurpv)); then + openwbDebugLog "PV" 0 "Speicherentladung ($speicherleistung) höher als erlaubt ($speicherwattnurpv)" + pvLadungAusschalten=1 + else + openwbDebugLog "PV" 0 "Speicher SOC ($speichersoc) über konfiguriertem Wert ($speichersocnurpv), erlaubte Speicherentladung: $speicherwattnurpv" + fi + else + if ((speicherleistung < minSpeicherLeistung)); then + openwbDebugLog "PV" 0 "Speicherentladung ($speicherleistung) höher als möglich ($minSpeicherLeistung) (Hybrid)" + pvLadungAusschalten=1 + else + openwbDebugLog "PV" 0 "Speicher SOC ($speichersoc) über konfiguriertem Wert ($speichersocnurpv), mögliche Speicherentladung: $((0-minSpeicherLeistung)) (Hybrid)" + fi + fi + else + pvLadungAusschalten=1 + fi + fi + + if (( pvLadungAusschalten > 0 )); then pvcounter=$(cat /var/www/html/openWB/ramdisk/pvcounter) if (( pvcounter < abschaltverzoegerung )); then pvcounter=$((pvcounter + 10)) diff --git a/regel.sh b/regel.sh index 8e7709e52..a71583308 100755 --- a/regel.sh +++ b/regel.sh @@ -540,6 +540,38 @@ fi ######################## # Berechnung für PV Regelung +if [[ $speichervorhanden == "1" ]]; then + + if (( speicherwattnurpvhybrid > 0)); then + minSpeicherLeistung=$((0 - pvwatt - speicherwattnurpvhybrid)) + else + minSpeicherLeistung=$((-100000)) + fi + + + + if ((speicherleistung < 0)); then + openwbDebugLog "PV" 0 "Speicher entläd, gib leistung frei" + uberschuss=$((uberschuss + speicherleistung )) + elif [[ $speicherpveinbeziehen == "1" ]]; then + if ((speichermaxwatt <= minSpeicherLeistung)); then + #EV hat vorrang, aber Speicher bekommt reservierten Ladewert, wenn dieser den nehmen kann + if ((speicherleistung > minSpeicherLeistung)); then + openwbDebugLog "PV" 0 "Speicherleistung ($speicherleistung) über konfiguriertem Wert ($minSpeicherLeistung) (Hybridsystem)" + uberschuss=$((uberschuss + speicherleistung - minSpeicherLeistung)) + fi + else + #EV hat vorrang, aber Speicher bekommt reservierten Ladewert, wenn dieser den nehmen kann + if ((speicherleistung > speichermaxwatt)); then + openwbDebugLog "PV" 0 "Speicherleistung ($speicherleistung) über konfiguriertem Wert ($speichermaxwatt)" + uberschuss=$((uberschuss + speicherleistung - speichermaxwatt)) + fi + fi + fi + #Speicher bekommt maximal möglichen Ladewert. + +fi + if [[ $nurpv70dynact == "1" ]]; then nurpv70status=$(= 0 and int(msg.payload) <= 100000): + sendcommand = ["/var/www/html/openWB/runs/replaceinconfig.sh", "speicherwattnurpvhybrid=", msg.payload.decode("utf-8")] + subprocess.run(sendcommand) + client.publish("openWB/config/get/pv/batteryDischargePowerAtBattPriorityHybrid", msg.payload.decode("utf-8"), qos=0, retain=True) if (msg.topic == "openWB/config/set/pv/socStartChargeAtMinPv"): if (int(msg.payload) >= 0 and int(msg.payload) <= 101): sendcommand = ["/var/www/html/openWB/runs/replaceinconfig.sh", "speichersocminpv=", msg.payload.decode("utf-8")] diff --git a/runs/updateConfig.sh b/runs/updateConfig.sh index 5008cee24..5d25ebef2 100755 --- a/runs/updateConfig.sh +++ b/runs/updateConfig.sh @@ -158,6 +158,9 @@ updateConfig(){ if ! grep -Fq "speicherwattnurpv=" $ConfigFile; then echo "speicherwattnurpv=1500" >> $ConfigFile fi + if ! grep -Fq "speicherwattnurpvhybrid=" $ConfigFile; then + echo "speicherwattnurpvhybrid=100000" >> $ConfigFile + fi if ! grep -Fq "nurpvslowup=" $ConfigFile; then echo "nurpvslowup=0" >> $ConfigFile fi diff --git a/web/settings/pvconfig.html b/web/settings/pvconfig.html index 155f394ed..95a12a8fe 100644 --- a/web/settings/pvconfig.html +++ b/web/settings/pvconfig.html @@ -445,6 +445,13 @@

Einstellungen für PV-Laden

Parameter in Watt [W] für die Entladeleistung Speichers im Modus PV-Laden. Dieser Parameter ist nur wirksam wenn bei "minimaler Entlade-SoC" ein Wert kleiner 100 % gewählt wurde. Definiert eine Entladeleistung, mit der der Speicher bei PV-Ladung zur Ladung des EV entladen werden darf. +
+ +
+ + Parameter in Watt [W] für die Maximale Entladung des Speichers und PV Leistung zusammen (Hybrid System). Der Wert 100.000 schaltet die Funktion ab. +
+
diff --git a/web/settings/topicsToSubscribe_pvconfig.js b/web/settings/topicsToSubscribe_pvconfig.js index f3288fab1..9638c4bdc 100644 --- a/web/settings/topicsToSubscribe_pvconfig.js +++ b/web/settings/topicsToSubscribe_pvconfig.js @@ -33,6 +33,7 @@ var topicsToSubscribe = [ ["openWB/config/get/pv/minBatteryChargePowerAtEvPriority", 0], ["openWB/config/get/pv/minBatteryDischargeSocAtBattPriority", 0], ["openWB/config/get/pv/batteryDischargePowerAtBattPriority", 0], + ["openWB/config/get/pv/batteryDischargePowerAtBattPriorityHybrid", 0], ["openWB/lp/2/boolSocConfigured", 0], ["openWB/lp/1/boolSocConfigured", 0], ["openWB/lp/1/boolChargePointConfigured", 0],