Microcontroller projects

Smarty: P1 to USB

last updated: 2024-01-18

Intro

Sometimes I was asked which cable one could use to read Luxembourgish smart meter (called Smarty). There are different cables on the net and often you can't look inside to know which cable to use. So here is the quick do it yourself solution.

The circuit

The Luxembourgish smart meter deliver an inverted and encrypted serial signal with 115200bit/s (8N1) on P1 (no modbus).

The smart meter provides power (5 V up to 250 mA) on the RJ12 P1 connector pin 1 (GND on pin 6). The EN1 pin 2 needs 5 V to enable the sending of data. If connected permanent with 5 V, the data stream is sent with maximum speed of 1 stream (about 1200 byte) every 10 s. The enable ground (pin 3) must be connected to GND (pin 6). On pin 5 finally we have the serial data with 115200 bit/s (8N1). The signal is inverted (GND if idle). The pin is open collector and must be tied to 5 V. The resistor must not be too big (less then 1 kΩ). Our transistor inverts the data stream.

smarty P1 to USB circuit

BOM

The encryption

The stream is encoded with AES128-GCM. You need to ask your energy provider for your 16 byte decryption key and need some software (e.g. Python library) or an integration software for your preferred home automation software (e.g. Home Assistant) to decrypt the data. You can also use my SmartyReader® to decrypt it and send the data to MQTT :).

More information on AES128-GCM can be found on http://weigu.lu/tutorials/sensors2bus/04_encryption/index.html.

Interesting links: