by Jarno

Share

Moving to our new house gave us the advantage of a ‘new’ energy meter for electricity, clean installed with counters starting from zero. Luckely for us they installed a Smart Meter type. These type of meters have a lot of ‘smart’ ports, and one of them is the P1 port. Through this port it is possible to read the data from this meter. The P1 port is working according DSMR-4.0.

Interface

The data from the P1 port is serial data, and is connectable with a RJ-11 connector, and has the following signals:

1 – N/A

2 – RTS

3 – GND

4 – N/A

5 – RxD

6 – N/A

I’m using a SparkFun FTDI Basic Breakout – 5V to convert the serial. And am using it as a serial to USB converter to connect to my small FIT-PC2 server.

The interface should be conncted as follows:

P1.RTS to FTDI.VCC (5V)

P1.GND to FTDI.GND

P1.RxD to FTDI.RxI

 

interface

 

NOTE 1: With this type of meter it is important to add a pull-up resistor between VCC and RxD. This is because the electronic of this smart-meter is an open collector connection.

NOTE 2: Because the Smartmeter has 0V for a logical ‘1’ and a +5V for a logical ‘0’, we need to invert the data signal, RxD. This can be done hardwarematically, but an easier solution in this case is in the SparkFun FTDI itself! This should be done with the program FT_Prog.

ft_prog

Software

The communication should be set-up with the following settings: (115200 8N1)

– Baudrate:  115200

– Data bits: 8

– Parity: none

– Stop bits: 1

 

My software, written in C#, which is gathering the data from the smart meter and stores the data into a MySQL database. You can download it here: C# SmartMeter_P1

SmartMeterP1

 

The webinterface which visualizes the data is as follows:

webinterface

 

Received Data

/XMX5LGBBFFB123456789
1-3:0.2.8(40)
0-0:1.0.0(141227180323W)
0-0:96.1.1(4530303034303031353535383123456789)
1-0:1.8.1(000687.138*kWh) = opgenomen energie tarief 1
1-0:2.8.1(000000.000*kWh) = teruggeleverde energie tarief 1
1-0:1.8.2(000523.849*kWh) = opgenomen energie tarief 2
1-0:2.8.2(000000.000*kWh) = teruggeleverde tarief 2
0-0:96.14.0(0001)         = huidige tarief nr
1-0:1.7.0(00.428*kW)      = huidige opgenomen vermogen
1-0:2.7.0(00.000*kW)      = huidige teruggeleverde vermogen
0-0:17.0.0(999.9*kW)
0-0:96.3.10(1)
0-0:96.7.21(00002)
0-0:96.7.9(00000)
1-0:99.97.0(0)(0-0:96.7.19)
1-0:32.32.0(00000)
1-0:32.36.0(00000)
0-0:96.13.1()
0-0:96.13.0()
1-0:31.7.0(002*A)
1-0:21.7.0(00.428*kW)
1-0:22.7.0(00.000*kW)
0-1:24.1.0(003)
0-1:96.1.0(4730303032333430313436343123456789)
0-1:24.2.1(141227170000W)(00435.247*m3) = verbruikte gas
0-1:24.4.0(1)
!0C97

 

More Info

The P0 port, which is infra red, is the maintenance port at the front of the Smart Meter.

The P1 port, which is the RJ-11 connection, has the serial protocol where standard IEC-62056-21 is used.

The P2 port, which is wireless and communicates on 868 MHz,  is used to gather data from the gas meter. This data is also packed into the data which is available on the P1 port.

The P3 port, which is wireless and communicates via GPRS (DLMS CoSEM protocol), transmits the data from our meter to the transporter of the energy.

The P4 port, which is a market interface for ESCO’s (Energy Service Company), Supplier, water companies, …

by Jarno

Share

Related Posts

  • MARCH 2020 \plugins\system\cssconfig\cssconfig.phpCSSConfig System plug-in @package CSSConfig System plug-in

  • To start with an attack, one first has to gain some knowledge! My initial starting point was a long time ago, when m3u-stream references first began appearing on various websites. NOTE: I am not certain if it would be wise to share the details of this adventure, as there are concerns about the potential consequences. […]

  • Each minute an RF burst is send into the air somewhere in the neighbourhood of my house at the frequency 868.4 MHz in AM modulation. Is this data intended for me? I dont know, so I would like to figure it out… ;-)

  • – clone from git git clone https://github.com/merbanan/rtl_433.git – install need cmake apt-get install cmake – install libusb apt-get install libusb-1.0-0-dev – start rtl_433 -a KlikAan KlikUit: *** signal_start = 251271090, signal_end = 251291121 signal_len = 20031, pulses = 1 Distance coding: Pulse length 30 Short distance: 1000000, long distance: 0, packet distance: 0 p_limit: 30 […]