Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Forums
  3. L+G E450 Parsing Pushed Data

L+G E450 parsing pushed data

Forum Rules

Before commenting read Forum rules

Don't comment the topic if you have a new question.

You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.

By raymar , 17 February, 2022
Forums
Gurux.DLMS

Hi
We have two L+G E450 meter which push data in different structures. I use Gurux.DLMS.Python in my software to parse this data, however it only works with one of the two meters.
I used the translator tool of Gurux Director to parse and inspect the raw data to further analyze the problem.

First the output of the meter data my Gurux based software is able to parse:

<!-- IDIS system title:
Manufacturer Code: LGZ
Device type: IDIS package2 IP polyphase meter
Function type: Load Management, Multi Utility
Serial number: 53520967
-->
<DataNotification>
# Invoke ID: 3463726
<LongInvokeIdAndPriority Value="3463726" />
# 06.12.2021 01:05:00
<DateTime Value="07E50C0601010500FF800000" />
<NotificationBody>
<DataValue>
<Structure Qty="13" >
<Array Qty="13" >
<Structure Qty="4" >
<UInt16 Value="40" />
# 0.9.25.9.0.255
<OctetString Value="0009190900FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="40" />
# 0.9.25.9.0.255
<OctetString Value="0009190900FF" />
<Int8 Value="1" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="1" />
# 0.0.42.0.0.255
<OctetString Value="00002A0000FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="1" />
# 0.0.96.1.1.255
<OctetString Value="0000600101FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="8" />
# 0.0.1.0.0.255
<OctetString Value="0000010000FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.1.8.1.255
<OctetString Value="0101010801FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.1.8.2.255
<OctetString Value="0101010802FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.2.8.1.255
<OctetString Value="0101020801FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.2.8.2.255
<OctetString Value="0101020802FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.5.8.1.255
<OctetString Value="0101050801FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.5.8.2.255
<OctetString Value="0101050802FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.8.8.1.255
<OctetString Value="0101080801FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
<Structure Qty="4" >
<UInt16 Value="3" />
# 1.1.8.8.2.255
<OctetString Value="0101080802FF" />
<Int8 Value="2" />
<UInt16 Value="0" />
</Structure>
</Array>
# 0.9.25.9.0.255
<OctetString Value="0009190900FF" />
# LGZ1030653520967
<OctetString Value="4C475A31303330363533353230393637" />
# 1909113
<OctetString Value="31393039313133" />
# 06.12.2021 01:05:00
<OctetString Value="07E50C0601010500FF800001" />
<UInt32 Value="0" />
<UInt32 Value="134284" />
<UInt32 Value="0" />
<UInt32 Value="0" />
<UInt32 Value="0" />
<UInt32 Value="0" />
<UInt32 Value="0" />
<UInt32 Value="99887" />
</Structure>
</DataValue>
</NotificationBody>
</DataNotification>

Following the output of the translator of the data from the meter which does not work with my program:
<!-- IDIS system title:
Manufacturer Code: LGZ
Device type: IDIS package2 IP polyphase meter
Function type: Disconnector, Load Management, Multi Utility
Serial number: 58204112
-->
<DataNotification>
# Invoke ID: 153327
<LongInvokeIdAndPriority Value="153327" />
# 22.01.2022 20:40:10
<DateTime Value="07E601160614280AFF800000" />
<NotificationBody>
<DataValue>
<Structure Qty="33" >
# 22.01.2022 20:40:10
<OctetString Value="07E601160614280AFF800000" />
# 1.0.1.8.0.255
<OctetString Value="0100010800FF" />
<UInt32 Value="4495453" />
# 1.0.1.8.1.255
<OctetString Value="0100010801FF" />
<UInt32 Value="3164981" />
# 1.0.1.8.2.255
<OctetString Value="0100010802FF" />
<UInt32 Value="1330472" />
# 1.0.1.7.0.255
<OctetString Value="0100010700FF" />
<UInt32 Value="1048" />
# 1.0.2.8.0.255
<OctetString Value="0100020800FF" />
<UInt32 Value="0" />
# 1.0.2.8.1.255
<OctetString Value="0100020801FF" />
<UInt32 Value="0" />
# 1.0.2.8.2.255
<OctetString Value="0100020802FF" />
<UInt32 Value="0" />
# 1.0.2.7.0.255
<OctetString Value="0100020700FF" />
<UInt32 Value="0" />
# 1.0.3.8.0.255
<OctetString Value="0100030800FF" />
<UInt32 Value="830134" />
# 1.0.3.8.1.255
<OctetString Value="0100030801FF" />
<UInt32 Value="507549" />
# 1.0.3.8.2.255
<OctetString Value="0100030802FF" />
<UInt32 Value="322585" />
# 1.0.3.7.0.255
<OctetString Value="0100030700FF" />
<UInt32 Value="0" />
# 1.0.4.8.0.255
<OctetString Value="0100040800FF" />
<UInt32 Value="997194" />
# 1.0.4.8.1.255
<OctetString Value="0100040801FF" />
<UInt32 Value="693919" />
# 1.0.4.8.2.255
<OctetString Value="0100040802FF" />
<UInt32 Value="303275" />
# 1.0.4.7.0.255
<OctetString Value="0100040700FF" />
<UInt32 Value="521" />
</Structure>
</DataValue>
</NotificationBody>
</DataNotification>

As you can see the second example uses a "flatter" hierarchy in the structure. Do you know that behavior or the reason for this different structure? Can you give me a hint how to use the Gurux DLMS Python parser software to be able to parse also this second data structure?

See this Github issue for more context information:
https://github.com/scs/smartmeter-datacollector/issues/21

Thank you very much in advance.
Sincerly,
raymar

Profile picture for user Kurumi

Kurumi

4 years 3 months ago

Hi,

Hi,

Can you add raw hex trace from the push bytes so I can verify this?

BR,
Mikko

raymar

4 years 3 months ago

Hi Mikko

Hi Mikko

Of course, however the data is encrypted and I cannot write the key here since it is from a meter of someone else. Therefore I'm not sure if the raw data is useful for you in any way.

7E A0 8B CE FF 03 13 EE E1 E6 E7 00 E0 40 00 01 00 00 77 DB 08 4C 47 5A 67 73 78 1F D0 82 01 03 30 00 00 A4 1E AE 60 03 2D 12 96 F2 D2 86 5D 27 94 F3 59 34 7E 91 AE FF E2 BC 1F 37 C0 7B 5C 30 A6 9A 48 89 06 30 97 97 8B EF 0D 55 0B BA 69 85 D6 77 61 D9 C3 72 DF 3C 7B F3 3F A3 CB A6 F8 3D B5 5A 71 BE DF 3A 4D B2 9A 89 BC C3 A1 89 11 E6 FF F2 09 4D BF 1F 7B 33 67 A9 F9 78 F4 90 9A 62 03 4E 3D 6E FD 3B 2E 0D 56 66 44 AC 7E 7E A0 8B CE FF 03 13 EE E1 E0 40 00 02 00 00 7A B6 DB 45 4B A6 78 15 1F 0C 46 1D B9 7E 7C 7B 1C D6 A0 B9 0F 0D 03 5C F8 F2 D1 7B B7 9B D4 2A 45 DC F6 51 09 A2 FD 8B E6 6C 19 F1 89 90 C8 60 29 CE 62 27 20 BB B4 A4 F1 90 C6 47 C9 3A EB 44 65 B0 AE C3 20 E3 10 6E 28 E3 9C 57 E7 61 D6 70 01 53 DC 93 4D A0 C5 6C 74 80 32 2B 44 49 60 9C 22 2F A2 AC 60 C2 A5 1E 95 23 C2 DA 61 6C 60 14 8C 65 FE 97 F2 42 DE 95 3D 27 0D DE 69 7E 7E A0 30 CE FF 03 13 86 F8 E0 C0 00 03 00 00 1F 96 33 41 C0 6B 44 02 3C C0 2E 21 4F 56 B8 D8 7B 6C 73 17 20 37 62 4E 27 DE 9B 55 E4 49 35 37 FC D7 7E

Best regards,
raymar

Profile picture for user Kurumi

Kurumi

4 years 3 months ago

Hi,

Hi,

You are right. Because data is encrypted it doesn't help me.
Can you encrypt it with GXDLMSDirector? Select DLMS translator and set correct settings for the Ciphering tab. Then select "Messages" tab and add this data and translate it. Add decrypted output here so I can verify it.

BR,
Mikko

raymar

4 years 3 months ago

Hi

Hi
--------------
1: 7E A0 8B CE FF 03 13 EE E1 E6 E7 00 E0 40 00 01 00 00 77 DB 08 4C 47 5A 67 73 78 1F D0 82 01 03 30 00 00 A4 1E AE 60 03 2D 12 96 F2 D2 86 5D 27 94 F3 59 34 7E 91 AE FF E2 BC 1F 37 C0 7B 5C 30 A6 9A 48 89 06 30 97 97 8B EF 0D 55 0B BA 69 85 D6 77 61 D9 C3 72 DF 3C 7B F3 3F A3 CB A6 F8 3D B5 5A 71 BE DF 3A 4D B2 9A 89 BC C3 A1 89 11 E6 FF F2 09 4D BF 1F 7B 33 67 A9 F9 78 F4 90 9A 62 03 4E 3D 6E FD 3B 2E 0D 56 66 44 AC 7E
<HDLC len="8A" >
<!-- Logical address:103, Physical address:127 -->
<TargetAddress Value="33FF" />
<SourceAddress Value="1" />
<!-- Notification frame. -->
<FrameType Value="13" />
<PDU>
<GeneralBlockTransfer>
<!-- Last block: False -->
<!-- Streaming: True -->
<!-- Window size: 0 -->
<BlockControl Value="40" />
<BlockNumber Value="0001" />
<BlockNumberAck Value="0000" />
<BlockData Value="DB 08 4C 47 5A 67 73 78 1F D0 82 01 03 30 00 00 A4 1E AE 60 03 2D 12 96 F2 D2 86 5D 27 94 F3 59 34 7E 91 AE FF E2 BC 1F 37 C0 7B 5C 30 A6 9A 48 89 06 30 97 97 8B EF 0D 55 0B BA 69 85 D6 77 61 D9 C3 72 DF 3C 7B F3 3F A3 CB A6 F8 3D B5 5A 71 BE DF 3A 4D B2 9A 89 BC C3 A1 89 11 E6 FF F2 09 4D BF 1F 7B 33 67 A9 F9 78 F4 90 9A 62 03 4E 3D 6E FD 3B 2E 0D 56 66" />
</GeneralBlockTransfer>
</PDU>
</HDLC>
2: 7E A0 8B CE FF 03 13 EE E1 E0 40 00 02 00 00 7A B6 DB 45 4B A6 78 15 1F 0C 46 1D B9 7E 7C 7B 1C D6 A0 B9 0F 0D 03 5C F8 F2 D1 7B B7 9B D4 2A 45 DC F6 51 09 A2 FD 8B E6 6C 19 F1 89 90 C8 60 29 CE 62 27 20 BB B4 A4 F1 90 C6 47 C9 3A EB 44 65 B0 AE C3 20 E3 10 6E 28 E3 9C 57 E7 61 D6 70 01 53 DC 93 4D A0 C5 6C 74 80 32 2B 44 49 60 9C 22 2F A2 AC 60 C2 A5 1E 95 23 C2 DA 61 6C 60 14 8C 65 FE 97 F2 42 DE 95 3D 27 0D DE 69 7E
<HDLC len="8A" >
<!-- Logical address:103, Physical address:127 -->
<TargetAddress Value="33FF" />
<SourceAddress Value="1" />
<!-- Notification frame. -->
<FrameType Value="13" />
<PDU>
<GeneralBlockTransfer>
<!-- Last block: False -->
<!-- Streaming: True -->
<!-- Window size: 0 -->
<BlockControl Value="40" />
<BlockNumber Value="0002" />
<BlockNumberAck Value="0000" />
<BlockData Value="B6 DB 45 4B A6 78 15 1F 0C 46 1D B9 7E 7C 7B 1C D6 A0 B9 0F 0D 03 5C F8 F2 D1 7B B7 9B D4 2A 45 DC F6 51 09 A2 FD 8B E6 6C 19 F1 89 90 C8 60 29 CE 62 27 20 BB B4 A4 F1 90 C6 47 C9 3A EB 44 65 B0 AE C3 20 E3 10 6E 28 E3 9C 57 E7 61 D6 70 01 53 DC 93 4D A0 C5 6C 74 80 32 2B 44 49 60 9C 22 2F A2 AC 60 C2 A5 1E 95 23 C2 DA 61 6C 60 14 8C 65 FE 97 F2 42 DE 95 3D 27 0D" />
</GeneralBlockTransfer>
</PDU>
</HDLC>
3: 7E A0 30 CE FF 03 13 86 F8 E0 C0 00 03 00 00 1F 96 33 41 C0 6B 44 02 3C C0 2E 21 4F 56 B8 D8 7B 6C 73 17 20 37 62 4E 27 DE 9B 55 E4 49 35 37 FC D7 7E
<HDLC len="2F" >
<!-- Logical address:103, Physical address:127 -->
<TargetAddress Value="33FF" />
<SourceAddress Value="1" />
<!-- Notification frame. -->
<FrameType Value="13" />
<PDU>
<GeneralBlockTransfer>
<!-- Last block: True -->
<!-- Streaming: True -->
<!-- Window size: 0 -->
<BlockControl Value="C0" />
<BlockNumber Value="0003" />
<BlockNumberAck Value="0000" />
<BlockData Value="96 33 41 C0 6B 44 02 3C C0 2E 21 4F 56 B8 D8 7B 6C 73 17 20 37 62 4E 27 DE 9B 55 E4 49 35 37" />
</GeneralBlockTransfer>
</PDU>
</HDLC>

-------------------

Please note, it is not the same sample as in the first message from me. However, the data structure is similar.
I could copy and past the three block data values into the Pdu section of the translator and get the structure like in my first request.

Thanks and best regards,
raymar

raymar

4 years 2 months ago

Hi Mikko

Hi Mikko

I just wanted to kindly ask whether you came to a conclusion about this different data structure I received from this smart meter. I sent you the keys by E-Mail. Is there a way I could use the Gurux.DLMS.Python software to parse also this structure?

Best regards,
raymar

Profile picture for user Kurumi

Kurumi

4 years 2 months ago

Hi,

Hi,

Can you also send the client and server system title to me by email?
I can't decrypt the data without that information.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Tue, 06/09/2026 - 11:16
    gurux.dlms.java 4.0.95
  • Tue, 06/09/2026 - 10:03
    Gurux.DLMS.Python 1.0.199
  • Mon, 06/08/2026 - 13:39
    gurux.dlms.cpp 9.0.2606.0801
  • Mon, 06/01/2026 - 10:15
    gurux.dlms.cpp 9.0.2606.0101
  • Thu, 05/28/2026 - 16:06
    gurux.dlms.java 4.0.94

New forum topics

  • Error reading L&G Meter
  • Pass a TCP Client to GXNet
  • Australian EDMI Mk10D (Essential Energy area)
  • Strange mix of data notificiation vs get response
  • DLMS Connection
More

Who's new

  • Tuanhgg
  • Adel
  • charnon
  • Paddles
  • Miguel Ángel
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin