Creasol DomBusEVSE is a fully tested and CE certified DIN rail module, designed for Domoticz, Home Assistant, OpenHAB, Node-RED, ioBroker, ... home automation systems, to charge electric vehicles using the standard SAE 1772 and IEC 62196-2 Mode3 (AC charge, up to 22kW power).
It works as stand-alone (with or without any domotic controller: in this case the charging current is controlled by the EVSE module) or in managed mode (the charging current is controlled by a domotic controller / automation, so the EVSE is put in a stupid mode).
It supports two different protocols:
- DomBus, an optimized protocol for Domoticz controller (using a python plugin), or with other home automation systems (Home Assistant, OpenHAB, ...) that supports MQTT AutoDiscovery, by using the DomBusGateway service (a python program running in background that convert DomBus data in MQTT and vice-versa).
- Modbus RTU, a standard protocol that can be used with almost any home automation systems
DomBus protocol is better, but needs a connection to the module by a USB/RS485 adapter or by a WiFi/LAN/RS485 module supporting virtual serial port.
Modbus protocol is good in case of using non-standard domotic systems, or when connecting by a WiFi/LAN/RS485 module supporting only ModbusTCP protocol.
Please consult the English version of this page to get the most up-to-date version.
How to make a home-made EV charging station / wallbox
To make a DIY wallbox / EV charging station the following items are needed:
- RCCB: a residual current protection, with 6mA DC current detector
- optionally, a power meter to monitor and account the electric vehicle charging energy, power, voltage and power factor.
- a contactor to enable/disable mains power
- a EVSE module that send a PWM signal to the On Board Charger (inside the vehicle) the max available power (current) to get load balancing avoiding overloads and permitting to set the maximum power that can be drawn from the electricity grid (0 to use only power from photovoltaic/renewable, or 25-50-75-100% of the available grid power)
- a connection between the EVSE module and a power / energy meter that measure the power exchaged with the electrical grid. If the energy meter measuring grid power already exists in your home automation system, you don't need to add another energy meter: just use a simple automation to send the actual power (every 6s or less) to the Grid Power virtual device of EVSE.
Making a wallbox is quite simple: mains power is connected to the RCCB (protection) + optional (but recommended) energy meter + contactor + EV cable. Care should be taken to avoid overheating on wirings and connections, that should be periodically checked!!
The EVSE module is connected to the control-pilot wire of the EV cable, monitors the presence of voltage (on contactor output) and enable/disable the contactor (relay). Also, it may communicate with the main grid power energy meter or, alternatively, with the domotic controller to get the current grid power from the existing energy meter.
Actually DomBusEVSE is able to read DDS238-2 ZN/S energy meter (single phase) and DTS238-4 ZN/S (three phase) to get the current grid power; if a single-phase or three-phases energy meter already exists and it's connected to a domotic controller (like Domoticz, Home Assistant, ...), it's possible to create a simple automation to send to DomBusEVSE, every 6 seconds or less, the current grid power (positive if imported, negative if exported).
The power value from the electricity grid is needed by DomBusEVSE to regulate the charging current preventing overloads/disconnections, and also to keep the max charging power set by the user: more info below.
Features
- Mode 3 charging, AC230V (single-phase, up to 7.36kW) or AC400V (three-phase, up to 22kW) or both (it can manage 2x 2P contactors, to activate single phase charging when low power is available, and switch to three-phase charging when the available power increases: this feature can be useful in Solar mode)
- Manages up to 4 Modbus energy meters DDS238-2 ZN/S (single phase, very accurate class-1 meters) or DTS238-4 ZN/S (three phase), one to measure the charging power/energy, one to measure the power/energy exchanged with the electricity grid. Can also be connected to another 2 energy meters to monitor other loads/circuits, if needed (heat pump, kitchen, ...). As energy meters are really accurate, it's possible to get accurate statistics and charts about the energy used to charge the electric vehicle and energy exchanged with the grid.
- Controls an external 2P or 4P contactor to enable or exclude mains power supply to the electric car, and fully check that contactor works as expected (alarm in case of concacts welded or power outage).
- 5 working modes, that can be configured by the domotic controller (Domoticz, Home Assistant, Node-RED, OpenHAB, ... or by Modbus), and also by a UP/DOWN buttons (on the module, but a UP/DOWN button can be also connected externally):
- OFF: EV charging disabled (led status: red)
- SOLAR: use only energy from the solar system, assuring that power from grid is less equal than 0 Watt (Grid Power < 0; led status: green).
- 25%: use both solar and grid energy, max 25% of the power availability (for example, with 6kW contract, use max 1500W from grid, + available power from solar) (Grid Power < 0.25*EVMAXPOWER; led status: yellow)
- 50%: use both solar and grid energy, max 50% of the power availability (for example, with 6kW contract, use max 3kW from grid) (Grid Power < 0.5*EVMAXPOWER; led status: yellow)
- 75%: use both solar and grid energy, max 75% of the power availability (for example, with 6kW contract, use max 4500W from grid) (Grid Power < 0.75*EVMAXPOWER; led status: yellow)
- 100%: use both solar and grid energy, max full power (for example, with 6kW contract, use max 6kW) (Grid Power < EVMAXPOWER; led status: yellow). In this mode it's also possible to set a consumption profile which includes two maximum power thresholds which are alternated for the duration of two configured times, to use the really max power from the grid. For example, in Italy with a 6kW contract it's possible to drain max 7.6kW for 90 minutes, than 6.6kW for 90 minutes.
- MANAGED: charging current set by the domotic controller (by a script, for example) (led status: blue).
- From SOLAR to 100% mode, the EVSE set the charging current based on the current power drained from the Grid (if the grid meter is directly connected to the EVSE). In case that a grid meter is already installed in the building, or in case of hybrid inverter with photovoltaic inverter + accumulator is installed, it's possible to avoid installing another meter and set a simple automation that pass the GridPower value to the EVSE, or pass the GridPower - BatteryPower to the EVSE: in the latter case, the EVSE in Solar mode will use only energy from photovoltaic, without discharging the static battery. For an even higher degree of customization, it's possible to set the EVSE in Managed mode: in this way the EVSE module becomes dummy (does not manage the charging current by itself, but needs an external automation that sets the charging current), permitting any type of charging method (for example the case of multiple optimized wallboxes connected together).
- EVMinVoltage: it's possible to configure this parameter to keep the charging voltage at a fixed value: for example, in single phase, setting EVMinVoltage=248V the EVSE will charge the vehicle at the minimum current needed to keep voltage at that value. This is very useful when vehicle battery is almost full and we want to avoid invert overvoltage protection (power derating or inverter OFF) caused by V>=253V (excess production, during sunny days in the weekend).
- STOP charging by pushing DOWN button for 1 second
- AUTOSTART function: if set to 1, when the vehicle is plugged again, the charging mode is automatically restored to the previous charging mode. For example, if in the last charging session the EVSE mode was SOLAR, every time the vehicle is plugged again the EVSE mode will be automatically set to SOLAR mode.
When AUTOSTART=2, EV Mode is set to Off when the vehicle is unplugged, and when plugged remains OFF: charging session can be initiated by setting EV Mode = SOLAR÷100% by UP button or WEB interface, useful feature when wallbox is placed in a common area and we want that only authorized people can charge.
If AUTOSTART=0, EV Mode does not change when vehicle is unplugged or plugged. - Possibility to limit charging power by setting EVMAXCURRENT device to a value less than cable limit (32A or 16A).
- the domotic controller (Domoticz, Home Assistant, OpenHAB, ...) can receive from DomBusEVSE module the following telemetries for real-time display and to show nice charts:
- charging power/energy, that is differentiated into the following two charts
- charging power/energy from solar (photovoltaic or other renewable source)
- charging power/energy from the electricity grid
- charging voltage and power factor (the latter is useful to detect the minimum power to get high efficiency from the on board charger)
- total power/energy from grid
- grid voltage, power factor and frequency - RGB led displaying current EV state:
EV unplugged/disconnected: 1 green flash (CP voltage = 12V)
EV plugged/connected: 2 green flashes (CP voltage = 9V)
EV plugged/connected and EVSE wants to start charging: 3 green flashes (CP voltage = PWM +/- 9V)
EV charging: blue led flashes 1 or more times, indicating the current power (1 blue flash => less than 1kW, 2 blue flashes => less than 2kW, ...) (CP voltage = PWM +/- 6V)
EV error: 1 red flash => On board charger requires external ventilation, 2 red flashes => no mains power supply detected by EVSE module (EV Supply input should be connected to 230V output from contactor), 3 red flashes => mains power supply detected when contactor is OFF: welded contact?
When a new EV mode is selected (from smartphone or using the UP/DOWN button), RGB led shows current mode for 1 second. - Low power consumption: 100mW in stand-by, 400mW while charging
- Terminal blocks to connect external Up/Down double-pushbutton, if needed, that works with the same function of the internal UP/DOWN button (setting EV Mode).
- Size: DIN-rail, 3 modules width, 53x89x65mm
- Connection: RS485 (DomBus or Modbus protocols), using common alarm cable (4x0.22mm² or 2x0.22mm²+2x0.5mm²); max connection length: 200m
Note: E/S buttons are not used.
How does an EVSE (wallbox) work?
Although this is a fully tested and CE-certified product, it may be used by technical engineers only for development or demostration. Creasol declines all responsibility for damage to things or people.
The EV cable has 2 or 4 wires for mains power supply (230V single-phase, 400V three-phase) that will be connected to a 2P or 4P contactor (relays) to assure that no power is applied when charging session is OFF, and the Control Pilot wire + PE wire (yellow/green) that are connected to the EVSE module: control pilot is protected by transient voltage suppression device.
Please note that PE wire must be connected to both building earth (zero potential), and DomBusEVSE ground terminal block.
A smart EVSE module:
- monitors the mains power supply through a energy/power meter
- monitors the charging power supply, through another energy/power meter
- monitors the control pilot to check the vehicle status (disconnected, connected, charging requested, ventilation requested, alarm)
- sends to the car a 1KHz PWM signal to specify the max available current for charging
- activates the mains power supply through a contactor
- records all measures to provide nice charts permitting to get statistics about electric car consumption
With Domoticz, Home Assistant and other opensource controllers, it's also possible to connect the vehicle cloud (for connected vehicles) to get other informations about battery state of charge, odometer, location, speed, ...
Charging session starts when
- vehicle is plugged,
- EVMode is Solar, 25%, 50%, 75% or 100% (Managed mode is not considered, now), and
- GridPower + EVSTARTPOWER < power set by EVMode: for example, setting Solar mode and EVSTARTPOWER=1200W, the charging session starts only if GridPower < -1200W (more than 1200W available from photovoltaic, wind, ...).
Charging session ends if
- EVMode is set to Off,
- GridPower > power set by EVMode for more than EVSTOPTIME seconds (and EVCurrent=6A that is the minimum value for charging current), or
- Vehicle stops charging (maybe because SoC reached the max level).
During charging, the EVCurrent value is updated regularly to keep GridPower to the value set by EVMode. If grid power meter is attached to the A2/B2 bus of DomBusEVSE, the grid power is read every 3 seconds. In case of using existing power meter connected to the home automation systems, it's recommended to update the grid power value every 5s or less. Please note that when power is exported to the grid (photovoltaic produces more than house usage), the GridPower value fed to the EVSE should be negative. It's good that power is measured and fed to the EVSE module every 5-6 seconds: if interval time is higher, please set the EVWAITTIME to the interval value + 1.
The On Board Charger in the car have 6 seconds of time to reduce its current consumption (Ampere) to the value set by the EVSE module.
DomBusEVSE works even without a grid power meter!
Most users already have a power meter measuring the energy exchange with the grid. Other have a hybrid solar inverter connected to both photovoltaic and accumulator, providing the power exchanged with the grid and with the battery. In these cases there is no need to add another grid power meter, but it's sufficient to create a simple automation to inform the EVSE how much power it's draining. Now we call:
Grid_Power_Meter = power (in Watt) from the electricity grid (negative in case of exported power to the grid)
Battery_Power_Meter = power (in Watt) from the accumulator (negative when battery is charging)
Grid Power = EVSE virtual device that should be updated by the automation to know the usage power
The automation must send to the EVSE module, every 6 seconds or less (better every 3-4 seconds) the sum Grid_Power_Meter + Battery_Power_Meter
Example1: photovoltaic producing with battery, EVSE in Solar mode (use only power from solar)
EVSE in Solar Mode, Off state (not charging), Inverter is charging the battery for 3000W (Battery_Power_Meter=-3000) and sending 1500W to the grid (Grid_Power_Meter=-1500). The automation have to send the number -4500 to the EVSE Grid Power device: if (-4500+EVSTARTPOWER < 0) and (EV battery SoC is not full), the charging process starts to consume all available 4500W (EVSE works to keep Grid Power = 0, in Solar mode).
After 6 seconds from start, it checks the Grid Power device (written by the automation): if Grid Power > 0 it reduces the charging current to get Grid Power <= 0, while if Grid Power < 0 and enough power is available to keep Grid Power <0, it increases the current (Ampere) and wait another 6s before updating the current again.
The 6s time (SAE1772 standard) corresponds with the max time that the OBC can use to modify the consumed power in accordance with what is established by the EVSE module, and can be changed using the parameter EVWAITTIME.
Example2: photovoltaic producing, no battery, EVSE in 100% mode (use all available energy from solar and grid to charge at the maximum speed)
In this case it's sufficient to have an automation that, when Grid_Power_meter changes, set the Grid Power virtual device with that value. Suppose that EVMAXPOWER is 11000 (contractual power = 11kW), EVMAXCURRENT is 32A (max 22kW in three phase).
If Grid_Power_Meter=-3500 (3500W of solar power exported to the grid), this value should be sent to Grid Power so, when EVMode changes from Off to 100% (or when EVMode=100% and the vehicle is plugged in), charging session starts with the power value
(EVMAXPOWER*100%) - Grid_Power_Meter = 11000 - (-3500) = 14500W
Of course, EVSE always check to not exceed EVMAXCURRENT, and the same do the On Board Charger (a resistor inside the EV Cable sets the maximum allowed current).
Example 3: charging using the absolute max power from the Grid
In Italy it's possible to drain always 10% more than the contractual power, and 27% more with duty cycle max 50% and maximum time of 90 minutes.
If the contractual power is 4500W. for example, it's possible to set EVMAXPOWER=4500*1.10=4950, EVMAXPOWER2=4500*1.27=5715, EVMAXTIME=900, EVMAXTIME2=900. In this case the EVSE, when EVMode=100%, will set the charging current to drain from the grid 5715W for 15 minutes (900s) and 4950W for 15 minutes, then 5715W for another 15 minutes, and so on.
Home-made single-phase smart wallbox 230V 7.3kW max (32A)
- EVSE module Creasol DomBusEVSE
- Type-B RCCB 2P 40A that is able to detect differential currents protecting the circuit even if currents are in DC.
- One energy meter DDS238-2 ZN/S (Modbus version) to keep account of energy fed to the vehicle, charging power, ... This is a very accurate class-1 energy meter. This energy meter is not mandatory: it is possible to omit it saving space and cost, but you would lose the statistics and charts on power and energy used for recharging the vehicle.
- One 2P 40A contactor to enable / remove mains power supply to the vehicle, disconnecting the vehicle if charging process is OFF.
- One energy meter DDS238-2 ZN/S connected to the electricity grid, to detect the import/export power and keep account of energy, voltage, power factor and frequency. This is also good to measure the power and energy consumed by the building, and have nice graphs showing these parameters over the years.
In case of home automation system with an already existing grid power meter, providing power value with max 10s interval, it's possible to use it by sending power value to DomBusEVSE by a simple automation that sets a virtual device Grid Power on DomBusEVSE when power changes; the power value should be negative in case that power is exported to the grid. - Type-2 cable or Type-1 cable to connect the vehicle, and of course some wires to connect all parts together. EV cable for single-phase recharge has 4 wires: Line, Neutral, PE and Control Pilot.
- If 13.6Vdc power supply is missing, a power supply unit 13.6V 15W is needed.
- DomBusEVSE GND terminal block must be connected to the PE (yellow/green wire)
DomBusEVSE module works in both stand-alone (without a domotic controller) and with a domotic controller like Home Assistant, Node-RED, Domoticz, ... In the latter case a USB/RS485 adapter is needed to interface the domotic controller with the DomBuseEVSE module. Please note that RS485 bus needs two terminating resistors (100 - 150 Ohm, connected between A and B terminal blocks) on the bus ends: if needed, it's possible to open the EVSE module (unscrewing the 4 screws) and shorting, by a solder iron, the 2 PCB pads named Rb. Modbus version of DomBusEVSE have terminating resistor already enabled.
Configuration
Make all wirings as indicated in the diagram above (click to get the PDF schematic with higher resolution), but connect only the energy meter that measures EV energy to the electric vehicle.
We suggest to put the wallbox modules in a indoor switchbox, possibly near the point where you park the vehicle, but also near the main switchbox or solar inverter, if exists, to minimize cable length: use 6mm² (or 10mm²) wires for the mains power supply. Then place a small 10x10cm box where the electric car is parked, indoor or outdoor, connected by 3x 6mm² (or 10mm²) wires (L,N,PE) plus a shielded 2x0.22mm² cable (standard cable for alarm systems): one wire is connected to the CP terminal block (control pilot), and other wire + shield are connected to PE/GND. The Type-2 or Type-1 cable (with only plug connector to the vehicle) will be connected to the small box.
In case that device is used as stand-alone, not attached to a domotic controller, energy meters must be already configured with Modbus address=2 (to EV) and address=3 (to Grid): they can be purchased from Creasol Store asking to get address already programmed.
Finally, DomBusEVSE has additional support for:
* SPST relay output RL2, with 250V 5A capability, that can be used for any purpose
* up to 4 energy meters, so 2 additionally energy meters (with address=4 and 5) can be connected to get power statistics for the heat pump, kitchen, ....
All parts should be available in the Creasol Store
Configuration with Domoticz
The next instructions are relative to Domoticz controller, a free open-source home automation controller that let a full control of the wallbox and is highly recommended: it works in cheap hardware like Rock PI-S or Raspberry PI4, as like Linux computers, windows and Mac.
It's recommended to install Domoticz Beta, which is up-to-date, Python Plugin Manager (not available in Windows), then it's possible to install the Creasol DomBus plugin from Python Plugin Manager: in this way it's possible to get notifications about future updates of the DomBus plugin, and auto upgrade.
DomBusEVSE can be connected to the domotic controller / PC by a USB/RS485 adapter: a device will be automatically added to Domoticz -> Switches panel, with factory-default address ffe3.1: click on Edit button and add to the Description ,HWADDR=0x0001 or other unique address, then click Save button: click on Dashboard and then on Switches again to see, in the bottom, the EVSE devices: EVSE On, RL2, EVSE Supply, EVSE Mode, EVSE State, EVSE Current. Click on EVSE Mode, and edit the EVMAXPOWER and EVMAXCURRENT parameters, then save.
Create a new room to group all EVSE device: Setup -> More Options -> Plans -> Room Plan, add a new room Wallbox or something else, and add all devices with address corresponding with the HWADDR set before. Then, click on Dashboard and select the Wallbox room.
As energy meters are factory programmed with Modbus address 1, first connect the energy meter between Type-B RCCB and contactor, and assign address = 2 in this way: select Domoticz -> Utility -> M1 Addr device, click on Edit button and write in the Description field ,ADDR=2 then save. Then connect the main energy meter (that measure the power exchanged with the grid) and assign address=3: select Domoticz -> Utility -> M1 Addr device, click on Edit button and write in the Description field ,ADDR=3 then save.
If a energy meter connected to the electricity grid is already available, it's sufficient to install a simple script that, when the power from grid changes, update the value of the "virtual device" Grid Power that is automatically created.
Configuring DomBusEVSE module to make a wallbox working with Home Assistant
Please check the Home Assistant page.
Configuring DomBusEVSE module to make a wallbox working with Node-RED
Please check the Node-RED page
Configuring DomBusEVSE module to make a wallbox working with OpenHAB
TODO
Configuring DomBusEVSE module to make a wallbox working with Loxone
TODO
Home-made three-phase smart wallbox 400V 11kW or 22kW max (32A)
- EVSE module Creasol DomBusEVSE
- Type-B RCCB 4P 25 or 40A that is able to detect differential currents protecting the circuit even if currents are in DC.
- One three phase energy meter DTS238-4 ZN/S (Modbus version) to keep account of EV energy fed to the vehicle, charging power, ... This is a very accurate class-1 energy meter. This energy meter is not mandatory: it is possible to omit it saving space and cost, but you would lose the statistics and charts on power and energy used for recharging the vehicle.
- One 4P 25A or 40A contactor to enable / remove 400V mains power supply to the vehicle, disconnecting the vehicle if charging process is OFF.
- One three-phase energy meter DTS238-4 ZN/S connected to the electricity grid, to detect the import/export power and keep account of energy, voltage, power factor and frequency. This is also good to measure the power and energy consumed by the building, and have nice graphs showing these parameters over the years. This energy meter is not needed in case that you're using the EVSE module in a home automation system with an already existing grid power meter, providing power value with max 10s interval: you may add a simple automation that set the virtual device Grid Power on DomBusEVSE when power changes; the power value should be negative in case that power is exported to the grid.
- Type-2 cable or Type-1 cable to connect the vehicle, and of course some wires to connect all parts together. EV cable for single-phase recharge has 4 wires: Line, Neutral, PE and Control Pilot.
- If 13.6Vdc power supply is missing, a power supply unit 13.6V 15W is needed.
- DomBusEVSE GND terminal block must be connected to the PE (yellow/green wire).
DomBusEVSE module works in both stand-alone (without a domotic controller) and with a domotic controller like Home Assistant, Node-RED, Domoticz, ... In this case a USB/RS485 adapter is needed to interface the domotic controller with the DomBuseEVSE module.
Configuring DomBusEVSE to work with three phase electric power
It's mandatory to set the parameter EVMETERTYPE=1 even if no energy meters are directly connected to the EVSE module: this is need to let the EVSE module know that three-phase power source is used, regulating the charging current accordingly.
Some parameters may be configured, like:
EVMETERTYPE=1 (use three-phase power source)
EVMAXPOWER=9000 (max power that can be drained from the grid)
EVSTARTPOWER=4200 (minimum available power to start charging session)
Please read the sections above to know how to manage the DomBusEVSE module with Domoticz, Home Assistant, NodeRED, Loxone, ...
Smart home-made wallbox that can switch between single-phase and three-phase charging
EV On-Board Chargers require a minimum current of 6A to start, corresponding to about 1000W in single-phase and 3600W in three-phase.
Who have a photovoltaic system on the roof and three-phase house normally wants to charge the vehicle using only solar power (operating in single-phase to charge the car down to 1000-1200W) and sometimes, when a fast charging session is required, charge at full power using energy from the electric grid (three-phase).
DomBusEVSE, since Rev. 02i7, is able to drive two 2P contactors:
- one 2P contactor (40A), driven by RL1 output, to connect L1 and N to the EV cable (single-phase)
- another 2P contactor (25A or 40A), to also connect L2 and L3 (three-phase) to the EV cable
In this case it's needed to configure RL2 device as EV3PSELECT (EVSE with DomBus firmware: adding ,EV3PSELECT to the RL2 device description; EVSE with Modbus firmware: setting register 513 with the value 254).
When RL2 is configured as EV3PSELECT, it's possible to
1. stop charging (EVMode=Off) and wait that EVState=Connected (not charging)
2. enable RL2 device
3. start charging (EVMode=Solar or 25% or more): EVSE module will activate both contactors simultaneously, enabling three-phase charging (quick charging, up to 22000W).
1. stop charging (EVMode=Off) and wait that EVState=Connected (not charging)
2. disable RL2 device
3. start charging (EVMode=Solar or 25% or more): EVSE module will activate only the contactor driven by EV On, enabling single-phase charging (slow charging, down to 1000W).
Application:
- in the early morning, when solar photovoltaic power is low, start charging the vehicle in single phase.
- later, when solar photovoltaic power increases over 4kW, stop single-phase charging session, set RL2, then start session again, using three-phase. RL1 and RL2 relays inside the EVSE module will be activated simultaneously to activate both contactors.
This operation can be done manually, or using an automation that stop charging session and restart it in three or single phase as needed. The EVSE do not switch from single and three phase, or vice-versa, automatically.
Watch the video below!
2x 2P connectors connection diagram
Using DomBusEVSE for long charging sessions just to keep voltage below 253V / 440V
Expecially during weekend, when photovoltaic produce a lot with poor energy consumption, it may happen that voltage raise above 253V / 440V causing inverter derating or shutdown (overvoltage protection).
To prevent this problem it's possible to charge the electric vehicle: in case that EV battery is almost full, instead of charging at full power it's possible to configure the EVMINVOLTAGE parameter to 248V or 430V (or similar values depending by your electricity system) and enable charging session in Solar mode: in this way the EVSE feeds the vehicle with the minimum current needed to keep voltage around 248/432V, avoiding inverter shutdown or derating.
Domoticz and DomBusEVSE
The following picture shows the integration in Domoticz of the EV (Kia Niro car, using the plugin available with Python Plugin Manager) and DomBusEVSE module; it shows a trip to Garda Lake, Northern of Italy, with a short charging session at a 11kW station, and then a long charging session using DomBusEVSE wallbox in SOLAR mode (only energy from photovoltic).
During the charging session at home, in SOLAR mode, both the washer machine and the oven were switched on: in this cases the EVSE module reduced the charging current to the minimum and after 90 seconds ended the session until available power returned above the EVSTARTPOWER parameter. As displayed in the charts below, the module assure that no power comes from the grid, in SOLAR mode.
Domoticz + Grafana dashboard
DomBusEVSE Modbus RTU capabilities (for the Modbus version)
At power-on, the module shows on red LED the current Modbus slave address (register address=8192) in decimal format, on green LED the serial baudrate (reg. 8193), and finally on red LED the serial parity (reg. 8194).
If a value is zero, a long flash is emitted.
For example, if reg(8192)=227, reg(8193)=0, reg(8194)=0, at power the following led flashes will be shown:
2 red flashes, pause, 2 red flashes, 7 red flashes (slave address= 0xe3 = 227 in decimal), pause, 1 long green flash (reg(8193)=0 => baudrate=115200bps), pause, 1 long red flash (reg(8194)=0 => parity=None).
Device will be operative only when address/baudrate/parity parameters have been shown: then module will accept commands by Modbus RTU, and periodically shows output status for all ports, from 1 to max port: green flash means that port status is Off, red flash means that port is On.
Default slave address: 227 (0xe3)
Addr | Name | Values | Description |
0 | RL EV EV On |
0=OFF, 1=ON (EV charging ON) | Read-only register showing the status of EV On relay output, connected to the contactor used to enable mains power supply to the vehicle. It is ON while charging. |
1 | RL2 | 0=OFF, 1=ON (relay ON), 2-65279=ON for the specified time (see below). |
Aux relay that can be used for EV cable lock, courtesy light, or other purpose Please note that, setting RL2 option as 254 (addr=513, value=254) it's possible to use RL2 to switch between single-phase and three-phase. Please check the dedicated section. In this case, reading RL2 returns the status of the relay. |
2 | In EV EV Supply |
0=OFF, 1=ON | Read only value associated to the 230Vac optoisolated input connected to the mains power supply after the contactor. It's used to check the presence of mains supply |
3 | EV Mode |
0=OFF |
EV charging mode: set the value of power that can be sinked from the Grid. For example, if EVMAXPOWER=6000W, setting EV Mode to 1 let the EVSE using no more than 0W from the electrical grid (only power from photovoltaic). Setting EV Mode to 3 let the EVSE using 3kW from the grid. |
4 | EV State | 1=Disconnected 2=Connected 3=Charging 4=Charging + ventilation requested by the car 5=Vehicle error 6=Power outage error (no mains power supply available: check RCBO/RCCB) 7=Welded contactor error (mains power supply is detected even if contactor is OFF) |
Read only: shows the electric vehicle status. |
5 | EV Current | 0=OFF 6-32: charging current in Ampere |
Charging current in Ampere. When EV mode is set in Managed mode, this value can be set by the home automation controller (by a automation) to change the EV charging power. |
6 | EV Power | 0=0W , 6420=6420W | Read only: current charging power in Watt (EV Solar + EV Grid) |
7 | EV Solar | 0=0W, 3100=3100W | Read only: current charging power from renewable source |
8 | EV Grid | 0=0W, 3320=3320W | Read only: current charging power from the electrical grid |
9 | EV Voltage | 232=232V | Read only: current charging voltage |
10 | EV PF | 0=0 910=0.91 1000=1 |
Read only: current charging power factor (the best value is 1000, corresponding to a Power Factor=1 (no reactive power, no harmonics) |
11 | Grid power | 0=0W 3320=3320W 65535=-1W (negative => 1W to the grid) 65336=-200W (negative => 200W to the grid) |
Read/Write: current power from the electrical grid. If negative, the power flows from the building to the grid. Negative value when > 32768: in this case negativePower=value-65536 Can be written by the home automation system in case that an energy meter already exists in the building, so it's not needed to add an extra energy meter connected to the EVSE module. To get a stable charging, the current power from grid must be sourced to the EVSE module every 6 seconds or less. |
8192 | Slave Address | 1-247 | Permits to change the slave address of the module, so it's possible to add other modules to the same bus. Write-only |
8193 | Serial bitrate | 0=115200bps, 1=57600, 2=38400, 3=19200, 4=9600, 5=4800, 6=2400, 7=1200bps | Serial speed, default 115200 bps 8,n,1. Write-only |
8194 | Serial parity | 0=None, 1=Even, 2=Odd | Serial parity, default none (115200 bps 8,n,1). Write-only |
8198 | Revision, major | Read only | Get firmware version, major number. For example "02" means that revision is "02XX" where XX defined by parameter 8199 |
8199 | Revision, minor | Read only | Get firmware version, minor number. For example "h1" means that revision is "XXh1" where XX defined by parameter 8198 |
9001 | EVMAXCURRENT | Range: 6-36 A, default 16A. Max current in Ampere (depends by EV cable) |
Maximum current [A], limited by the EV cable and electric system. Normally 16 or 32A, def. 16A) |
9002 | EVMAXPOWER | Range: 1000-25000 W, default 3300W. 3300=3.3kW, 6000=6kW, 16000=16kW |
Maximum power [W] that can be sinked from the grid (for example 6000W, def. 3300W) |
9003 | EVSTARTPOWER | Range: 800-25000 W, default 1200W. 1600=start charging if at least 1600W are available |
Minimum available power [W] to start charging process (for example 1000W, def. 1200W) |
9004 | EVSTOPTIME | Range: 5-600 s, default 90s. 90=stop charging after 90s if available power is always below the power set by EV Mode |
Time [S] after which the charging process is terminated in case the available power is lower than the power set by EV Mode |
9005 | EVAUTOSTART | Range: 0-1, default 1. 0=autostart OFF => if EV Mode was OFF, charging does not start 1=autostart ON => if EV Mode was OFF, charging start using the EV Mode used in the last charging process |
Enable or disable the automatic charging when the vehicle is connected, and previous state was OFF |
9006 | EVMAXPOWER2 | Range: 0-25000 W, default 0. 0=function disabled. 7600=7600W max power from grid |
Absolute maximum power from grid (see below) |
9007 | EVMAXPOWERTIME | Range: 0-43200 s, default 0. 0=function disabled. 900=900s (15m) |
Max time [S] the charging should work at EVMAXPOWER before switching to EVMAXPOWER2 (see below) |
9008 | EVMAXPOWERTIME2 | Range: 0-43200 s, default 0. 0=function disabled. 870=870s (14m30s) |
Max time [S] the charging should work at EVMAXPOWER2 before switching to EVMAXPOWER (see below) |
9009 | EVWAITTIME | Range: 3-60 s, default 6s. When current value (ampere) has changed, wait for this amount of time before changing it again. |
Time [S] to wait before changing the current value again, to let the OBC (On Board Charger) adjust the charging current. SAEJ1772 states that OBC should adjust the current within 6 seconds. |
9010 | EVMETERTYPE | 0=DDS238 ZN/S (single phase), 1=DTS238 ZN/S (three-phase) | Set the type of energy meter used. If no energy meter is used (energy meters directly controlled by the domotic system), set this parameter to 1 in case of three-phase power supply |
9011 | EVMINVOLTAGE | Range: 0÷500V, default 207V | Set the minimum voltage to get during charging. Reduce charging current if voltage drops below this value. Useful to get long charging sessions just to prevent inverter derating due to overvoltage (253V or 440V) |
It's possible to activate one or more outputs for a certain amount of time (monostable/timer output) as indicated in the table. The parameter corresponding to the needed time can be computed using the following rules:
From 0 to 60s => 31.25ms resolution 2=62.5ms, 3=93.75ms, ... 1920=60s => value=time_in_milliseconds/31.5
From 1m to 1h with 1s resolution 1921=61s, 3540+1920=5460=1h => value=(time_in_seconds-60)+1920
From 1h to 1d with 1m resolution 5461=1h+1m, 1380+5460=6840=24h => value=(time_in_minutes-60)+5460
From 1d to 1500 days with 1h resolution 6841=25h, 6842=26h, and so on => value=(time_in_hours-24)+6840
The following tables show some Modbus commands examples.
Slave Addr | Func. Code | Reg.Addr | Reg.Value | Frame | Description |
227 | 06 | 8192 | 1 | [51][06][20][00][00][01][xx][xx] | Change slave address from 227 (0xe3) to 1 |
01 | 06 | 8193 | 4 | [01][06][20][01][00][04][D2][09] | Set serial speed to 9600bps mbpoll -v -b115200 -Pnone -mrtu -a1 -0 -1 -r8193 /dev/ttyUSB0 4 |
01 | 06 | 8194 | 1 | [01][06][20][02][00][01][E2][0A] | Set even parity |
49 | 10 | 8192 | 1,4,1 | [31][10][20][00][00][03][06][00][01][00][04][00][01][B1][71] | With a single command, set slave address to 1, serial speed to 9600bps, even parity. Original modules address was 49 (0x31) in this example. |
01 | 06 | 0 | 65280 | [01][06][00][00][FF][00][C8][3A] | Activate RL1 output forever (65280=0xff00) |
01 | 06 | 1 | 960 | [01][06][00][01][03][C0][D8][AA] | Activate RL2 for 960/32=30s |
01 | 06 | 255 | 0 | [01][06][00][FF][00][00][B9][FA] | Disable all outputs (Reg.Addr=255) |
01 | 10 | 0 | 32,0,0,65280 | [31][10][00][00][00][04][08][00][20][00][00][00][00][FF][00][E6][5C] | Set RL1 On for 1s (32), RL2 Off, RL3 Off, RL4 On - Max 10 registers can be set in one command |
01 | 03 | 255 | 1 | [01][03][00][FF][00][01][B4][3A] | Read a 16bit value with ports status. For example if returned value is 0xd1 (0b11010001), output status is: RL8=On, RL7=On, RL6=Off, RL5=On, RL4=Off, RL3=Off, RL2=Off, RL1=On |
01 | 03 | 8198 | 2 | [01][03][20][06][00][02][2F][CA] | Read 4 bytes within module version. For example, if returned value is <30><32><68><31> (in hex format), the corresponding ASCII value is "02h1" (Firmware 02h1) |
01 | 0F | 0 | 8,1,0xd1 | [01][0F][00][00][00][08][01][D1][3E][C9] | Set coil status to 0xd1 (0b11010001), activating RL8, RL7, RL5, RL1 and disabling other relays |
01 | 01 | 0 | 8 | [01][01][00][00][00][08][3D][CC] | Read coil status. If returned value is 0xd1 (0b11010001), it means that RL8, RL7, RL5 and RL1 are On |
Modbus protocol can be tested easily using a modbus program, like mbpoll for Linux:
mbpoll -v -m rtu -0 -1 -a1 -b115200 -Pnone -r 0 /dev/ttyUSB0 32 0 64 128 0 0 0 65280
to activate RL1 for 1s, R3 for 2s, RL4 for 4s and RL8 forever.
mbpoll -v -m rtu -0 -1 -a1 -b115200 -Pnone -r 255 -c 1 /dev/ttyUSB0
to read all port states.
DomBusEVSE and DomBusGateway software, to work with HomeAssistant, OpenHAB and other systems supporting MQTT-AutoDiscovery
For Home Assistant, OpenHAB and other systems supporting MQTT AutoDiscovery, it's possible to use DomBusEVSE equipped with DomBus firmware, with DomBusGateway python software that acts as a DomBus2MQTT-AD gateway. Please check DomBusGateway GitHub page.
Alternatively, it's possible to use the Modbus firmware wtih native Modbus integration. More information in the page specific for Home Assistant.
DomBusEVSE wallbox in Managed Mode
When DomBusEVSE module is configured in managed mode, the domotic controller is responsible to set the charging current as preferred. Obviously, all protections regarding max current, min current and any alarms from the car are correctly managed by the EVSE module. This operational mode is useful only in certain cases, where many wallboxes are used and charging current should be fully controlled by the building automation system. Normally other operation modes (Solar, 25%÷100%) should be used!
Click to see a video of DomBusEVSE working in managed mode, controller by a Domoticz script
To start a charging session in "Managed" mode, EVMode parameter should be set to MANAGED (6) and EVCurrent should be set to 6 (Ampere) or more: if EV is plugged, the Led will flash green 3 times (PWM signal sent to the vehicle) and when the vehicle accept charging, contactor will be activated and Led start flashing blue N times (N indicating the charging power in kW-1, for example N=1 means that charging power is less than 1kW, N=2 if charging power is between 1 and 2kW, ...). If the vehicle battery is already full, the EVSE continues flashing green 3 times for 16 seconds (sending PWM signal to the car to start charging), then stops sending PWM signal for 16 seconds (Led flashes green 2 times), then it restarts again sending the PWM signal again for 16 seconds and so on. As the battery is full, the vehicle will not request charging, so EV State stays in "Connected" status.
Charging electric car when a stationary battery is available
In case that a stationary accumulator is installed in the building, two cases are possible:
1. the DomBusEVSE grid energy meter is installed before the stationary accumulator/inverter sensor (mains power supply -> DomBusEVSE energy meter -> battery sensor)
2. the DomBusEVSE grid energy meter is installed after the stationary accumulator/inverter sensor (mains power supply -> battery sensor -> DomBusEVSE energy meter)
To explain these two cases, let assume that photovoltaic is producing 3kW, house is consuming 1kW, max power from battery is 5kW, max power from grid is 6kW
EVSE Mode | OFF | SOLAR | 25% | 50% | 75% | 100% |
Case #1 charging power (EVSE meter, then battery meter) |
0 | 3-1=2kW | 3-1+1.5=3.5kW | 3-1+3=5kW | 3-1+4.5=6.5kW | 3-1+6=8kW |
Case #2 charging power (battery meter, then EVSE meter) |
0 | 3-1+5=7kW | 3-1+5+1.5=8.5kW | 3-1+5+3=10kW | 3-1+5+4.5=11.5kW | 3-1+5+6=13kW |
Obviously, a parameter set the max current supported by the cable, that usually is 32A, so the charging power is limited to 7-8kW in single phase.
Instructions
First activation and Warnings
- Assure that hardware is assemblied correctly, wires size are chosen properly and connections are well done: please note power dissipation depends by I² and 32A is a huge current for a long lasting charging session (several hours)!
- Set the EVMAXCURRENT parameter to 16 or 32 Ampere, depending by the cable used to connect the vehicle
- Set the EVMAXPOWER parameter to the max available power from the electrical grid (3000, 6000, 6600, ...)
- set the EVMETERTYPE = 1 in case of threephase
- Other parameters can be set later, if needed.
- Follow the instructions below to start a charging session: the first time that charging session is started using full available power, please terminate the session after 5-10 minutes to check the temperature on all connections and wires!
Start and stop charging sessions
- Plug the type-2 connector to the vehicle: the DomBusEVSE LED starts flashing green for two times (vehicle plugged) or tree times (vehicle plugged, sending available current value to initiate charging session)
- Using the Up/Down button or domotic controller, please set EVMode to Solar, 25%, 50%, 75% or 100%: if EV battery level is low, charging starts and blue LED on DomBusEVSE will flash N times indicating the current charging power in kW; for example, if blue led flashes 5 times, charging current now is between 4 and 5kW.
- To stop charging push the Down button for 1 second.
- If the parameter EVAUTOSTART = 1, next time that the vehicle is plugged, the charging session will start automatically using the same EVMode used in the last charging session. If EVAUTOSTART = 2, everytime the vehicle is unplugged, EVMode go to Off, and when vehicle is plugged it remains to the same value (useful when wallbox is placed in a common area, and charging must be initiated by a command on the smartphone, WebUI or using the UP button).
Solar inverter, V>=253V in the Summer and power limiting/disconnecting
When the solar inverter is feeding a high power (current) to the electric grid, the voltage raises to a high value. Solar inverters are usually programmed to disconnect or limit their output power to avoid output voltage greater than 253V (230V+10%) or 440V (400V+10%).
To prevent this problem, when a vehicle is at home, just charge it; if the car SoC is almost full, to have a longer charging session, set DomBusEVSE in Solar mode (use only energy from solar inverter) and set EVMAXCURRENT to a low value (in the range 6-32A, for example 12A) to keep mains voltage below 253V/440V.
Alternatively, set EVMINVOLTAGE to 248V or 432V and enable Solar charging: in this case DomBusEVSE module will feed a low current to the vehicle just to keep the voltage at the selected value.
The result is a longer charging session, to cover the central hours of the day, useful when EV battery level is already high, preventing inverter derating or shutdown (wasting energy).