erstmal ein ganz großes Danke für Deine Unterstützung, ich habe es mit meinen rudimentären Kenntnissen tatsächlich quasi auf Anhieb zum Laufen bekommen.
Nun kommen doch noch Rückmeldungen zum soc_helper itself.
Ich habe die Sleep-Schwelle auf 13,8V gestellt, da es einen aufgeweckten Zustand mit 13,5V gab, in der trotzdem keine Antworten kamen.
So scheint es nun ganz gut zu funktionieren.
In der 1. Abfrage kurz nach dem Aufwecken kommt ein ungültiger Wert für den Kilometerstand zurück, das ist mehrfach passiert:
Code: Alles auswählen
openwb@openWB2:~/soc_helper$ ./soc_helper.py
2024-08-22 19:57:15,430; CRITICAL;[ soc_helper.py:127 - <module>() ] Starte soc_helper2 Version 2024-07-18
2024-08-22 19:57:15,431; INFO;[ energylog.py: 14 - init() ] Öffne existierende Logdatei /home/openwb/soc_helper/energydata.csv.
2024-08-22 19:57:15,432; INFO;[ soc_helper.py:144 - <module>() ] Verbinde Callbackfunktionen der Ladepunkte:
2024-08-22 19:57:15,433; INFO;[ soc_helper.py:156 - <module>() ] Verbinde Callbackfunktionen der Fahrzeuge:
2024-08-22 19:57:15,435; INFO;[ soc_helper.py:112 - on_connect() ] Verbindung hergestellt zu openwb2 mit Resultat 0
2024-08-22 19:57:15,502; INFO;[ cars.py: 46 - cb_status() ] WiCAN-Status: others/wican/AUTO/status b'{"status": "offline"}'
2024-08-22 19:57:15,502; INFO;[ cars.py: 66 - cb_status() ] Fahrzeug AUTO ist <<offline>>
2024-08-22 19:58:29,549; INFO;[ cars.py: 46 - cb_status() ] WiCAN-Status: others/wican/AUTO/status b'{"status": "online"}'
2024-08-22 19:58:29,549; INFO;[ cars.py: 52 - cb_status() ] Fahrzeug AUTO ist online. Sende SOC- und ODO-Anforderung
2024-08-22 19:58:29,550; INFO;[ cars.py: 57 - cb_status() ] Sende SOC-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391163, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 2, 140, 170, 170, 170, 170] }] }
2024-08-22 19:58:29,550; INFO;[ cars.py: 63 - cb_status() ] Sende ODO-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391158, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 41, 90, 170, 170, 170, 170] }] }
2024-08-22 19:58:29,730; INFO;[ cars.py:168 - cb_rx() ] Fahrzeug-Kilometerstand ist 16777215
Bei den folgenden Abfragen ist es immer mal wieder passiert, dass nur der Kilometerstand als Antwort zurückkam, der SoC jedoch fehlte:
Code: Alles auswählen
openwb@openWB2:~/soc_helper$ ./soc_helper.py
2024-08-22 20:01:00,390; CRITICAL;[ soc_helper.py:127 - <module>() ] Starte soc_helper2 Version 2024-07-18
2024-08-22 20:01:00,391; INFO;[ energylog.py: 14 - init() ] Öffne existierende Logdatei /home/openwb/soc_helper/energydata.csv.
2024-08-22 20:01:00,393; INFO;[ soc_helper.py:144 - <module>() ] Verbinde Callbackfunktionen der Ladepunkte:
2024-08-22 20:01:00,393; INFO;[ soc_helper.py:156 - <module>() ] Verbinde Callbackfunktionen der Fahrzeuge:
2024-08-22 20:01:00,396; INFO;[ soc_helper.py:112 - on_connect() ] Verbindung hergestellt zu openwb2 mit Resultat 0
2024-08-22 20:01:00,496; INFO;[ cars.py: 46 - cb_status() ] WiCAN-Status: others/wican/AUTO/status b'{"status": "online"}'
2024-08-22 20:01:00,497; INFO;[ cars.py: 52 - cb_status() ] Fahrzeug AUTO ist online. Sende SOC- und ODO-Anforderung
2024-08-22 20:01:00,498; INFO;[ cars.py: 57 - cb_status() ] Sende SOC-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391163, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 2, 140, 170, 170, 170, 170] }] }
2024-08-22 20:01:00,498; INFO;[ cars.py: 63 - cb_status() ] Sende ODO-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391158, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 41, 90, 170, 170, 170, 170] }] }
2024-08-22 20:01:00,666; INFO;[ cars.py:168 - cb_rx() ] Fahrzeug-Kilometerstand ist 19290
Code: Alles auswählen
openwb@openWB2:~/soc_helper$ ./soc_helper.py
2024-08-22 20:01:42,788; CRITICAL;[ soc_helper.py:127 - <module>() ] Starte soc_helper2 Version 2024-07-18
2024-08-22 20:01:42,789; INFO;[ energylog.py: 14 - init() ] Öffne existierende Logdatei /home/openwb/soc_helper/energydata.csv.
2024-08-22 20:01:42,790; INFO;[ soc_helper.py:144 - <module>() ] Verbinde Callbackfunktionen der Ladepunkte:
2024-08-22 20:01:42,791; INFO;[ soc_helper.py:156 - <module>() ] Verbinde Callbackfunktionen der Fahrzeuge:
2024-08-22 20:01:42,794; INFO;[ soc_helper.py:112 - on_connect() ] Verbindung hergestellt zu openwb2 mit Resultat 0
2024-08-22 20:01:42,873; INFO;[ cars.py: 46 - cb_status() ] WiCAN-Status: others/wican/AUTO/status b'{"status": "online"}'
2024-08-22 20:01:42,873; INFO;[ cars.py: 52 - cb_status() ] Fahrzeug AUTO ist online. Sende SOC- und ODO-Anforderung
2024-08-22 20:01:42,874; INFO;[ cars.py: 57 - cb_status() ] Sende SOC-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391163, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 2, 140, 170, 170, 170, 170] }] }
2024-08-22 20:01:42,874; INFO;[ cars.py: 63 - cb_status() ] Sende ODO-Anforderung: { "bus": "0", "type": "tx", "frame": [{ "id": 402391158, "dlc": 8, "rtr": false, "extd": true, "data": [3, 34, 41, 90, 170, 170, 170, 170] }] }
2024-08-22 20:01:42,919; INFO;[ cars.py:160 - cb_rx() ] Fahrzeug-SOC ist 63
2024-08-22 20:01:42,920; INFO;[ cars.py:168 - cb_rx() ] Fahrzeug-Kilometerstand ist 19290
Dann fällt dem Dongle ggf. die Antwort leichter.
Dann habe ich noch nach dem Rest-Kilometerstand für den SoC geschaut.
Im Carscanner heißt der "geschätzteReichweite(Anzeige)".
Die Antwort auf die Abfrage im Carscanner lautet:
Code: Alles auswählen
{"bus":"0","type":"rx","ts":52885,"frame":[{"id":1914,"dlc":8,"rtr":false,"extd":false,"data":[16,10,98,42,182,0,239,0]}]}
Lässt sich die aus der Antwort irgendwie erraten?
Der manuelle SoC hat ein Feld für die Restreichweite, die manuell aber nicht gepflegt werden kann, man kann sie aber per MQTT schreiben und dann wird sie auch artig angezeigt. Stimmt dann zwar nur für den ausgelesenen Zeitpunkt, aber wäre doch ganz nett?
Bei mir wäre das z.B. auf dem Topic:
openWB/set/vehicle/1/get/range
Interessant wird das für mich allerdings erst, wenn ich die ODB2-Überwachung der Alarmanlage abgeschaltet bekomme.
Aber vielleicht ist das ja für den einen oder anderen Nutzer ggf. interessant?
Meine Alarmanlage werde ich, wie geschrieben, erstmal über ein manipuliertes ODB2-Verlängerungskabel austricksen, so dass der Dongle nur das Zündungsplus abbekommt. Der Dongle hängt mir sowieso etwas zu weit in den Fußraum hinein, so dass ein Verlängerungskabel eh dran wäre.
Dafür muss die Abfrage bei der Ankunft dann sicher funktionieren.
Kannst Du mir dafür helfen, wie ich die Abfrage mehrfach (am besten alle 10 Sekunden?) starten kann, damit der SoC sicher weggeschrieben wird?
Du hattest weiter oben dazu schonmal geschrieben, dass dafür einige Zeilen aus- und andere einkommentiert werden müssten.