Re: Projekt: SOC von OBD2-Buchse in die Wallbox (ohne Cloud)
Verfasst: Di Aug 27, 2024 10:37 am
Könntest du uns die IDs und die Kommandos, die die Car Scanner App für deinen eGolf verwendet mitteilen?
Die modulare Wallbox
https://forum.openwb.de/
Welchen Export benötigst du, die Aufzechnung während man sich Sensoren anschaut (brc, csv) oder den Adapterlog?
Mach dir keine Arbeit, ich meinte Jonny. Versuch du erstmal, ob mit der derzeitigen Konfiguration im Alltag zuverlässig Werte kommen. Wenn der Kilometerstand klemmt, können wir noch die Abfrage versuchen, die Jonny in der Verlinkung erwähnt und die anscheinend zum Passat GTE gehört._daniel hat geschrieben: ↑Di Aug 27, 2024 7:04 pmWelchen Export benötigst du, die Aufzechnung während man sich Sensoren anschaut (brc, csv) oder den Adapterlog?
Bzgl Spritmonitor ging es mir wirklich darum, ob automatisch Einträge auf der Webseite erzeugt werden.
Da ich ja nicht immer ein Display mit SSH Zugriff auf den rpi parat habe.
Aktuell ist das Auto voll und wird wenig bewegt. Da steckt dann auch kein Stecker.
Die Tage mal schauen, ob der soc-helper noch brav im Hintergrund läuft.
So, das Thema Alarmanlage sollte nun erledigt sein.ChristophR hat geschrieben: ↑Di Aug 20, 2024 9:57 pmEin paar Hersteller, darunter auch VW legen auf PIN1 des ODB2-Steckers, der in der Norm frei definierbar ist, Zündplus:zut hat geschrieben: ↑Di Aug 20, 2024 9:12 pmWenn man ein Fahrzeug hat, das per UDS kommuniziert, wird der soc_helper immer dann, wenn der WiCAN seinen Status auf online setzt, die Abfragen rausschicken. Das kann auch dann passieren, wenn eine Ladung mangels Sonne abgebrochen wurde und einige Zeit danach wieder startet. Das Fahrzeug lädt dann meiner Erfahrung nach die NV-Batterie und der aktuelle SoC wird abgefragt.ChristophR hat geschrieben: ↑Di Aug 20, 2024 7:24 pm Daher nun meine Frage: Was ist der Auslöser der Abfrage im soc_helper, erkennt der den Unterschied zwischen "aus Schlafmodus aufwachen" und dem normalen "Einfahren ins WLAN" ganz zu Beginn?
Das sieht nicht so gut aus - ich wüsste gerade auch nicht, wie man solche Fälle (Ankunft / Abfahrt / Wiederaufwecken) zuverlässig unterscheiden kann. Dazu müsste man die Fahrbereitschaft haben, aber die darf man nicht aktiv abfragen. UDS schickt nichts von alleine. Wenn die Versorgungsspannung der Buchse auf Zündplus (Klemme 15 oder 87) statt Dauerplus (Klemme 30) gelegt würde, ginge es, aber bei Firmenwagen wäre das wohl nicht so gut.
https://www.flexihub.com/de/oobd2-pinout/#volkswagen
Vielleicht kann man das im WiCAN Dongle umverkabeln? Dann geht es ohne Eingriff ins Fahrzeug.
Schaue ich mir mal an, wenn der Dongle da ist.
Dann muss die SoC-Abfrage nur fertig sein, bevor ich den "Motor" ausmache, das sollte aber m.E. reichen.
Edit:
Ich habe tatsächlich auf PIN1 Zündungsplus.
Wenn alles läuft werde ich das ggf. mit einem Adapter umbauen, dann bleibt auch der Dongle ganz.
Nur fraglich, ob der das so toll findet ständig abgeschaltet zu werden...
Mein Versuch:
Code: Alles auswählen
2024-08-30 10:58:26,955; INFO;[ cars.py: 61 - cb_status() ] WiCAN-Status: others/wican/egolf/status b'{"status": "offline"}'
2024-08-30 10:58:26,955; INFO;[ cars.py: 84 - cb_status() ] Fahrzeug egolf ist <<offline>>
...
2024-08-30 10:58:26,911; DEBUG;[ chargepoints.py: 59 - cb_connectedVehicle() ] ID des mit Ladepunkt 7 verbundenes Fahrzeugs: 1
2024-08-30 10:58:26,913; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 7: 10180850.0
2024-08-30 10:58:26,913; DEBUG;[ chargepoints.py: 63 - cb_plug() ] Steckerzustand von Ladepunkt 7: b'false'
2024-08-30 10:58:26,916; DEBUG;[ chargepoints.py: 59 - cb_connectedVehicle() ] ID des mit Ladepunkt 8 verbundenes Fahrzeugs: 2
2024-08-30 10:58:26,917; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 8: 2709637.94
Code: Alles auswählen
2024-08-30 10:58:26,892; DEBUG;[ soc_helper.py:102 - checkConfig() ] Letzter Spritmonitor-Kilometerstand von Fahrzeug egolf erfolgreich abgerufen: {'id': 55472462, 'type': 'first', 'date': '26.08.2024', 'odometer': '79613.00', 'trip': None, 'fuelsortid': 19, 'quantity': None, 'quantityunitid': 5, 'quantity_converted': None, 'cost': None, 'currencyid': 0, 'cost_converted': None, 'note': '', 'attributes': None, 'streets': '', 'consumption': None, 'bc_speed': '0.00', 'bc_quantity': '0.00', 'bc_consumption': '0.00', 'position': None, 'stationname': None, 'tankid': 1, 'country': 'D', 'location': '', 'percent': '98.0', 'charging_power': None, 'charging_duration': None, 'charging_info': 'source_vehicle'}.
Code: Alles auswählen
2024-08-30 10:58:27,910; DEBUG;[ chargepoints.py: 63 - cb_plug() ] Steckerzustand von Ladepunkt 7: b'false'
2024-08-30 10:58:27,978; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 7: 10180850.0
2024-08-30 10:58:28,870; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 8: 2709637.94
2024-08-30 10:58:30,991; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 7: 10180850.0
2024-08-30 10:58:31,022; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 8: 2709637.94
2024-08-30 10:58:31,033; DEBUG;[ chargepoints.py: 63 - cb_plug() ] Steckerzustand von Ladepunkt 7: b'false'
2024-08-30 10:58:31,176; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 7: 10180850.0
2024-08-30 10:58:33,039; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 8: 2709637.94
2024-08-30 10:58:34,115; DEBUG;[ chargepoints.py: 51 - cb_energycounter() ] Zählerstand auf Ladepunkt 7: 10180850.0
Code: Alles auswählen
2024-08-30 11:53:59,585; DEBUG;[ chargepoints.py: 63 - cb_plug() ] Steckerzustand von Ladepunkt 8: b'true'
2024-08-30 11:53:59,585; DEBUG;[ chargepoints.py: 73 - cb_plug() ] Angestecktes Fahrzeug mit openwbId 2 als egolf in der Fahrzeugliste identifiziert
2024-08-30 11:53:59,585; INFO;[ chargepoints.py: 76 - cb_plug() ] Angestecktes Fahrzeug egolf, ID 2 mit SoC 0 angesteckt
Code: Alles auswählen
2024-08-30 11:55:42,110; DEBUG;[ cars.py: 60 - cb_status() ] cb_status von Fahrzeug egolf aufgerufen
2024-08-30 11:55:42,110; INFO;[ cars.py: 61 - cb_status() ] WiCAN-Status: others/wican/egolf/status b'{"status": "online"}'
2024-08-30 11:55:42,111; INFO;[ cars.py: 68 - cb_status() ] Fahrzeug egolf ist online. Sende SOC- und ODO-Anforderung
2024-08-30 11:55:42,111; INFO;[ cars.py: 73 - cb_status() ] Sende SOC-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 2021, "dlc": 8, "rtr": false, "extd": false, "data": [3, 34, 2, 140, 170, 170, 170, 170] }] }
2024-08-30 11:55:42,112; INFO;[ cars.py: 79 - cb_status() ] Sende ODO-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 2021, "dlc": 8, "rtr": false, "extd": false, "data": [3, 34, 2, 189, 170, 170, 170, 170] }] }
2024-08-30 11:55:42,158; DEBUG;[ cars.py:101 - cb_rx() ] cb_rx von Fahrzeug egolf aufgerufen
2024-08-30 11:55:42,159; DEBUG;[ cars.py:102 - cb_rx() ] Empfangene CAN-Botschaft: b'{"bus":"0","type":"rx","ts":18547,"frame":[{"id":2029,"dlc":8,"rtr":false,"extd":false,"data":[4,98,2,140,206,170,170,170]}]}'
2024-08-30 11:55:42,159; DEBUG;[ cars.py:108 - cb_rx() ] Gesamte Frames: [{'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [4, 98, 2, 140, 206, 170, 170, 170]}]
2024-08-30 11:55:42,159; DEBUG;[ cars.py:122 - cb_rx() ] Frame: {'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [4, 98, 2, 140, 206, 170, 170, 170]}
2024-08-30 11:55:42,159; DEBUG;[ cars.py:166 - cb_rx() ] Einteilige Botschaft: [2029, 98, 2, 140, 206, 170, 170, 170]
2024-08-30 11:55:42,160; DEBUG;[ cars.py:176 - cb_rx() ] Erwarteter SOC_Header: lenSOC: 3; expectSOC: [98, 2, 140]
2024-08-30 11:55:42,160; DEBUG;[ cars.py:180 - cb_rx() ] Erwarteter ODO-Header: lenODO: 3; expectODO: [98, 2, 189]
2024-08-30 11:55:42,160; DEBUG;[ cars.py:245 - calcSOC() ] Daten für SoC-Berechnung: [2029, 98, 2, 140, 206, 170, 170, 170]
2024-08-30 11:55:42,160; INFO;[ cars.py:189 - cb_rx() ] Fahrzeug-SOC ist 85
2024-08-30 11:55:42,161; DEBUG;[ cars.py:190 - cb_rx() ] SOC-Wert von 85 an openWB/set/vehicle/2/soc_module/calculated_soc_state/manual_soc schicken.
Code: Alles auswählen
2024-08-30 11:55:42,162; DEBUG;[ cars.py:101 - cb_rx() ] cb_rx von Fahrzeug egolf aufgerufen
2024-08-30 11:55:42,163; DEBUG;[ cars.py:102 - cb_rx() ] Empfangene CAN-Botschaft: b'{"bus":"0","type":"rx","ts":18566,"frame":[{"id":2029,"dlc":8,"rtr":false,"extd":false,"data":[16,13,98,2,189,159,1,55]}]}'
2024-08-30 11:55:42,163; DEBUG;[ cars.py:108 - cb_rx() ] Gesamte Frames: [{'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [16, 13, 98, 2, 189, 159, 1, 55]}]
2024-08-30 11:55:42,163; DEBUG;[ cars.py:122 - cb_rx() ] Frame: {'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [16, 13, 98, 2, 189, 159, 1, 55]}
2024-08-30 11:55:42,164; DEBUG;[ cars.py:135 - cb_rx() ] Ersten Teil einer mehrteiligen Botschaft empfangen: [2029, 98, 2, 189, 159, 1, 55]
2024-08-30 11:55:42,164; DEBUG;[ cars.py:148 - cb_rx() ] Aufforderung für Folgeteile absetzen: { "bus": "0", "type": "tx", "frame": [{ "id": 2021, "dlc": 8, "rtr": false, "extd": false, "data": [48,0,100,170,170,170,170,170] }] }
2024-08-30 11:55:42,210; DEBUG;[ cars.py:101 - cb_rx() ] cb_rx von Fahrzeug egolf aufgerufen
2024-08-30 11:55:42,210; DEBUG;[ cars.py:102 - cb_rx() ] Empfangene CAN-Botschaft: b'{"bus":"0","type":"rx","ts":18597,"frame":[{"id":2029,"dlc":8,"rtr":false,"extd":false,"data":[33,84,0,0,98,60,189,224]}]}'
2024-08-30 11:55:42,211; DEBUG;[ cars.py:108 - cb_rx() ] Gesamte Frames: [{'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [33, 84, 0, 0, 98, 60, 189, 224]}]
2024-08-30 11:55:42,211; DEBUG;[ cars.py:122 - cb_rx() ] Frame: {'id': 2029, 'dlc': 8, 'rtr': False, 'extd': False, 'data': [33, 84, 0, 0, 98, 60, 189, 224]}
2024-08-30 11:55:42,211; DEBUG;[ cars.py:159 - cb_rx() ] Mehrteilige Botschaft komplett: [2029, 98, 2, 189, 159, 1, 55, 84, 0, 0, 98, 60, 189, 224]
2024-08-30 11:55:42,212; DEBUG;[ cars.py:176 - cb_rx() ] Erwarteter SOC_Header: lenSOC: 3; expectSOC: [98, 2, 140]
2024-08-30 11:55:42,212; DEBUG;[ cars.py:180 - cb_rx() ] Erwarteter ODO-Header: lenODO: 3; expectODO: [98, 2, 189]
2024-08-30 11:55:42,212; DEBUG;[ cars.py:249 - calcODO() ] Daten für ODO-Berechnung: [2029, 98, 2, 189, 159, 1, 55, 84, 0, 0, 98, 60, 189, 224]
2024-08-30 11:55:42,212; INFO;[ cars.py:200 - cb_rx() ] Fahrzeug-Kilometerstand ist 79700
Code: Alles auswählen
2024-08-30 12:21:22,444; INFO;[ cars.py: 61 - cb_status() ] WiCAN-Status: others/wican/egolf/status b'{"status": "offline"}'
Der WiCAN war bereits lange vor der Abfahrt gesteckt und wurde nicht neu gesteckt.