The P1 telegram is the information sent out by a P1 meter that is connected to your digital meter.
The telegram is sent out once every second and contains lots of data related to:
Power consumption
Power injection
Actual voltage on the lines
Actual current on the lines
Peak current (capacity tariff) per 15'
...
Every item in the telegram is represented by an OBIS code so that you know what the value is that is given in the telegram.
This section describes in detail the P1 telegram that I get from my digital meter (Sagemcom XT211).
A P1 telegram consists of a number of groups, represented by A, B, C, D, E, F. Those groups are separated by -, :, . and *.
A-B:C.D.E*F
A: medium
0: abstract objects
1: electricity
6: heat
7: gas
8: water
B: channel
C: physical value (voltage, current, temperature,...)
D: quantity computation result (what the heck...)
E: measurement defined by groups A-D
F: Unit, if any (comes after the * token)
Example: 1-0 means the medium is electricity, the channel used is channel 0.
It's important to note that neither the amount, nor the order of appearance of the OBIS codes are guaranteed within different telegrams. The processing software must be capable of handling this.
Below is a real, complete P1 telegram taken from my meter.
/FLU5\253------_D
0-0:96.1.4(xxxxx)
1-0:94.32.1(xxx)
0-0:96.1.1(xxxxxxxxxxxxxxxxxxxxxxxxxxxx)
0-0:96.1.2()
0-0:1.0.0(260622103554S)
1-0:1.8.1(000xxx.725*kWh)
1-0:1.8.2(000xxx.560*kWh)
1-0:2.8.1(00xxx.674*kWh)
1-0:2.8.2(000xxx.457*kWh)
0-0:96.14.0(0001)
1-0:1.4.0(00.000*kW)
1-0:1.6.0(260610173000S)(01.660*kW)
0-0:98.1.0(13)(1-0:1.6.0)(1-0:1.6.0)(250601000000S)(250511083000S)(02.017*kW)(250701000000S)(250614131500S)(01.683*kW)(250801000000S)(250731141500S)(01.879*kW)(250901000000S)(250829134500S)(02.193*kW)(251001000000S)(250920130000S)(01.990*kW)(251101000000W)(251019091500S)(02.373*kW)(251201000000W)(251122173000W)(02.409*kW)(260101000000W)(251205174500W)(02.341*kW)(260201000000W)(260116191500W)(02.520*kW)(260301000000W)(260224203000W)(02.427*kW)(260401000000S)(260307174500W)(02.223*kW)(260501000000S)(260403101500S)(01.966*kW)(260601000000S)(260515101500S)(02.033*kW)
1-0:1.7.0(00.000*kW)
1-0:2.7.0(01.894*kW)
1-0:21.7.0(00.000*kW)
1-0:41.7.0(00.000*kW)
1-0:61.7.0(00.147*kW)
1-0:22.7.0(00.422*kW)
1-0:42.7.0(01.619*kW)
1-0:62.7.0(00.000*kW)
1-0:32.7.0(231.2*V)
1-0:52.7.0(235.6*V)
1-0:72.7.0(231.0*V)
1-0:31.7.0(001.92*A)
1-0:51.7.0(006.90*A)
1-0:71.7.0(000.86*A)
0-0:96.3.10(1)
0-0:17.0.0(99.999*kW)
1-0:31.4.0(999.99*A)
0-1:96.3.10(0)
0-2:96.3.10(0)
0-3:96.3.10(0)
0-4:96.3.10(0)
0-0:96.13.0()
!EC3B
In my case, I have a 3-phase connection but no gas.
Below, each and every section will be explained.
/FLU5\253------_D
/: beginning of the telegram
FLU5: Fluvius is controlling the electricity networkt and 5 means the DSMR standart 5.0 (or higher) is used
xxxxxxxxxx: ID of the digital meter
_D: meter is a digital meter
0-0:96.1.4(xxxxx)
0-0: General info on channel 0
96.1.4: OBIS code representing the ID of the meter
(xxxxx): Meter ID
1-0:94.32.1(xxx)
1-0: Electricity info on channel 0
94.32.1: OBIS code for firmware version
xxx: Firmware version
0-0:96.1.1(xxxxxxxxxxxxxxxxxxxxxxxxxxxx)
0-0: General info on channel 0
96.1.1: OBIS code to retrieve equipment
(xxxxxxxxxxxxxxxxxxxxxxxxxxxx): equipment identifier
0-0:1.0.0(260622103554S)
0-0: General info on channel 0
1.0.0: OBIS code to retrieve time stamp of measurements
(260622103554S): Timestamp of the telegram. At the end you can see an S (summer) or a W (winter)
There are 2 tariff counters, one for import and one for export. Each counter has a representation for a low or high import/export tariff.
This information is/can be used to calculate the electricity price that you produce and/or consume.
1-0:1.8.1(000xxx.725*kWh)
1-0:1.8.2(000xxx.560*kWh)
1-0:2.8.1(00xxx.674*kWh)
1-0:2.8.2(000xxx.457*kWh)
1-0: Electricity info on channel 0
1.8.1: OBIS code for low tariff, import
1.8.2: OBIS code for high tariff, import
2.8.1: OBIS code for low tariff, export
2.8.2: OBIS code for high tariff, export
(... . ...*kWh): value for each of the OBIS codes, followed by the unit kWh
0-0:96.14.0(0001)
0-0: General info on channel 0
96.14.0: OBIS code for tariff indicator
(0001): tariff indicator (0001 = high, 0002 = low). This is different compared to DSMR P1 standard, where 0001 is low and 0002 is high.
This deviation from the standard is typically Belgium!
1-0:1.4.0(00.000*kW)
1-0: Electricity info on channel 0
1.4.0: OBIS code for current average command
(00.000*kW): value of current average demand in kW
1-0:1.6.0(260610173000S)(01.660*kW)
1-0: Electricity info on channel 0
1.6.0: OBIS code for the current peak demand. This contains the date (YYMMDD) and closing quarter time slot (HHMMSS) where the current peak demand has occured. Followed by S (summer) or W (winter).
As long as the current month is nog over, this number can still change. Only at the end of the month, the highes current peak demand will be stored.
(260610173000S): Date and time of the current peak demand registration.
(01.660*kW): the current peak demand measured so far for the rolling month.
The following is a very interesting block of information. It contains the peak demand of the last 13 months (assuming you're having your digital meter for over a year already.
This is the content of this block:
0-0:98.1.0(13)(1-0:1.6.0)(1-0:1.6.0)(250601000000S)(250511083000S)(02.017*kW)(250701000000S)(250614131500S)(01.683*kW)(250801000000S)(250731141500S)(01.879*kW)(250901000000S)(250829134500S)(02.193*kW)(251001000000S)(250920130000S)(01.990*kW)(251101000000W)(251019091500S)(02.373*kW)(251201000000W)(251122173000W)(02.409*kW)(260101000000W)(251205174500W)(02.341*kW)(260201000000W)(260116191500W)(02.520*kW)(260301000000W)(260224203000W)(02.427*kW)(260401000000S)(260307174500W)(02.223*kW)(260501000000S)(260403101500S)(01.966*kW)(260601000000S)(260515101500S)(02.033*kW)
0-0: General info on channel 0
98.1.0: OBIS code for the maximum/peak demands (energy import) of the last 13 months
(13): Number of months (if you don't have your digital meter for a year yet, this number shall be lower)
(1.0:1.6.0): Maximum demand of current month, don't know why it's shown twice and there's even no current value assigned to this code
(250601000000S)(250511083000S)(02.017*kW):
The first group is the month for which this peak demand is registered, in combination with the time of the day when the registration has happened. In the example given, it's the month of June, 2020 (250601), at 00:00:00 midnight, S = summertime.
The second group is the day of the month, in combination with the closing slot/quarter when the highest peak demand was detected.
In the example given, the max. peak demand was registered on May 11th, 2025. The closing quarter was 08h30m00sec.
The third group represents the effective peak current value, expressed in kW
Recap: on the 1st of June, 2025, it is registered that the peak demand in May was on May 11th, 2025 with a peak value of 2.017kW, registered at 8h30 in the morning (closing quarter).
This mechanism is repeated another 12 times for the other 12 months coming later.
I'll keep an eye on my P1 meter to see if in July the number (13) is not changing into (14).
1-0:1.7.0(00.000*kW)
1-0:2.7.0(01.894*kW)
1-0: Electricity info on channel 0
1.7.0: OBIS code for the power extracted from the grid by the client
2.7.0: OBIS code for the power injected to the grid by the client
(xx.xxx*kw): value injected/extracted by the client
1-0:21.7.0(00.000*kW)
1-0:41.7.0(00.000*kW)
1-0:61.7.0(00.147*kW)
1-0: Electricity info on channel 0
21.7.0: OBIS code for instantaneous active positive power on L1
41.7.0: OBIS code for instantaneous active positive power on L2
61.7.0: OBIS code for instantaneous active positive power on L3
(xx.xxx*kW): Values of instantaneous active positive power of L1, L2 and L3, expressed in kW
1-0:22.7.0(00.422*kW)
1-0:42.7.0(01.619*kW)
1-0:62.7.0(00.000*kW)
1-0: Electricity info on channel 0
22.7.0: OBIS code for instantaneous active negative power on L1
42.7.0: OBIS code for instantaneous active negative power on L2
62.7.0: OBIS code for instantaneous active negative power on L3
(xx.xxx*kW): Values of instantaneous active negative power of L1, L2 and L3, expressed in kW
1-0:32.7.0(231.2*V)
1-0:52.7.0(235.6*V)
1-0:72.7.0(231.0*V)
1-0: Electricity info on channel 0
32.7.0: OBIS code for instantaneous voltage on L1
52.7.0: OBIS code for instantaneous voltage on L1
72.7.0: OBIS code for instantaneous voltage on L1
(xxx,x*V): Values of instantaneous voltage on L1, L2 and L3, expressed in V
1-0:31.7.0(001.92*A)
1-0:51.7.0(006.90*A)
1-0:71.7.0(000.86*A)
1-0: Electricity info on channel 0
31.7.0: OBIS code for instantaneous current on L1
51.7.0: OBIS code for instantaneous current on L1
71.7.0: OBIS code for instantaneous current on L1
(xxx,x*V): Values of instantaneous current on L1, L2 and L3, expressed in A
Every digital meter has a breaker to interrupt the current. That breaker can be controlled by the electricity provider.
The breaker can have 3 states:
Disconnected (0)
Connected (1)
Ready for connection (2)
0-0:96.3.10(1)
0-0: General info on channel 0
96.3.10: OBIS code for the breaker state
(1): Value of the breaker state. In this case, the breaker is connected and electricity can flow into the house.
0-0:17.0.0(99.999*kW)
0-0: General info on channel 0
17.0.0: OBIS code for the limiter threshold.
Threshold limiter can be one of the following:
0-999,8: threshold in place
999,9: threshold deactivated
(99.999*kW): Value of the limiter threshold. Since the value here is 99.999 it means the threshold is deactivated
1-0:31.4.0(999.99*A)
1-0: Electricity info on channel 0
31.4.0: OBIS code for the fuse supervision threshold.
The threshold value can be one of:
0-998: threshold active
999: threshold inactive.
(999.99*A): Value of the fuse supervision threshold. Since the value here is 999.99 it means the threshold is deactivated.
0-1:96.3.10(0)
0-2:96.3.10(0)
0-3:96.3.10(0)
0-4:96.3.10(0)
0-x: General info on channel x
96.3.0: OBIS code for the breaker state
(x): Number of times the breaker state was activated. In the example given, it means so far there were no breaker states triggered.
In the future, it will be possible to send out text messages with a length of max. 1024 characters. But for the moment this feature is not used.
0-0:96.13.0()
0-0: General info on channel 0
96.13.0: OBIS code for the text message
(): Value of the text message. As said before, currently this feature is not used, so the text message is an empty message.
!EC3B
Every P1 telegram ends with an exclamation mark, followed by the CRC check.
The CRC check is a polynomial of the shape: x¹⁶ + x¹⁵ + x² + 1.
If you represent this in binary format, then you have: 1_1000_0000_0000_0101.
Since we're only taking 2 bytes (in CRC calculation, the polynomial is often represented without the leading 1, being x16), the highest bit disappears. So the hex value that remains is 0x8005.
The spec DSMR 5.0.2 (latest one as of this writing) explains in chapter 6.2 how the CRC is calculated.