Support: Manuell + Berechnung

Alles rund um SoC (Ladezustand des Fahrzeuges). Probleme, Fragen, Fehlfunktionen gehören hier hin
turbowheeler
Beiträge: 27
Registriert: Mi Feb 26, 2020 8:21 am

Re: Support: Manuell + Berechnung

Beitrag von turbowheeler »

Obwohl, nachdem ich den SoC einmal manuell angepaßt habe bleibt er konstant:
Bildschirmfoto vom 2021-09-29 16-49-53.png
philipp123
Beiträge: 1034
Registriert: Mi Jul 21, 2021 3:00 pm

Re: Support: Manuell + Berechnung

Beitrag von philipp123 »

Hast du mal zum Test einen neuen SOC eingegeben? So Sprünge ohne Ladung sollte es nicht geben...

Edit: Ok, hat sich überschnitten. Dann mal beim Laden beobachten
LP1: openWB series2 custom mit Phasenumschaltung
LP2: go-e V2
Kostal Plenticore Plus
e-up BJ 2021, SOC mit OVMS
EQB 250 BJ 2023, SOC mit Mercedes ME über Home Assistant
EVU mit Tasmato-Lesekopf auf SmartMeter
9 x Smarthome mit Shellys
turbowheeler
Beiträge: 27
Registriert: Mi Feb 26, 2020 8:21 am

Re: Support: Manuell + Berechnung

Beitrag von turbowheeler »

Ja, wenn ich eine neuen Wert eingebe bleibt der Soc konstant, aber nach Reboot muss der Soc immer wieder neu eingestellt werden sonst toggelt der Wert wie im screenshot gezeigt.
philipp123
Beiträge: 1034
Registriert: Mi Jul 21, 2021 3:00 pm

Re: Support: Manuell + Berechnung

Beitrag von philipp123 »

Ah, okay. Das ist wenn der Rest funktioniert aber kein Problem. Das kann ich in der Init Ramdisk noch korrigieren.
LP1: openWB series2 custom mit Phasenumschaltung
LP2: go-e V2
Kostal Plenticore Plus
e-up BJ 2021, SOC mit OVMS
EQB 250 BJ 2023, SOC mit Mercedes ME über Home Assistant
EVU mit Tasmato-Lesekopf auf SmartMeter
9 x Smarthome mit Shellys
HSC
Beiträge: 3941
Registriert: So Jan 10, 2021 8:49 am

Re: Support: Manuell + Berechnung

Beitrag von HSC »

🤔
Sieht ja etwas ungewöhnlich aus, nur Netzexport, keine PV und kein Hausverbrauch.
Passen da die Module noch nicht?
VG
turbowheeler
Beiträge: 27
Registriert: Mi Feb 26, 2020 8:21 am

Re: Support: Manuell + Berechnung

Beitrag von turbowheeler »

Alles Ok, das Auto ist gerade unterwegs 8-) und den PV/Hausverbrauch messe ich nicht, nur EVU.
philipp123
Beiträge: 1034
Registriert: Mi Jul 21, 2021 3:00 pm

Re: Support: Manuell + Berechnung

Beitrag von philipp123 »

turbowheeler hat geschrieben: Mi Sep 29, 2021 2:57 pm Ja, wenn ich eine neuen Wert eingebe bleibt der Soc konstant, aber nach Reboot muss der Soc immer wieder neu eingestellt werden sonst toggelt der Wert wie im screenshot gezeigt.
Nochmal eine neue Version, wo das Verhalten nicht mehr auftritt.

Code: Alles auswählen

#!/bin/bash

OPENWBBASEDIR=$(cd `dirname $0`/../../ && pwd)
RAMDISKDIR="$OPENWBBASEDIR/ramdisk"
MODULEDIR=$(cd `dirname $0` && pwd)
DMOD="EVSOC"
CHARGEPOINT=$1

# check if config file is already in env
if [[ -z "$debug" ]]; then
	echo "soc_manual: Seems like openwb.conf is not loaded. Reading file."
	# try to load config
	. $OPENWBBASEDIR/loadconfig.sh
	# load helperFunctions
	. $OPENWBBASEDIR/helperFunctions.sh
fi

case $CHARGEPOINT in
	2)
		# second charge point
		manualSocFile="$RAMDISKDIR/manual_soc_lp2"
		manualMeterFile="$RAMDISKDIR/manual_soc_meter_lp2"
		socFile="$RAMDISKDIR/soc1"
		soctimerfile="$RAMDISKDIR/soctimer1"
		socIntervall=1 # update every minute if script is called every 10 seconds
		meterFile="$RAMDISKDIR/llkwhs1"
		akkug=$akkuglp2
		efficiency=$wirkungsgradlp2
		;;
	*)
		# defaults to first charge point for backward compatibility
		# set CHARGEPOINT in case it is empty (needed for logging)
		CHARGEPOINT=1
		manualSocFile="$RAMDISKDIR/manual_soc_lp1"
		manualMeterFile="$RAMDISKDIR/manual_soc_meter_lp1"
		socFile="$RAMDISKDIR/soc"
		soctimerfile="$RAMDISKDIR/soctimer"
		socIntervall=1 # update every minute if script is called every 10 seconds
		meterFile="$RAMDISKDIR/llkwh"
		akkug=$akkuglp1
		efficiency=$wirkungsgradlp1
		;;
esac

incrementTimer(){
	case $dspeed in
		1)
			# Regelgeschwindigkeit 10 Sekunden
			ticksize=1
			;;
		2)
			# Regelgeschwindigkeit 20 Sekunden
			ticksize=2
			;;
		3)
			# Regelgeschwindigkeit 60 Sekunden
			ticksize=1
			;;
		*)
			# Regelgeschwindigkeit unbekannt
			ticksize=1
			;;
	esac
	soctimer=$((soctimer+$ticksize))
	echo $soctimer > $soctimerfile
}

soctimer=$(<$soctimerfile)
openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: timer = $soctimer"

if (( soctimer < socIntervall )); then
	openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: Nothing to do yet. Incrementing timer."
	incrementTimer
else
	openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: Calculating manual SoC"
	# reset timer
	echo 0 > $soctimerfile

	# read current meter
	if [[ -f "$meterFile" ]]; then
		currentMeter=$(<$meterFile)
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: currentMeter: $currentMeter"

		# read manual Soc
		if [[ -f "$manualSocFile" ]]; then
			manualSoc=$(<$manualSocFile)
		else
			# set manualSoc to 0 as a starting point
			manualSoc=0
			echo $manualSoc > $manualSocFile
		fi
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: manual SoC: $manualSoc"
		
				# read current soc
		if [[ -f "$socFile" ]]; then
			currentSoc=$(<$socFile)
		else
			currentSoc=$manualSoc
			echo $currentSoc > $socFile
		fi
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: currentSoc: $currentSoc"

		# read manualMeterFile if file exists and manualMeterFile is newer than manualSocFile
		if [[ -f "$manualMeterFile" ]] && [ "$manualMeterFile" -nt "$manualSocFile" ]; then
			manualMeter=$(<$manualMeterFile)
		else
			# There are cases the else arrives without entering new Man. SOC. Reason unknown. In this case current soc and man soc is different.
			# Without the next row every time this happens SOC jumps back to last entered man. soc.
			if [[ $currentSOC > 0 ]]; then
				manualSoc=$currentSoc;
				echo $manualSoc > $manualSocFile
			fi
			# manualMeterFile does not exist or is outdated
			# update manualMeter with currentMeter
			manualMeter=$currentMeter
			echo $manualMeter > $manualMeterFile
		fi
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: manualMeter: $manualMeter"

		# calculate newSoc
		currentMeterDiff=$(echo "scale=5;$currentMeter - $manualMeter" | bc)
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: currentMeterDiff: $currentMeterDiff"
		currentEffectiveMeterDiff=$(echo "scale=5;$currentMeterDiff * $efficiency / 100" | bc)
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: currentEffectiveMeterDiff: $currentEffectiveMeterDiff ($efficiency %)"
		currentSocDiff=$(echo "scale=5;100 / $akkug * $currentEffectiveMeterDiff" | bc | awk '{printf"%d\n",$1}')
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: currentSocDiff: $currentSocDiff"
		newSoc=$(echo "$manualSoc + $currentSocDiff" | bc)
		if (( newSoc > 100 )); then
			newSoc=100
		fi
		if (( newSoc < 0 )); then
			newSoc=0
		fi
		openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: newSoc: $newSoc"
		echo $newSoc > $socFile
	else
		# no current meter value for calculation -> Exit
		openwbDebugLog ${DMOD} 0 "Lp$CHARGEPOINT: ERROR: no meter value for calculation! ($meterFile)"
	fi
fi

openwbDebugLog ${DMOD} 1 "Lp$CHARGEPOINT: --- Manual SoC end ---"
Ladetest steht bei mir nach wie vor aus
LP1: openWB series2 custom mit Phasenumschaltung
LP2: go-e V2
Kostal Plenticore Plus
e-up BJ 2021, SOC mit OVMS
EQB 250 BJ 2023, SOC mit Mercedes ME über Home Assistant
EVU mit Tasmato-Lesekopf auf SmartMeter
9 x Smarthome mit Shellys
turbowheeler
Beiträge: 27
Registriert: Mi Feb 26, 2020 8:21 am

Re: Support: Manuell + Berechnung

Beitrag von turbowheeler »

Bildschirmfoto vom 2021-09-30 12-56-37.png
Das Verhalten ist unverändert. Um 12:41 wird der Soc wieder auf 40 zurückgesetzt.

Code: Alles auswählen

2021-09-30 12:41:54: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: newSoc: 40 (LV1) at 134 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: currentSocDiff: 0 (LV1) at 126 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: currentEffectiveMeterDiff: -.07440 (93 %) (LV1) at 124 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: currentMeterDiff: -.08 (LV1) at 122 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: currentSoc: 42 (LV1) at 101 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: manual SoC: 40 (LV1) at 92 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: currentMeter: 0.01 (LV1) at 82 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: Calculating manual SoC (LV1) at 75 main modules/soc_manual/main.sh
2021-09-30 12:41:54: Lp1: timer = 1 (LV1) at 69 main modules/soc_manual/main.sh
2021-09-30 12:41:44: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-09-30 12:41:44: Lp1: Nothing to do yet. Incrementing timer. (LV1) at 72 main modules/soc_manual/main.sh
2021-09-30 12:41:44: Lp1: timer = 0 (LV1) at 69 main modules/soc_manual/main.sh
2021-09-30 12:41:35: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: newSoc: 42 (LV1) at 134 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: currentSocDiff: 2 (LV1) at 126 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: currentEffectiveMeterDiff: .65100 (93 %) (LV1) at 124 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: currentMeterDiff: .70 (LV1) at 122 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: currentSoc: 42 (LV1) at 101 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: manual SoC: 40 (LV1) at 92 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: currentMeter: 0.79 (LV1) at 82 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: Calculating manual SoC (LV1) at 75 main modules/soc_manual/main.sh
2021-09-30 12:41:34: Lp1: timer = 20000 (LV1) at 69 main modules/soc_manual/main.sh
philipp123
Beiträge: 1034
Registriert: Mi Jul 21, 2021 3:00 pm

Re: Support: Manuell + Berechnung

Beitrag von philipp123 »

2021-09-30 12:41:54: Lp1: currentMeterDiff: -.08 (LV1) at 122 main modules/soc_manual/main.sh

Hier kommt plötzlich ein negativer Wert.

2021-09-30 12:41:54: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh

ManualMeter bleibt ja aber und wird nicht zurückgesetzt.

Heißt für mich: Deine geladene Leistung LLKWH ist plötzlich kleiner wie die simulierte Leistung in manual Meter.

Kannst du mal bitte den Parameter Ladeeffizienz von 93% auf 60% ändern. Er steigt dann zu langsam, aber es wird interessant, ob in dem Fall das Problem wieder auftritt.
LP1: openWB series2 custom mit Phasenumschaltung
LP2: go-e V2
Kostal Plenticore Plus
e-up BJ 2021, SOC mit OVMS
EQB 250 BJ 2023, SOC mit Mercedes ME über Home Assistant
EVU mit Tasmato-Lesekopf auf SmartMeter
9 x Smarthome mit Shellys
turbowheeler
Beiträge: 27
Registriert: Mi Feb 26, 2020 8:21 am

Re: Support: Manuell + Berechnung

Beitrag von turbowheeler »

Ladeeffizienz von 93% auf 60% geändert:
Bildschirmfoto vom 2021-10-01 11-52-44.png

Code: Alles auswählen

2021-10-01 11:51:24: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: newSoc: 40 (LV1) at 134 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: currentSocDiff: 0 (LV1) at 126 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: currentEffectiveMeterDiff: -.05400 (60 %) (LV1) at 124 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: currentMeterDiff: -.09 (LV1) at 122 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: currentSoc: 40 (LV1) at 101 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: manual SoC: 40 (LV1) at 92 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: currentMeter: 0 (LV1) at 82 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: Calculating manual SoC (LV1) at 75 main modules/soc_manual/main.sh
2021-10-01 11:51:24: Lp1: timer = 1 (LV1) at 69 main modules/soc_manual/main.sh
2021-10-01 11:51:14: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-10-01 11:51:14: Lp1: Nothing to do yet. Incrementing timer. (LV1) at 72 main modules/soc_manual/main.sh
2021-10-01 11:51:14: Lp1: timer = 0 (LV1) at 69 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: newSoc: 40 (LV1) at 134 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: currentSocDiff: 0 (LV1) at 126 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: currentEffectiveMeterDiff: -.05400 (60 %) (LV1) at 124 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: currentMeterDiff: -.09 (LV1) at 122 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: currentSoc: 41 (LV1) at 101 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: manual SoC: 40 (LV1) at 92 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: currentMeter: 0 (LV1) at 82 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: Calculating manual SoC (LV1) at 75 main modules/soc_manual/main.sh
2021-10-01 11:51:04: Lp1: timer = 20000 (LV1) at 69 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: --- Manual SoC end --- (LV1) at 142 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: newSoc: 41 (LV1) at 134 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: currentSocDiff: 1 (LV1) at 126 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: currentEffectiveMeterDiff: .47400 (60 %) (LV1) at 124 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: currentMeterDiff: .79 (LV1) at 122 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: manualMeter: 0.09 (LV1) at 118 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: currentSoc: 41 (LV1) at 101 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: manual SoC: 40 (LV1) at 92 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: currentMeter: 0.88 (LV1) at 82 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: Calculating manual SoC (LV1) at 75 main modules/soc_manual/main.sh
2021-10-01 11:50:55: Lp1: timer = 1 (LV1) at 69 main modules/soc_manual/main.sh
Antworten