Sometimes it’s worthwhile keeping notes about stuff that didn’t work. This is one of those times.
I’ve long wanted to get data out of my power meters, 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.
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
Obviously, that didn’t stop me, and I had a go at designing my own:
This was pretty trivial, but the circuit has a hidden flaw:
…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.
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.