Moin,
mit dem mypeugeot SOC Modul gibt es bei mir ein Problem: der SOC kann nur unmittelbar
nach dem Ladestart abgerufen werden.
Das führt dazu, dass die Ladung nicht gestartet wird, wenn beim vorherigen Laden die SOC Abschaltschwelle erreicht wurde (z.B. 80%).
Beispiel:
1. Fahrzeug lädt bis 80%
2. Fahrzeug wird abgesteckt und bis z.B. 50% beim Fahren entladen
3. Fahrzeug wird angesteckt - SOC kann nicht ermittelt werden
4. openWB "denkt" immer noch der SOC wäre bei 80% und startet nicht mit dem Laden
Manueller Workaround:
--> Ziel-SOC kurzeitig auf 85% hochstellen, dann startet das Laden und der SOC wird korrekt ermittelt. Das funktioniert, hat aber keinen sehr hohen WAF
Logs
Im EV SOC-Log sieht das wie folgt aus:
Code: Alles auswählen
2022-05-21 10:52:37: PID: 2003: Lp1: Fetched from myPeugeot: 66% (LV0)
2022-05-21 10:52:33: PID: 2003: Lp1: Ladestatus changed to charging. Fetching SoC from myPeugeot out of order. (LV0)
2022-05-21 10:47:53: PID: 4416: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-21 10:37:43: PID: 23766: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-21 10:27:33: PID: 10873: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-21 10:17:24: PID: 30378: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 14:38:04: PID: 4401: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 14:27:53: PID: 23874: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 14:17:43: PID: 11029: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 14:07:33: PID: 30452: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 13:57:23: PID: 17615: Lp1: Fetching SoC from myPeugeot (LV0)
2022-05-20 10:11:37: PID: 24135: Lp1: Fetched from myPeugeot: 53% (LV0)
2022-05-20 10:11:33: PID: 24135: Lp1: Ladestatus changed to charging. Fetching SoC from myPeugeot out of order. (LV0)
2022-05-20 10:08:33: PID: 875: Lp1: Fetching SoC from myPeugeot (LV0)
Im Debug-Log sieht man dazu verschiedene Fehlermeldungen:
Code: Alles auswählen
2022-05-21 10:54:13: PID: 8826: ungültiger Wert für soc: (LV0)
2022-05-21 10:53:53: PID: 7415: ungültiger Wert für soc: (LV0)
(standard_in) 2: syntax error
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.1' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.2' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.3' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.4' kann nicht angelegt werden: Keine Berechtigung
TypeError: list indices must be integers, not str
fetchedsoctime = batt['energy'][0]['updatedAt']
File "/var/www/html/openWB/modules/soc_mypeugeot/peugeotsoc.py", line 128, in <module>
Traceback (most recent call last):
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.1' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.2' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.3' kann nicht angelegt werden: Keine Berechtigung
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.4' kann nicht angelegt werden: Keine Berechtigung
2022-05-21 10:50:04: PID: 20672: ##### cron5min.sh finished ##### (LV0)
2022-05-21 10:50:02: PID: 20672: ##### cron5min.sh started ##### (LV0)
modules/soc_mypeugeot/main.sh: Zeile 120: 1653047233 - : Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \"- \").
modules/soc_mypeugeot/main.sh: Zeile 120: /var/www/html/openWB/ramdisk/peugeotsoctime: Datei oder Verzeichnis nicht gefunden
TypeError: list indices must be integers, not str
fetchedsoctime = batt['energy'][0]['updatedAt']
File "/var/www/html/openWB/modules/soc_mypeugeot/peugeotsoc.py", line 128, in <module>
Traceback (most recent call last):
cp: reguläre Datei '/var/www/html/openWB/openwb.conf.1' kann nicht angelegt werden: Keine Berechtigung
Ideen
Wenn das Problem bei der myPeugeot-API liegt und nicht im openWB SOC-Modul-Code gelöst werden kann, kann ich mir folgende Optionen vorstellen:
1. Semi-Manuell: Auf dem Dashboard könnte man neben dem "SOC Refresh Button" eine Taste zum Setzen/Zurücksetzen des SOC anbieten. Diese müsste zwar immer noch manuell bedient werden aber besser als immer in die Einstellungen zu wechseln. So ähnlich wie beim manuellen SOC.
2. Semi-Automatisch: schlägt der SOC-Abruf fehl, werden 0% oder 20% angenommen und das Laden startet
3. Laden startet beim Anstecken immer kurz um SOC abrufen zu können.
(Verbaut ist eine series2 Standard+, SW-Version: 1.9.262, Client-ID und Secret aus dem Wiki, Config steht auf "SOC + manuelle Berechnung")
Danke!