Ich hatte heute dasselbe Verhalten. Sogar während des Ladens ist plötzlich der SOC zurückgesprungen, obwohl das Auto nicht mal abgesteckt war. Ich habe jetzt mal Debug-Level auf 2 gesetzt. Vielleicht finde ich dann beim nächsten mal was raus. Das mit CurrentMeter behalte ich mal im Hinterkopf.turbowheeler hat geschrieben: ↑Do Sep 16, 2021 12:54 pm Bei mir leider keine Verbesserung. Das Zurücksetzen des Soc bei Ladeunterbrechung ist bei mir nicht behoben. Das Modul "manuell+Berechnung" ist so für mich leider unbrauchbar. installierte Version: 1.9.248 (2021-09-10 18:30:27 +0200 [3b33da8d] )
Support: Manuell + Berechnung
-
- Beiträge: 1034
- Registriert: Mi Jul 21, 2021 3:00 pm
Re: Support: Manuell + Berechnung
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
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
Re: Support: Manuell + Berechnung
...hab hier noch die 1.9.248 (2021-08-31 19:00:19 drauf und kann das Verhalten nicht bestätigen.
Egal wann die Ladevorgänge starten, wird fein weitergezählt. Ob ich den Wert anfangs neu eingebe oder den alten belasse, es passt.
mag gar nicht updaten..
VG
Egal wann die Ladevorgänge starten, wird fein weitergezählt. Ob ich den Wert anfangs neu eingebe oder den alten belasse, es passt.
mag gar nicht updaten..
VG
-
- Beiträge: 1034
- Registriert: Mi Jul 21, 2021 3:00 pm
Re: Support: Manuell + Berechnung
Hast du eine Box mit Support oder kannst du Code-Änderungen testen?turbowheeler hat geschrieben: ↑Do Sep 16, 2021 12:54 pm Bei mir leider keine Verbesserung. Das Zurücksetzen des Soc bei Ladeunterbrechung ist bei mir nicht behoben. Das Modul "manuell+Berechnung" ist so für mich leider unbrauchbar. installierte Version: 1.9.248 (2021-09-10 18:30:27 +0200 [3b33da8d] )
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
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
-
- Beiträge: 27
- Registriert: Mi Feb 26, 2020 8:21 am
Re: Support: Manuell + Berechnung
Hallo, ich habe die OpenWB auf einem Raspberry Pi 3 Model B Rev 1.2. Kernel: Linux 4.19.97-v7+ GNU/Linux
openWB Version: 1.9.249 (2021-09-27 13:10:52 +0200 [072bfeb0] ). Mein Ladepunkt ist ein EVSE-WiFi Version: 2.2.4.
openWB Version: 1.9.249 (2021-09-27 13:10:52 +0200 [072bfeb0] ). Mein Ladepunkt ist ein EVSE-WiFi Version: 2.2.4.
-
- Beiträge: 1034
- Registriert: Mi Jul 21, 2021 3:00 pm
Re: Support: Manuell + Berechnung
OK, das hört sich ja so an, dass du Codeänderungen testen kannst?turbowheeler hat geschrieben: ↑Mi Sep 29, 2021 9:22 am Hallo, ich habe die OpenWB auf einem Raspberry Pi 3 Model B Rev 1.2. Kernel: Linux 4.19.97-v7+ GNU/Linux
openWB Version: 1.9.249 (2021-09-27 13:10:52 +0200 [072bfeb0] ). Mein Ladepunkt ist ein EVSE-WiFi Version: 2.2.4.
Die Ursache ist mir nach wie vor Unklar. Meine Vermutung ist, dass aus irgend einem Grund die Ramdist/manual_soc_lp1 neuer als die Ramdisk/manual_soc_meter_lp1 ist. In der Konstellation kommt es laut Code genau zu dem Verhalten (Und nur in dem Fall). Das Verhalten tritt zumindest bei mir spontan und ohne Regel/Reproduzierbarkeit auf. Das einzige was mir einfällt: Ich habe ja den manuellen SOC für den Fall eines Reboots in die Initramdisk aufgenommen. Aber mir wäre neu, dass die außer beim Reboot nochmals ausgeführt wird?
Aber ich habe einen Ansatz wie man das vermutlich abfangen kann:
Für Ladepunkt 1 muss in die Datei /var/www/html/openWB/modules/soc_manual/main.sh in Zeile 98
Code: Alles auswählen
# 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.
currentSoc=$(<$socFile)
echo $currentSoc > $manualSocFile
Code: Alles auswählen
# 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.
currentSoc=$(<$socFile)
echo $currentSoc > $manualSocFile
# manualMeterFile does not exist or is outdated
# update manualMeter with currentMeter
manualMeter=$currentMeter
echo $manualMeter > $manualMeterFile
fi
Seit ich die Codenanpassung bei mir gemacht habe, hatte ich aber den Fall nicht mehr. Daher konnte ich es bisher nicht ausreichend testen.
EDIT: ACHTUNG: Es gab oben nochmals eine Korrektur im Code!
Zuletzt geändert von philipp123 am Mi Sep 29, 2021 11:56 am, insgesamt 1-mal geändert.
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
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
-
- Beiträge: 1034
- Registriert: Mi Jul 21, 2021 3:00 pm
Re: Support: Manuell + Berechnung
Hatte einen Fehler im Code. Ist oben als Edit geändert.
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
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
-
- Beiträge: 27
- Registriert: Mi Feb 26, 2020 8:21 am
-
- Beiträge: 1034
- Registriert: Mi Jul 21, 2021 3:00 pm
Re: Support: Manuell + Berechnung
Hab gerade nochmals über den Code geschaut. Sauber wäre so:
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.
echo $currentSoc > $manualSocFile
# 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 ---"
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
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
-
- Beiträge: 27
- Registriert: Mi Feb 26, 2020 8:21 am
Re: Support: Manuell + Berechnung
OK, habe den neuen Code in die Datei main.sh kopiert. Zum testen brauche ich etwas Sonne,... sieht gerade schlecht aus. Also wird morgen getestet
-
- Beiträge: 27
- Registriert: Mi Feb 26, 2020 8:21 am
Re: Support: Manuell + Berechnung
Soviele kann ich jetzt schon sagen sagen, es sieht nicht optimal aus: