Notes on Landis+Gyr Power Meters

Sometimes it’s worthwhile keeping notes about stuff that didn’t work. This is one of those times.

I’ve , and almost five years later and having both upgraded to PLC smart meters, I decided to have another go—and failed. With my going back to work this week, I decided to pause, jot down what I know and revisit the matter later1.

My specific power meter model (supplied by EDP Distribuição, now called E-Redes) is a Landis+Gyr ZCXe110CRU0L3D2.03 S3 (just rolls off the tongue, doesn’t it?), and like many other smart meters, has an optical “pig snout” port (also known as IEC 62056-21) which I would love to be able to use to read data from, like people are allowed to in civilized countries.

However, the IEC interface is standardized in XKCD fashion, with various access modes, link protocols, baud rates and even security measures.

So digging around hasn’t helped much—there are a lot of Tasmota-based devices to do exactly this for the German market (which use an ESP-01 and a tiny opto-coupler), but they’re for different kinds of meters (and flavors of IEC 62056-21).


Obviously, that didn’t stop me, and I had a go at designing my own:

Guess which wire was meant to be pulled off in a hurry.

This was pretty trivial, but the circuit has a hidden flaw:

FYI, the editor is actually pretty usable.

…the voltage divider for the photo transistor is too optimistic, and given that I was using a bare TCRT5000, the opto-transistor didn’t really manage to swing the RX line across proper 3.3V TTL levels, and I didn’t have any regular NPN transistors to do this right, so that was a dead end.

So I just winged it and wired another IR sensor and LED to a Raspberry Pi Pico W, glued them to the meter with some Blu-Tack and experimented with CircuitPython’s busio.UART, which didn’t yield anything obvious at the standard speeds and encodings I tried.

There are technical notes out here that state that more modern meters use HDLC at 9600 baud, but they aren’t specific to my model, so I started digging further.

Side Quests

As it happens, there is a Tasmota-based project to read some of EDP’s power meters via the HAN interface, which is another standardized port that requires an adapter and (apparently) paying EUR 14 for the meter to be unlocked2.

They do have what appears to be a working binary, but not for the ESP-01. And, annoyingly, there are also no instructions on how to build from source, and various mentions of 300, 9600 or 9300 bits per second—plus the author of that repo filed a bug with Tasmota regarding the need for two stop bits in the serial protocol, which just adds to the confusion.

Regardless, I spent some time trying to squeeze bits into the meter in various ways, and right now I actually suspect the optical interface is just plain locked out (even though it seems that Landis+Gyr equipment actually supports a read-only mode).

There are also anecdotal tales in various forums about EDP selling an energy management solution that would… make it awkward to allow free access to meter data, but right now I just wish documentation were easier to be had.

  1. It , so… ↩︎

  2. Paying for access to information about a service you’re already paying for seems… odd, but par for the course for utilities. ↩︎

This page is referenced in: