mirror of
https://github.com/uhi22/pyPLC.git
synced 2024-11-10 01:05:42 +00:00
docu: test results and release v0.7
This commit is contained in:
parent
7e587336b6
commit
a04069be89
8 changed files with 105982 additions and 26 deletions
|
@ -4,13 +4,7 @@
|
||||||
- In the ChargeParameterDiscoveryReq, some fields are not filled. This leads to abort on certain charger types.
|
- In the ChargeParameterDiscoveryReq, some fields are not filled. This leads to abort on certain charger types.
|
||||||
- Discussion in https://openinverter.org/forum/viewtopic.php?p=54696#p54696
|
- Discussion in https://openinverter.org/forum/viewtopic.php?p=54696#p54696
|
||||||
- Improvement in https://github.com/uhi22/OpenV2Gx/commit/4b5df391d56e15b45652605fa7ad8a7712e2acaf
|
- Improvement in https://github.com/uhi22/OpenV2Gx/commit/4b5df391d56e15b45652605fa7ad8a7712e2acaf
|
||||||
|
- To be re-tested with several chargers. No issue on Compleo, Alpi, ABB.
|
||||||
## Issue19: Wrong determination of MAC and IPv6
|
|
||||||
- On linux, the deprecated ifconfig is not a good choice. And, if multiple interfaces are present, the wrong address is fetched.
|
|
||||||
- Solution: Three parts
|
|
||||||
1. Use "ip addr" instead of "ifconfig" -> done
|
|
||||||
2. Filter for the correct interface -> done
|
|
||||||
3. Make the interface name configurable -> todo
|
|
||||||
|
|
||||||
## Issue18: On SuperCharger we ignore the session ID
|
## Issue18: On SuperCharger we ignore the session ID
|
||||||
- In the SessionSetupResponse, the SuperCharger V3 correctly provides a sessionID, e.g. "06ef0071".
|
- In the SessionSetupResponse, the SuperCharger V3 correctly provides a sessionID, e.g. "06ef0071".
|
||||||
|
@ -30,12 +24,6 @@ use a dynamic length instead of the fixed length LEN_OF_SESSION_ID (=8).
|
||||||
- WeldingDetectionRes says "failed" on alpitronics, and no response on ABBHPC and ABBTriple
|
- WeldingDetectionRes says "failed" on alpitronics, and no response on ABBHPC and ABBTriple
|
||||||
- version v0.4-7-g7cea8b5 (2022-12-21)
|
- version v0.4-7-g7cea8b5 (2022-12-21)
|
||||||
|
|
||||||
## Issue15: After end of PreCharging, the log says "re-initializing fsmPev"
|
|
||||||
- observed with v0.4 on the Compleo charger
|
|
||||||
- PreCharge target voltage is reached. The fsmPev sends a message
|
|
||||||
01fe800100000012809a022189cbf75b9625a9513022800a0800
|
|
||||||
and after one second the state machine seems to run into timeout.
|
|
||||||
- to be retested. Most likely fixed with with v0.4-7-g7cea8b5.
|
|
||||||
|
|
||||||
# Closed issues
|
# Closed issues
|
||||||
|
|
||||||
|
@ -44,6 +32,23 @@ and after one second the state machine seems to run into timeout.
|
||||||
- Discussion in https://openinverter.org/forum/viewtopic.php?p=54667#p54667
|
- Discussion in https://openinverter.org/forum/viewtopic.php?p=54667#p54667
|
||||||
- Fixed with https://github.com/uhi22/OpenV2Gx/commit/fc46c3ca802f08c57120a308f69fb4d1ce14f6b6 and https://github.com/uhi22/pyPLC/commit/9b39bff85a04071e5d92d613197422033f0c1d8d
|
- Fixed with https://github.com/uhi22/OpenV2Gx/commit/fc46c3ca802f08c57120a308f69fb4d1ce14f6b6 and https://github.com/uhi22/pyPLC/commit/9b39bff85a04071e5d92d613197422033f0c1d8d
|
||||||
|
|
||||||
|
## Issue19: Wrong determination of MAC and IPv6
|
||||||
|
- SOLVED in v0.7 (2023-04-19)
|
||||||
|
- On linux, the deprecated ifconfig is not a good choice. And, if multiple interfaces are present, the wrong address is fetched.
|
||||||
|
- Solution: Three parts
|
||||||
|
1. Use "ip addr" instead of "ifconfig" -> done
|
||||||
|
2. Filter for the correct interface -> done
|
||||||
|
3. Make the interface name configurable -> done
|
||||||
|
|
||||||
|
## Issue15: After end of PreCharging, the log says "re-initializing fsmPev"
|
||||||
|
- SOLVED
|
||||||
|
- observed with v0.4 on the Compleo charger
|
||||||
|
- PreCharge target voltage is reached. The fsmPev sends a message
|
||||||
|
01fe800100000012809a022189cbf75b9625a9513022800a0800
|
||||||
|
and after one second the state machine seems to run into timeout.
|
||||||
|
- same timeout issue observed on Compleo by johu with version 0.6+
|
||||||
|
- with v0.7 (2023-04-19) tested ok, see results/2023-04-19_compleo_pyPlc_lightbulb_failedBadRegulation.pcapng
|
||||||
|
|
||||||
## [Solved] Issue16: First CurrentDemandReq is rejected with FAILED_SequenceError and EVSE_Shutdown
|
## [Solved] Issue16: First CurrentDemandReq is rejected with FAILED_SequenceError and EVSE_Shutdown
|
||||||
- observed on Alpitronics HPC with version v0.4-6-g257e5af
|
- observed on Alpitronics HPC with version v0.4-6-g257e5af
|
||||||
- log 2022-12-20_alpi_currentDemandSequenceErrorShutdown.pcapng
|
- log 2022-12-20_alpi_currentDemandSequenceErrorShutdown.pcapng
|
||||||
|
|
|
@ -76,7 +76,7 @@ Test results of version v0.4-7-g7cea8b5 (2022-12-21)
|
||||||
|
|
||||||
Test site: e.g. https://www.goingelectric.de/stromtankstellen/Deutschland/Koesching/EDEKA-Ingolstaedter-Strasse-114/62619/
|
Test site: e.g. https://www.goingelectric.de/stromtankstellen/Deutschland/Koesching/EDEKA-Ingolstaedter-Strasse-114/62619/
|
||||||
|
|
||||||
Test results of version v0.4
|
Test results of version v0.7 (2023-04-19)
|
||||||
- [x] SLAC
|
- [x] SLAC
|
||||||
- [x] SDP
|
- [x] SDP
|
||||||
- [x] TCP connection
|
- [x] TCP connection
|
||||||
|
@ -88,8 +88,9 @@ Test results of version v0.4
|
||||||
- [x] DIN ContractAuthentication
|
- [x] DIN ContractAuthentication
|
||||||
- [x] DIN ChargeParameterDiscovery
|
- [x] DIN ChargeParameterDiscovery
|
||||||
- [x] DIN CableCheck (10s loop ongoing, then finished OK)
|
- [x] DIN CableCheck (10s loop ongoing, then finished OK)
|
||||||
- [x] DIN PreCharge ok, but at the end the state machine runs into timeout. Issue 15.
|
- [x] DIN PreCharge
|
||||||
- [ ] DIN PowerDelivery, CurrentDemand
|
- [x] DIN PowerDelivery
|
||||||
|
[x] DIN CurrentDemand: With no load and later light bulb connected, the charger has massive problems to regulate the voltage. It shoots over to 400V and later turns off completely, instead of regulating to the target 230V. Log: results/2023-04-19_compleo_pyPlc_lightbulb_failedBadRegulation.pcapng and 2023-04-19_compleo_pyPlc_lightbulb_failedBadRegulation.pcapng.decoded.txt
|
||||||
|
|
||||||
## Efacec QC45 Triple Charger
|
## Efacec QC45 Triple Charger
|
||||||
|
|
||||||
|
|
14
doc/todo.md
14
doc/todo.md
|
@ -1,18 +1,18 @@
|
||||||
# Todos
|
# Todos
|
||||||
|
|
||||||
- [x] Decode CableCheckRes."DC_EVSEStatus.EVSEStatusCode": dinDC_EVSEStatusCodeType as readable text
|
- [x] Decode CableCheckRes."DC_EVSEStatus.EVSEStatusCode": dinDC_EVSEStatusCodeType as readable text
|
||||||
- [ ] Decode CableCheckRes."DC_EVSEStatus.EVSEIsolationStatus": dinisolationLevelType as readable text
|
- [x] Decode CableCheckRes."DC_EVSEStatus.EVSEIsolationStatus": dinisolationLevelType as readable text
|
||||||
- [x] Encoder: PreChargeReq: is it possible to enable the units for EVTargetVoltage and EVTargetCurrent?
|
- [x] Encoder: PreChargeReq: is it possible to enable the units for EVTargetVoltage and EVTargetCurrent?
|
||||||
- [x] Encoder: CurrentDemandReq: is it possible to enable the units for EVTargetVoltage and EVTargetCurrent?
|
- [x] Encoder: CurrentDemandReq: is it possible to enable the units for EVTargetVoltage and EVTargetCurrent?
|
||||||
- [x] Find out, why Alpi reports CableCheckRes = Finished FAILED in v0.4
|
- [x] Find out, why Alpi reports CableCheckRes = Finished FAILED in v0.4
|
||||||
- [x] Find out, why Compleo ignores the PowerDeliveryReq START in v0.4
|
- [x] Find out, why Compleo ignores the PowerDeliveryReq START in v0.4
|
||||||
- [x] Add date/time into ExiLog
|
- [x] Add date/time into ExiLog
|
||||||
- [ ] PevMode: Add state transition in case of failed CableCheck
|
- [x] PevMode: Add state transition in case of failed CableCheck
|
||||||
- [x] PevMode: PreChargeReq: Fill EVRESSSOC, EVTargetVoltage, EVTargetCurrent
|
- [x] PevMode: PreChargeReq: Fill EVRESSSOC, EVTargetVoltage, EVTargetCurrent
|
||||||
- [x] PevMode: PowerDeliveryReq: Fill EVRESSSOC, Stop/Start
|
- [x] PevMode: PowerDeliveryReq: Fill EVRESSSOC, Stop/Start
|
||||||
- [x] PevMode: CurrentDemandReq: Fill EVRESSSOC, EVTargetCurrent, EVTargetVoltage
|
- [x] PevMode: CurrentDemandReq: Fill EVRESSSOC, EVTargetCurrent, EVTargetVoltage
|
||||||
- [ ] EvseMode: CurrentDemandRes: Fill EVSEPresentVoltage, EVSEPresentCurrent, EVSEMaximumVoltageLimit, ...LimitAchieved
|
- [x] EvseMode: CurrentDemandRes: Fill EVSEPresentVoltage, EVSEPresentCurrent, EVSEMaximumVoltageLimit, ...LimitAchieved
|
||||||
- [ ] EvseMode: Fill V2G messages as far as needed, to convince the car to accept it.
|
- [x] EvseMode: Fill V2G messages as far as needed, to convince the car to accept it.
|
||||||
- [x] PevMode: Fill V2G messages as far as needed, to convince the charger to accept it.
|
- [x] PevMode: Fill V2G messages as far as needed, to convince the charger to accept it.
|
||||||
- [x] PevMode: Find out the SLAC issue on Supercharger and Compleo.
|
- [x] PevMode: Find out the SLAC issue on Supercharger and Compleo.
|
||||||
- [x] PevMode: Connect the inlet voltage measurement
|
- [x] PevMode: Connect the inlet voltage measurement
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
- [x] add OLED display to the PEV controller
|
- [x] add OLED display to the PEV controller
|
||||||
- [ ] in addressManager, replace the print by addToTrace
|
- [ ] in addressManager, replace the print by addToTrace
|
||||||
- [ ] Resolve the todo-markers in the code
|
- [ ] Resolve the todo-markers in the code
|
||||||
- [ ] Still fixed addresses (MAC, IP) used somewhere?
|
- [ ] Still fixed addresses (MAC, IP?) used on windows, add auto-detection or configuration
|
||||||
- [ ] configurable interface name and simplify address determination (see https://openinverter.org/forum/viewtopic.php?p=54659#p54659)
|
- [x] configurable interface name and simplify address determination (see https://openinverter.org/forum/viewtopic.php?p=54659#p54659)
|
||||||
- [x] in the SessionSetupRequest we need to set the EVCCID with the MAC of the car. At the moment this is not implemented, need to update in the OpenV2Gx the function encodeSessionSetupRequest(), also the fsmPev.py, and provide the MAC as command line parameter from the python to the OpenV2Gx. (see https://openinverter.org/forum/viewtopic.php?p=54667#p54667)
|
- [x] in the SessionSetupRequest we need to set the EVCCID with the MAC of the car. At the moment this is not implemented, need to update in the OpenV2Gx the function encodeSessionSetupRequest(), also the fsmPev.py, and provide the MAC as command line parameter from the python to the OpenV2Gx. (see https://openinverter.org/forum/viewtopic.php?p=54667#p54667)
|
||||||
- [ ] (and much more)
|
- [ ] (and some more)
|
||||||
|
|
24
readme.md
24
readme.md
|
@ -11,6 +11,23 @@ In this project, we call this mode *ListenMode*.
|
||||||
|
|
||||||
## News / Change History / Functional Status
|
## News / Change History / Functional Status
|
||||||
|
|
||||||
|
### 2023-04-19 v0.7 Released
|
||||||
|
Main improvements between v0.6 and v0.7:
|
||||||
|
- configuration file
|
||||||
|
- redesign of the state machines incl introduction of connection manager. This leads to more clear and consistent state transitions.
|
||||||
|
- simulation mode only controlled by command line parameter instead of instable auto-detection
|
||||||
|
- more and more consistent data shown in the GUI in both, PevMode and EvseMode
|
||||||
|
- PevMode: use EVSEPresentVoltage as criteria for end-of-precharge
|
||||||
|
- EvseMode: Simulated PreCharge, using the target value demanded by car.
|
||||||
|
- Helper: pcapConverter for converting of pcap files into readable text with the decoded EXI messages
|
||||||
|
- PevMode: longer timeout for PowerDeliveryResponse
|
||||||
|
- PevMode: preparation to support BeagleBone GPIO
|
||||||
|
- PevMode: Logging state names instead of only state numbers
|
||||||
|
- Timestamp is logged
|
||||||
|
- EvseMode: use random NMK and set it in the modem
|
||||||
|
- Improved address resolution (MAC and IP)
|
||||||
|
- Added numbered checkpoints in docu and log
|
||||||
|
|
||||||
### 2023-04-16 EvseMode brings the Ioniq to close the contactors
|
### 2023-04-16 EvseMode brings the Ioniq to close the contactors
|
||||||
With simulated rising EVSEPresentVoltage in the PreChargeResponse, the Ioniq indeed closes the contactors, without
|
With simulated rising EVSEPresentVoltage in the PreChargeResponse, the Ioniq indeed closes the contactors, without
|
||||||
the need to feed physical voltage to the CCS DC inlet pins. This is surprising, because - at least for ISO -
|
the need to feed physical voltage to the CCS DC inlet pins. This is surprising, because - at least for ISO -
|
||||||
|
@ -312,9 +329,9 @@ min and max current. Now, the initialization phase of the charging session is fi
|
||||||
is, to adjust the chargers output voltage to match the cars battery voltage. Also a current limit (max 2A) is sent.
|
is, to adjust the chargers output voltage to match the cars battery voltage. Also a current limit (max 2A) is sent.
|
||||||
* Checkpoint575: The charger confirms with PreChargeResponse. This response contains the actual voltage on the charger.
|
* Checkpoint575: The charger confirms with PreChargeResponse. This response contains the actual voltage on the charger.
|
||||||
* Checkpoint580: The charger adjusts its output voltage according to the requested voltage.
|
* Checkpoint580: The charger adjusts its output voltage according to the requested voltage.
|
||||||
* Checkpoint581: The car measures the voltage on the inlet and on the battery.
|
* Checkpoint581: The car measures the voltage on the inlet and on the battery. Alternatively, the car does not measure the inlet voltage, and instead listens to the EVSEPresentVoltage which is reported by the charger.
|
||||||
* Checkpoint582: The above steps (PreChargeRequest, PreChargeResponse, measuring physical voltage) are repeating, while the
|
* Checkpoint582: The above steps (PreChargeRequest, PreChargeResponse, measuring voltage) are repeating, while the
|
||||||
physical voltage did not yet reach the target voltage.
|
present voltage did not yet reach the target voltage.
|
||||||
* Checkpoint590: If the difference is small enough (less than 20V according to [ref x] chapter 4.4.1.10), the car
|
* Checkpoint590: If the difference is small enough (less than 20V according to [ref x] chapter 4.4.1.10), the car
|
||||||
closes the power relay.
|
closes the power relay.
|
||||||
* Checkpoint600: The car sends PowerDelivery(Start)Request.
|
* Checkpoint600: The car sends PowerDelivery(Start)Request.
|
||||||
|
@ -360,6 +377,7 @@ See [todo.md](doc/todo.md) and [bug_analysis.md](doc/bug_analysis.md)
|
||||||
Good question. This depends on how strict the car is. This first hurdle is to convince the car, to close the relay. This is
|
Good question. This depends on how strict the car is. This first hurdle is to convince the car, to close the relay. This is
|
||||||
done after a successful PreCharge phase. And it depends on the implementation of the car, whether it needs physically correct
|
done after a successful PreCharge phase. And it depends on the implementation of the car, whether it needs physically correct
|
||||||
voltage on the inlet before closing the relay, or whether it relies on the pretended voltage in the PreChargeResponse message.
|
voltage on the inlet before closing the relay, or whether it relies on the pretended voltage in the PreChargeResponse message.
|
||||||
|
The Hyundai Ioniq 2016 closes the contactors by just a simulated charging session. Discussion in https://openinverter.org/forum/viewtopic.php?t=3551, pictures here: https://openinverter.org/forum/viewtopic.php?p=55656#p55656
|
||||||
The second hurdle is, that the car may make a plausibilization between the expected current flow (charging) and the actually
|
The second hurdle is, that the car may make a plausibilization between the expected current flow (charging) and the actually
|
||||||
measured current flow (discharging). The car may stop the complete process, if the deviation is too high or/and too long.
|
measured current flow (discharging). The car may stop the complete process, if the deviation is too high or/and too long.
|
||||||
|
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
BIN
results/2023-04-19_westparkAlpi_pyPlc_lightbulb_1fail_1ok.pcapng
Normal file
BIN
results/2023-04-19_westparkAlpi_pyPlc_lightbulb_1fail_1ok.pcapng
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue