I built an ESP32-based Modbus RTU slave that emulates the ABB EV3 electricity meter. It feeds the Terra AC wallbox with live phase data pulled from Home Assistant (e.g., HomeWizard P1), so the charger’s Smart Charging / Dynamic Load Balancing works without a physical EV3—and without running a long RS-485 cable from the main panel to the garage.
What it does
- Presents the following EV3-compatible registers on Modbus RTU (slave ID
0x01by default):- Energy import/export:
0x5000..0x5003and0x5004..0x5007(U_QWORD, ×0.01 kWh) - Voltages L1/L2/L3:
0x5B00/02/04(U_DWORD, ×0.1 V) - Currents L1/L2/L3:
0x5B0C/0E/10(U_DWORD, ×0.01 A) - Active power Total/L1/L2/L3:
0x5B14/16/18/1A(S_DWORD, ×0.01 W) - Power factor Total/L1/L2/L3:
0x5B3A/3B/3C/3D(U_WORD, ×0.001)
- Energy import/export:
- Pulls values from Home Assistant entities (P1 import/export, per-phase voltage/current/power).
- Implements Modbus server on ESPHome with clean register lambdas and logging.
- Optional UART hex sniffer logs for bring-up/debug.
- Runs on Lolin32 Lite (ESP32), powered by the Terra AC 3.3 V JTAG header (no extra PSU).
