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. DLMS - Serial - HDLC

DLMS - Serial - HDLC

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 StudiEng , 17 January, 2020
Forums
Gurux.Serial

Hey guys,
I'm quite new to this interesting topic and have a few comprehension questions at the beginning, which should help me a bit.

First of all: I have a smart meter with an optical interface, which I can already read out via your GuruxDirector.
I read the meter via the DLMS standard and the HDLC protocol.

With the collected information via HTerm I can already connect to the device independently and read out the voltage for example.

The message I send for reading out looks like this:

7E A019 03 41 323ABDE6E600C001C100 03 01 00 0C 07 00 FF 0200 1137 7E

I now know that this data stream is always structured similarly.

It starts and ends with a sequence and a checksum (7E [...] 1137 7E).

This leaves the header (A019 03 41) and the data itself (323ABDE6E600C001C100 03 01 00 0C 07 00 FF 0200).

To the header:
I know that 03 and 41 are the addresses of the device and my interface respectively.
But what does A019 mean ? I suspect that A019 stands for a function code.
Is there any way to decipher it?

To the data:
I know that the data contains the OBIS code and the class Id.
(03 01 00 0C 07 00 FF)
Can the rest be deciphered further?
323ABDE6E600C001C100 [...] 0200

Can I find a table somewhere that can answer my questions to give me some more clarity about the protocol and HDLC encryption?

Kind regards
StudiEng

Profile picture for user Kurumi

Kurumi

6 years 4 months ago

Hi StudiEng,

Hi StudiEng,

I strongly propose that you use our open source components. DLMS is not an easy protocol.

Messages are not static. There is a sequence number that is changed for each message.
So if you try to read the same value twice using same message, the meter doesn't reply to the second one.

You can use GuruxDLMSTranslator to convert data to XML format. I believe it helps you.
http://www.gurux.fi/GuruxDLMSTranslator

BR,
Mikko

StudiEng

6 years 4 months ago

Many thanks for the hint with

Many thanks for the hint with the translation tool. It helped me to understand the messages better.

To the statement that the messages are not static.
I checked it with my smart meter.
I can easily send the same command ten times and always get a suitable response.

Are there any differences in the interpretation of the DLMS standard?

I would like to understand the protocol as far as possible.

With the sequence number you mean the frame value?

Kind regards

StudiEng

Profile picture for user Kurumi

Kurumi

6 years 4 months ago

Hi,

Hi,

You can read more the HDLC framing from here:
https://en.wikipedia.org/wiki/High-Level_Data_Link_Control

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