The Trydan charger integration incorrectly uses the Trydan's phase current measurement (IntensityMeasure_L1) as the EV charging current.
My Trydan V2C is a single-phase installation and is configured with a Shelly Pro 3EM as its external energy meter. The Shelly Pro 3EM has three current clamps in single phase profile:
The Trydan is configured to receive the Shelly measurements via MQTT. I do NOT have the proprietary current clamp connected to the Trydan.
The Trydan /RealTimeData endpoint exposes IntensityMeasure_L1, IntensityMeasure_L2 and IntensityMeasure_L3.
The 11.09 A value is the current measured on the grid/house phase, not the EV charging current.
Below is an excerpt from the EVCC trace log while the vehicle is charging:
[trydan] TRACE 2026/08/25 08:34:56 {"ID":"XXXXXX","FirmwareVersion":"2.5.0","ChargeState":2,"ChargeMode":0,"ReadyState":0,"ChargePower":1610.00,"VoltageInstallation":230,"ChargeEnergy":0.01,"SlaveError":0,"ChargeTime":21,"GridPower":347.00,"HousePower":457.00,"FVPower":110.00,"BatteryPower":0.00,"Paused":0,"Locked":0,"Timer":0,"Intensity":7,"IntensityMeasure_L1":11.09,"IntensityMeasure_L2":0.00,"IntensityMeasure_L3":0.00,"VoltageMeasure_L1":225.44,"VoltageMeasure_L2":0.00,"VoltageMeasure_L3":0.00,"Dynamic":1,"MinIntensity":6,"MaxIntensity":7,"PauseDynamic":0,"LightLED":45,"LogoLED":1,"DynamicPowerMode":0,"ContractedPower":9000,"SSID":"toto","IP":"192.168.0.45","SignalStatus":3}
[trydan] TRACE 2026/08/25 08:35:07 {"ID":"XXXXXX","FirmwareVersion":"2.5.0","ChargeState":2,"ChargeMode":0,"ReadyState":0,"ChargePower":1610.00,"VoltageInstallation":230,"ChargeEnergy":0.01,"SlaveError":0,"ChargeTime":31,"GridPower":851.00,"HousePower":967.00,"FVPower":116.00,"BatteryPower":0.00,"Paused":0,"Locked":0,"Timer":0,"Intensity":7,"IntensityMeasure_L1":11.09,"IntensityMeasure_L2":0.00,"IntensityMeasure_L3":0.00,"VoltageMeasure_L1":226.15,"VoltageMeasure_L2":0.00,"VoltageMeasure_L3":0.00,"Dynamic":1,"MinIntensity":6,"MaxIntensity":7,"PauseDynamic":0,"LightLED":45,"LogoLED":1,"DynamicPowerMode":0,"ContractedPower":9000,"SSID":"toto","IP":"192.168.0.45","SignalStatus":3}
[trydan] TRACE 2026/08/25 08:35:16 {"ID":"XXXXXX","FirmwareVersion":"2.5.0","ChargeState":2,"ChargeMode":0,"ReadyState":0,"ChargePower":1610.00,"VoltageInstallation":230,"ChargeEnergy":0.02,"SlaveError":0,"GridPower":-68.00,"HousePower":48.00,"FVPower":116.00,"BatteryPower":0.00,"Paused":0,"Locked":0,"Timer":0,"Intensity":7,"IntensityMeasure_L1":11.08,"IntensityMeasure_L2":0.00,"IntensityMeasure_L3":0.00,"VoltageMeasure_L1":226.00,"VoltageMeasure_L2":0.00,"VoltageMeasure_L3":0.00,"Dynamic":1,"MinIntensity":6,"MaxIntensity":7,"PauseDynamic":0,"LightLED":45,"LogoLED":1,"DynamicPowerMode":0,"ContractedPower":9000,"SSID":"toto","IP":"192.168.0.45","SignalStatus":3}
[trydan] TRACE 2026/08/25 08:35:25 {"ID":"XXXXXX","FirmwareVersion":"2.5.0","ChargeState":2,"ChargeMode":0,"ReadyState":0,"ChargePower":1610.00,"VoltageInstallation":230,"ChargeEnergy":0.02,"SlaveError":0,"ChargeTime":51,"GridPower":-16.00,"HousePower":100.00,"FVPower":116.00,"BatteryPower":0.00,"Paused":0,"Locked":0,"Timer":0,"Intensity":7,"IntensityMeasure_L1":11.07,"IntensityMeasure_L2":0.00,"IntensityMeasure_L3":0.00,"VoltageMeasure_L1":226.14,"VoltageMeasure_L2":0.00,"VoltageMeasure_L3":0.00,"Dynamic":1,"MinIntensity":6,"MaxIntensity":7,"PauseDynamic":0,"LightLED":45,"LogoLED":1,"DynamicPowerMode":0,"ContractedPower":9000,"SSID":"toto","IP":"192.168.0.45","SignalStatus":3}
[trydan] TRACE 2026/08/25 08:35:33 {"ID":"XXXXXX","FirmwareVersion":"2.5.0","ChargeState":2,"ChargeMode":0,"ReadyState":0,"ChargePower":1610.00,"VoltageInstallation":230,"ChargeEnergy":0.03,"SlaveError":0,"GridPower":31.00,"HousePower":147.00,"FVPower":116.00,"BatteryPower":0.00,"Paused":0,"Locked":0,"Timer":0,"Intensity":7,"IntensityMeasure_L1":11.25,"IntensityMeasure_L2":0.00,"IntensityMeasure_L3":0.00,"VoltageMeasure_L1":226.04,"VoltageMeasure_L2":0.00,"VoltageMeasure_L3":0.00,"Dynamic":1,"MinIntensity":6,"MaxIntensity":7,"PauseDynamic":0,"LightLED":45,"LogoLED":1,"DynamicPowerMode":0,"ContractedPower":9000,"SSID":"toto","IP":"192.168.0.45","SignalStatus":3}
The relevant EVCC code appears to be:
charger/trydan.go:
var _ api.PhaseCurrents = (*Trydan)(nil)
func (c Trydan) Currents() (float64, float64, float64, error) {
data, err := c.statusG.Get()
if err != nil {
return 0, 0, 0, err
}
if data.phaseMeasurementsUnavailable() {
return 0, 0, 0, api.ErrNotAvailable
}
return data.IntensityMeasureL1,
data.IntensityMeasureL2,
data.IntensityMeasureL3, nil
}
The EVCC loadpoint fallback then uses:
lp.GetMaxPhaseCurrent()
which returns the maximum of the reported phase currents.
In this setup this means EVCC receives approximately 11 A as the "measured charger current", although the EV is actually charging at 7 A.
I believe the Trydan integration should not expose IntensityMeasure_L1/L2/L3 as api.PhaseCurrents when these values represent external/grid measurements rather than the actual EVSE output current.
A possible fix would be to:
- not implement api.PhaseCurrents for Trydan in this situation, or
- only expose phase currents when they are known to represent the actual EVSE output current, or
- use the Trydan's Intensity value for the charger current instead.
The exact correct interpretation of the Trydan fields may need to be confirmed with V2C, but the current behavior demonstrably causes EVCC to use the wrong current for its charger consistency check.
Describe the bug
The Trydan charger integration incorrectly uses the Trydan's phase current measurement (
IntensityMeasure_L1) as the EV charging current.My Trydan V2C is a single-phase installation and is configured with a Shelly Pro 3EM as its external energy meter. The Shelly Pro 3EM has three current clamps in single phase profile:
The Trydan is configured to receive the Shelly measurements via MQTT. I do NOT have the proprietary current clamp connected to the Trydan.
The Trydan
/RealTimeDataendpoint exposesIntensityMeasure_L1,IntensityMeasure_L2andIntensityMeasure_L3.In my configuration,
IntensityMeasure_L1corresponds to the current measured by the Shelly on phase L1 of the house/grid connection. It is therefore NOT the current consumed by the EV charger.However, the EVCC Trydan integration exposes these values through the
api.PhaseCurrentsinterface, and EVCC subsequently usesGetMaxPhaseCurrent()as a fallback for charger-current consistency checking.This causes EVCC to interpret the house/grid current as the actual EV charging current.
For example, when the car is charging at approximately 7 A, the Trydan reports:
ChargePower: 1610 W
Intensity: 7 A
IntensityMeasure_L1: 11.09 A
The 11.09 A value is the current measured on the grid/house phase, not the EV charging current.
This leads to errors such as:
charger logic error: current mismatch (got 11.1A measured, expected 7A)
and can also cause the EVCC loadpoint current to be incorrectly updated.
The important distinction is:
Intensity= current offered/set by the Trydan to the EVChargePower= actual EV charging powerIntensityMeasure_L1= Shelly Pro 3EM L1 current / grid phase current in my configurationTherefore
IntensityMeasure_L1must not be used as the EV charger phase current in this configuration.Steps to reproduce
Use a V2C Trydan with firmware 2.5.0.
Configure the Trydan in single-phase mode:
ChargeMode = 0
Do not connect the proprietary current clamp to the Trydan.
Configure the Trydan to use an external Shelly Pro 3EM via MQTT.
Configure the Shelly Pro 3EM with:
Configure EVCC to use the Trydan charger integration.
Start an EV charging session at a known current, for example 7 A.
Query:
http:///RealTimeData
Observe values similar to:
"ChargePower":1610.00,
"Intensity":7,
"IntensityMeasure_L1":11.09,
"VoltageMeasure_L1":225.44
Compare this with the Shelly Pro 3EM measurement. The 11.09 A value corresponds to the Shelly L1 measurement (house/grid), not to the EV charging current.
EVCC nevertheless uses the phase current returned by the Trydan
PhaseCurrentsimplementation when checking the consistency between the expected and measured charging current.This results in a current mismatch warning and EVCC can interpret the grid current as the EV charging current.
Configuration details
Log details
What type of operating system or environment does evcc run on?
Docker container
External automation
Nightly build
Version
v 0.315.0