← Back

Reading an Aidon meter — P1/HAN and DLMS/COSEM

Finnish smart meters speak DLMS/COSEM out of the HAN port. A custom ESP32 circuit reads consumption every ten seconds straight into Home Assistant.

Reading an Aidon meter — P1/HAN and DLMS/COSEM

Finnish smart meters have a HAN port that hands you your own consumption without asking the utility for it after the fact. The meter pushes a telegram every ten seconds. All I had to do was read it.

The meter

MeterAidon 7534
Comms moduleAidon 7442 S
PortRJ12 (6P6C)
ProtocolHDLC / DLMS/COSEM, ASCII, 115200 8N1
Interval10 s
EncryptionNone — the Finnish standard sends it in the clear

The HAN port has to be enabled by your distribution company. The cable must be a six-wire RJ12, not a four-wire RJ11 — an easy mistake, because the connector looks identical.

Power is the hard part

The HAN port supplies +5 V at 250 mA, and its overcurrent protection trips around 280 mA. An ESP32 sits comfortably under that on average, but WiFi transmit peaks hit 300–500 mA. That's enough to knock the port out.

The fix is a supercapacitor across the ESP32: it absorbs the transmit spikes so the port only ever sees the average. The catch is that an empty supercap looks like a short circuit at power-on, which would trip the protection instantly.

So a 22 ohm resistor goes in series. It limits inrush to roughly 227 mA even with a completely empty cap — safely under the trip threshold. No pre-charging circuit needed, and the device survives power cuts and cold starts on its own.

One thing worth not doing: a 100 nF ceramic cap on the data line. The TXS0108E level shifter tolerates at most 70 pF, and a filter cap there kills the signal.

Antenna

The meter lives in a metal cabinet, which makes an excellent Faraday cage. Hence an ESP32-U with a u.FL connector and an external 2 dBi SMA antenna mounted outside it. That reaches about 37 m through wooden walls, which was plenty.

Result

Consumption shows up in Home Assistant to the second, with no cloud and no utility app in the middle. The circuit is drawn in KiCad and the firmware is ESPHome — parsing the telegram is already handled there once the UART is right.