Connecting the ABL eMH1 EV charger as ESPHome Component


I’ve created a ESPHome component that can communicate via Modbus-ASCII to the ABL eMH1 Charger.

To use this, you will need a generic ESP32 and a Serial to RS485 converter. You can use a premade shield or a single chip and some resistors.

The code for this solution can be found here: GitHub - jrv/esphome-abl-emh1: Esphome component for communication with ABL Wallbox eMH1

Release 1.0:

  • shows the current on three phases
  • shows the status of the charger (waiting for EV, permission to charge, charging, output disabled)
  • allows you to change the max current while charging, car will adapt charge current
  • allows you to start and stop charging

I’m currently working on:

  • detecting if a 1-phase or 3-phase car is connected, to adapt solar charging based on that.
  • calculate total energy used by the charger

Please post to this topic if you have suggestions or questions about setting this up for yourself.

1 Like

Maybe i found another bug. I wonder if the esp reboots, the outlet goes to disable.
Now i found your change in history to prevent this? Is this correct with 0x00?

I’ve tested with reset button. My Outlet is on and after the reset it is off.

I’ve updated abl-emh1.yaml to always restore the outlet in the state read from the charger.

This is how my test installation looks. It fits inside the eMH1.

Here is mine test installation on the workbench, also with an extra wallbox for testing :slight_smile:

I used a Wemos S2 Mini with a TTL to RS485 converter (both versions are working with 5V). Bought all from Aliexpress.

The ESP32 works on 3v3, there is a voltage regulator on the Wemos S2 mini that converts the incoming 5V from USB to 3v3. Because of that, the GPIO pins will supply a maximum of 3v3 too, but that should be enough for most 5V logic too. Also, it seems that it’s safe to connect 5V digital outputs to GPIO pins.
Did you connect the RS485 converter to the 3v3 or to VBUS? I would like to know if this converter also works if the RS485 chip gets powered by 3v3.

My finial Version for installation in the electricity sub-distribution before the wallbox.
Meanwell 5V Powersupply and 3D printed Din Rail case for the ESP32 and TTL/RS485 converter.

5V is connected to VBUS on the ESP and also to the VCC of TTL/RS485

That looks nice! Did you design the 3D printed DIN rail case yourself?

no → D1 Mini ESP32 DIN Rail Case with RS485 by AS_Motion_Lab - Thingiverse

But i think i must design one by my one. Because the S2 Mini won’t fit. You must brake away something and have to use hot glue. But for the first try it is ok.

There is another bug. I am testing with a newer 11kW version without ct clamps. I only simulate charging without load and the current is shown up with 100A?

Or will you support only eMH1 version with ct clamps?

I see the 100A setting for a short second when switching from “Ev has the permission to charge” to “EV is charging”. It’s the actual readout of the values, but I guess it’s ABL’s way of saying “undefined”. Afterwards, when the car physically connects to the L1-L3 pins, the readout changes to 0 and then up to the charge level.

I will see if I can get rid of this “undefined” value in between.

I updated the code to only show the current when the status is charging. I don’t know if/how the 11kW version without ct clamps reads the current, if it doesn’t read it at all, it will obviously not give a meaningful result while charging.

It might still be able to limit the current, because limiting current is done by sending the “available current” to the vehicle, it’s not actually limited in the charger.

I wonder about this message :frowning:

I traced the rs485 signal and it took only ~15ms?

My actual Project status with PV control. Works very well :slight_smile:

Hello MagicBugsBunny, how do you have fix that issue?

don’tknow if this is a issue, its only a warning and all is working fine

Do you have a overview how the wiring is? A picture on github shows a pretty complex scheme, what I see in the pictures above looks pretty straightforward.

Inside my Abl emh1 I have a rj12 connector. Is there a pinout available for this connector?

I found the answers to my own question:

I have a MAX485 TTL convertor and wiring needs to be:
ESP32 3V3 → MAX485 VCC
ESP32 GPIO16 → MAX485 RO
ESP32 GPIO17 → MAX485 DI
ESP32 GPIO5 → MAX485 DE and RE (solder them together)

Pinout for RJ12 and other connector options:

Hopefully this solution can help other people.
@jrv maybe you can put the wiring scheme in the README of github for future users