From 20f893d73ed77927715612088ce9e698e29c0501 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Mon, 13 Jan 2025 14:03:18 +0100 Subject: [PATCH 1/3] Fix file permissions of images Signed-off-by: Michael Heimpold --- docs/source/_static/cb_logo.png | Bin .../_static/images/Order_Code_Charge_Control_C.svg | 0 docs/source/_static/images/Scame_200.23260BS.svg | 0 docs/source/_static/images/Scame_200.23261BP.svg | 0 docs/source/_static/images/Scame_200.23261BS.svg | 0 .../_static/images/ac_pwm_charger_ccc_setup.svg | 0 docs/source/_static/images/admin_panel_bsp_only.png | Bin docs/source/_static/images/attention_sign.png | Bin docs/source/_static/images/connectors.svg | 0 docs/source/_static/images/dimensions.svg | 0 docs/source/_static/images/kuester_02s.svg | 0 docs/source/_static/images/kuester_04s.svg | 0 docs/source/_static/images/leds.svg | 0 docs/source/_static/images/motor_logic.svg | 0 .../source/_static/images/putty_config_serial_1.png | Bin .../source/_static/images/putty_config_serial_2.png | Bin .../_static/images/putty_config_ssh_fallback_ip.png | Bin docs/source/_static/images/switches.svg | 0 docs/source/_static/images/tarragon_label.svg | 0 docs/source/_static/images/walther_werke.svg | 0 20 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 docs/source/_static/cb_logo.png mode change 100755 => 100644 docs/source/_static/images/Order_Code_Charge_Control_C.svg mode change 100755 => 100644 docs/source/_static/images/Scame_200.23260BS.svg mode change 100755 => 100644 docs/source/_static/images/Scame_200.23261BP.svg mode change 100755 => 100644 docs/source/_static/images/Scame_200.23261BS.svg mode change 100755 => 100644 docs/source/_static/images/ac_pwm_charger_ccc_setup.svg mode change 100755 => 100644 docs/source/_static/images/admin_panel_bsp_only.png mode change 100755 => 100644 docs/source/_static/images/attention_sign.png mode change 100755 => 100644 docs/source/_static/images/connectors.svg mode change 100755 => 100644 docs/source/_static/images/dimensions.svg mode change 100755 => 100644 docs/source/_static/images/kuester_02s.svg mode change 100755 => 100644 docs/source/_static/images/kuester_04s.svg mode change 100755 => 100644 docs/source/_static/images/leds.svg mode change 100755 => 100644 docs/source/_static/images/motor_logic.svg mode change 100755 => 100644 docs/source/_static/images/putty_config_serial_1.png mode change 100755 => 100644 docs/source/_static/images/putty_config_serial_2.png mode change 100755 => 100644 docs/source/_static/images/putty_config_ssh_fallback_ip.png mode change 100755 => 100644 docs/source/_static/images/switches.svg mode change 100755 => 100644 docs/source/_static/images/tarragon_label.svg mode change 100755 => 100644 docs/source/_static/images/walther_werke.svg diff --git a/docs/source/_static/cb_logo.png b/docs/source/_static/cb_logo.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/Order_Code_Charge_Control_C.svg b/docs/source/_static/images/Order_Code_Charge_Control_C.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/Scame_200.23260BS.svg b/docs/source/_static/images/Scame_200.23260BS.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/Scame_200.23261BP.svg b/docs/source/_static/images/Scame_200.23261BP.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/Scame_200.23261BS.svg b/docs/source/_static/images/Scame_200.23261BS.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/ac_pwm_charger_ccc_setup.svg b/docs/source/_static/images/ac_pwm_charger_ccc_setup.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/admin_panel_bsp_only.png b/docs/source/_static/images/admin_panel_bsp_only.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/attention_sign.png b/docs/source/_static/images/attention_sign.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/connectors.svg b/docs/source/_static/images/connectors.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/dimensions.svg b/docs/source/_static/images/dimensions.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/kuester_02s.svg b/docs/source/_static/images/kuester_02s.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/kuester_04s.svg b/docs/source/_static/images/kuester_04s.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/leds.svg b/docs/source/_static/images/leds.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/motor_logic.svg b/docs/source/_static/images/motor_logic.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/putty_config_serial_1.png b/docs/source/_static/images/putty_config_serial_1.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/putty_config_serial_2.png b/docs/source/_static/images/putty_config_serial_2.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/putty_config_ssh_fallback_ip.png b/docs/source/_static/images/putty_config_ssh_fallback_ip.png old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/switches.svg b/docs/source/_static/images/switches.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/tarragon_label.svg b/docs/source/_static/images/tarragon_label.svg old mode 100755 new mode 100644 diff --git a/docs/source/_static/images/walther_werke.svg b/docs/source/_static/images/walther_werke.svg old mode 100755 new mode 100644 From 771af5e9378ec8ac7f18a6c1c54446f135ab8554 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Tue, 14 Jan 2025 10:14:51 +0100 Subject: [PATCH 2/3] Add section regarding phase count switching support Signed-off-by: Michael Heimpold --- .../images/switch-3ph1ph-mutual.drawio.svg | 4 + ...itch-3ph1ph-serial-3p-contactor.drawio.svg | 4 + ...itch-3ph1ph-serial-4p-contactor.drawio.svg | 4 + docs/source/conf.py | 2 + docs/source/everest_charging_stack.rst | 114 ++++++++++++++++++ 5 files changed, 128 insertions(+) create mode 100644 docs/source/_static/images/switch-3ph1ph-mutual.drawio.svg create mode 100644 docs/source/_static/images/switch-3ph1ph-serial-3p-contactor.drawio.svg create mode 100644 docs/source/_static/images/switch-3ph1ph-serial-4p-contactor.drawio.svg diff --git a/docs/source/_static/images/switch-3ph1ph-mutual.drawio.svg b/docs/source/_static/images/switch-3ph1ph-mutual.drawio.svg new file mode 100644 index 0000000..f1e95cb --- /dev/null +++ b/docs/source/_static/images/switch-3ph1ph-mutual.drawio.svg @@ -0,0 +1,4 @@ + + + +
Charge Control C   
Charge Control C   
Secondary
Secondary
Lx
Lx
N
N
L'x
L'x
N'
N'
N
N
LY
LY
R1
R1
S1
S1
C
C
S2
S2
R2
R2
Socket / Cable
Socket / Cable
X14
X14
Sense
Detection
Logic
Sense...
Sense
Detection
Logic
Sense...
Primary
Primary
L1
L1
N
N
L2
L2
L3
L3
L'1
L'1
N'
N'
L'2
L'2
L'3
L'3
L'1
L'1
N'
N'
L'2
L'2
L'3
L'3
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/_static/images/switch-3ph1ph-serial-3p-contactor.drawio.svg b/docs/source/_static/images/switch-3ph1ph-serial-3p-contactor.drawio.svg new file mode 100644 index 0000000..d1b8c33 --- /dev/null +++ b/docs/source/_static/images/switch-3ph1ph-serial-3p-contactor.drawio.svg @@ -0,0 +1,4 @@ + + + +
Charge Control C   
Charge Control C   
N
N
LY
LY
R1
R1
S1
S1
C
C
S2
S2
R2
R2
Socket / Cable
Socket / Cable
X14
X14
Sense
Detection
Logic
Sense...
Sense
Detection
Logic
Sense...
Primary
Primary
N
N
L1
L1
L'1
L'1
N'
N'
L'2
L'2
L'3
L'3
Secondary
Secondary
L3
L3
L2
L2
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/_static/images/switch-3ph1ph-serial-4p-contactor.drawio.svg b/docs/source/_static/images/switch-3ph1ph-serial-4p-contactor.drawio.svg new file mode 100644 index 0000000..9846219 --- /dev/null +++ b/docs/source/_static/images/switch-3ph1ph-serial-4p-contactor.drawio.svg @@ -0,0 +1,4 @@ + + + +
Charge Control C   
Charge Control C   
Secondary
Secondary
N
N
LY
LY
R1
R1
S1
S1
C
C
S2
S2
R2
R2
Socket / Cable
Socket / Cable
X14
X14
Sense
Detection
Logic
Sense...
Sense
Detection
Logic
Sense...
Primary
Primary
L1
L1
N
N
L2
L2
L3
L3
L'1
L'1
N'
N'
L'2
L'2
L'3
L'3
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index bf6d169..867a581 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,6 +18,8 @@ templates_path = ['_templates'] exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +numfig = True + # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output diff --git a/docs/source/everest_charging_stack.rst b/docs/source/everest_charging_stack.rst index e87152c..b129466 100644 --- a/docs/source/everest_charging_stack.rst +++ b/docs/source/everest_charging_stack.rst @@ -121,6 +121,120 @@ This module implements and integrates OCPP 1.6 support within EVerest. This module implements and integrates OCPP 2.0.1 support within EVerest. +Energy Management: 3 phase / 1 phase switching +============================================== + +During AC charging, it is sometimes desired to charge with less than 4.2 kW (= 6 A * 230 V * 3 phases), +e.g. for solar charging setups. EVerest comes with built-in support for such setups and can dynamically +switch the count of phases provided to the car. It only requires a corresponding hardware setup and +support in the used hardware abstractation layer. + +The Charge Control C is equipped with two independent onboard relays. This makes this hardware platform +ideal for setting up such a phase count switching setup. +Also the BSP driver `CbTarragonDriver `_ +(aka HAL) for this platform gained support for this. + +A phase count switching setup always consists of two contactors which are controlled by the charging +stack more or less independently. There exists two different kinds of hardware setups which are +different in the physical wiring: + +* **serial** setup type: In this setup type both contactors are wired in 'series'. This means, that + the primary contactor always switches all phases (directly or indirectly) while the secondary contactor + only switches the phases 2 and 3. The advantage of such a connection is that all phases appear + simultaneously on the car side, not one after another. + To achieve this, the primary contactor either switches all phases or, in addition to the neutral line + and one phase, also switches the control path from the secondary contactor. + From the software perspective, the secondary contactor is switched on first, but switched off last. + In contrast to the primary contactor: this one is switched on last, but switched off first. + This ensures - in combination with the physical setup - a homogeneous view of the grid to + the car. Thus the charger appears to be a single-phase only or a three-phase charger. + +.. _switch-3ph1ph-serial-1: +.. figure:: _static/images/switch-3ph1ph-serial-4p-contactor.drawio.svg + :width: 80% + + Example wiring with two contactors 'in series', both with auxiliary contacts for feedback generation. + Both contactors must be rated for 400 V in this setup. + +.. _switch-3ph1ph-serial-2: +.. figure:: _static/images/switch-3ph1ph-serial-3p-contactor.drawio.svg + :width: 80% + + Another example wiring with two contactors 'in series'. Here too, both contactors must be + rated for 400 V. In this example, the primary contactor only needs to switch 3 wires. + +* **mutual** setup type: In this setup type, two different contactors are used 'in parallel'. However, + it is important that only one contactor can be active at a time, i.e. they exclude each other *mutually*. + This is ensured by the software implementation, but should already be enforced in hardware, + e.g. by using the auxiliary contacts as shown in :numref:`switch-3ph1ph-mutual`. + This setup allow to use a single 400 V-rated contactor in combination with a (cheaper) 230 V-rated one. + +.. _switch-3ph1ph-mutual: +.. figure:: _static/images/switch-3ph1ph-mutual.drawio.svg + :width: 80% + + Example wiring with two contactors in 'mutual' setup. The primary contactor must be + rated for 400 V, the secondary contactor can be rated for 230 V only. + +As mentioned, the **CbTarragonDriver** module is the relevant hardware abstraction layer for EVerest +for the Charge Control C platform. The module must know which wiring type is used in the charger +and offers the configuration parameter **switch_3ph1ph_wiring** for this which can take the following strings: + +* **none** (default): No phase-count switching is supported - only R1/S1 is used to switch on/off a single contactor. +* **serial**: Phase-count switching support is enabled using the serial wiring as described above: R1/S1 switches + the primary contactor, R2/S2 is attached to the secondary contactor. +* **mutual**: Phase-count switching support is enabled using the mutual wiring as described above. R1/S1 is wired to + the three-phase contactor, R2/S2 is wired to the single-phase contactor. + +Snippet of an EVerest configuration file which fits the configuration for :numref:`switch-3ph1ph-mutual`: + +.. code-block:: yaml + + ... + bsp: + module: CbTarragonDriver + config_module: + contactor_1_feedback_type: no + contactor_2_feedback_type: no + switch_3ph1ph_wiring: mutual + connector_type: IEC62196Type2Socket + ... + +.. note:: + Older chargebyte configurations shipped with a `CbTarragonDriver` module parameter `relay_2_name` set to value `none`. + This was part of an older approach and should not be used that way. Remove it when it is still present, + so that the default value is applied automatically. + +However, enabling support for phase-count switching in the BSP module is not sufficient. +The EVerest configuration must include a module of type 'EnergyManager' which is linked +to an 'EnergyNode', which in turn must be properly linked to the 'EvseManager' module. +This 'EnergyManger' has also a configuration switch **switch_3ph1ph_while_charging_mode** which controls the +phase-count switching in general: + +* **Never**: Do not use 1 phase / 3 phase switching even if supported by the BSP. +* **Oneway**: Only switch from 3 phase to 1 phase if power is not enough, but never switch back to 3 phase for a session. +* **Both**: Switch in both directions, i.e. from 3 phase to 1 phase and back to 3 phase if available power changes. + +The EnergyManager module has also additional configuration options to allow fine-tuning of the behavior, but +all ship with reasonable default values and thus are not explained in detail here. +A description of all these parameters can be found in the +`EnergyManager manifest `_. + +And also the 'EvseManager' module allows fine-tuning the switching process with two configuration parameters: + +* **switch_3ph1ph_delay_s**: This takes an integer and defines, how many seconds the charging stack waits between + the switching process. In combination with Charge Control C, this value should be at least 11 seconds since the + onboard relays are enforced to only switch on every 10 seconds, using this exact value or less generates a warning + but does not result in faster switching. +* **switch_3ph1ph_cp_state**: Allows to configure the CP state used during phase count switching. The default value + of 'X1' should work with all cars and thus it's recommended to leave it on this default value. + +The full description of all these parameters can be found in the +`EvseManager manifest `_. + +.. note:: + Phase count switching is only possible in basic charging mode. + Further reading =============== From 1c14be0f6b98dd9d67e7b5e7ea7e969b392e48f7 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Wed, 26 Feb 2025 13:32:03 +0100 Subject: [PATCH 3/3] troubleshooting: fix URL of OCPP 2.0.1 device model initialization documentation Signed-off-by: Michael Heimpold --- docs/source/troubleshooting.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst index 2d4cd78..6362dc7 100644 --- a/docs/source/troubleshooting.rst +++ b/docs/source/troubleshooting.rst @@ -105,7 +105,7 @@ The most important points are summarised here: - `standardized/SecurityCtrlr.json: SecurityCtrlrIdentity`: In "attributes" adapt the "value" key to configure the SecurityCtrlrIdentity. It is the Charging Station identity. For further information about the device model initialization, please refer to the - `libocpp documentation `_. + `libocpp documentation `_. I tried to compile chargebyte's Hardware EVerest Modules, but it fails to build. How can it fix this? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^