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?
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.
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?
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
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
Hi,
Hi,
You can read more the HDLC framing from here:
https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
BR,
Mikko