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. Reading Data From Meter Using OBIS Code

Reading data from meter using OBIS code

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 poojash , 28 July, 2021
Forums
Known problems

Hello sir,
I want to read Block load profile from meter and I am trying to read different OBIS code but there are some problem while reading

Average voltage 1.0.12.27.0.255
Block energy, kWh 1.0.1.29.0.255
Block energy, kVAh 1.0.9.29.0.255
and following is example what i am sending and what i get
below is example what i sending and what i get
here trying to read cumulative energy Kwh for TZ1:
DLMS_OBJECT_TYPE_REGISTER data type
attribute:2

7E:A0:19:03:41:76:1A:B9:E6:E6:00:C0:01:81:00:03:01:00:01:08:01:FF:02:00:8C:B9:7E
7E:A0:11:41:03:96:D4:7D:E6:E7:00:C4:01:81:01:04:BA:F0:7E

what i want to do to read proper data

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

Meter replies that this is an undefined object. It usually means that your Logical name (1.0.1.8.1.255) or Object type is wrong.

Can you read the meter with GXDLMSDirector? Read the meter with GXDLMSDirector and you can see all the objects that you can read.

BR,
Mikko

poojash

4 years 10 months ago

Hi,

Hi,
We observed while reading profile generic using gxDLMSDirector that, some times data is reading and some time not. Please help us to read generic profile using gurux and also using embedded c.
Which settings we have to do like invocation counter/ciphering etc.

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

Gurux client example does this for you. You should check this out:
https://github.com/Gurux/GuruxDLMS.c/tree/master/GuruxDLMSClientExample

If data is coming randomly, you need to ask the meter manufacturer to fix it.

BR,
Mikko

poojash

4 years 10 months ago

In reply to Hi, by Kurumi

hi,

hi,
I called com_readAllObjects() this function but association com_getAssociationView() failled it returns ret=260 what should i do
TX:-7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:0F:00:00:28:00:02:FF:02:00:E2:A7:7E:
Received Size = 139
Received data: 7E:A8:89:41:03:52:CB:AC:E6:E7:00:C4:02:81:00:00:00:00:01:00:82:01:EC:01:43:02:04:12:00:01:11:00:09:06:00:00:00:01:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:00:01:01:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:2A:00:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:42:08:7E:
frame size= 139reading completed 2 : 260

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

I need all the communication frames to find out what might cause this.

BR,
Mikko

poojash

4 years 10 months ago

Following are frames i get

Following are frames i get
SNRM Process-> 7E:A0:07:03:41:93:5A:64:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:
frame size= 32Out from read DLMS packets
SNRM Completed
AARQ Process ->7E:A0:40:03:41:10:5F:93:E6:E6:00:60:32:A1:09:06:07:60:85:74:05:08:01:01:8A:02:07:80:8B:07:60:85:74:05:08:02:01:AC:06:80:04:6C:6E:74:31:BE:10:04:0E:01:00:00:00:06:5F:1F:04:00:00:1E:1D:FF:FF:39:24:7E:
gxUart_write:Received Size = 57
Received data: 7E:A0:37:41:03:30:21:79:E6:E7:00:61:29:A1:09:06:07:60:85:74:05:08:01:01:A2:03:02:01:00:A3:05:A1:03:02:01:00:BE:10:04:0E:08:00:06:5F:1F:04:00:00:10:14:02:00:00:07:BC:85:7E:
frame size= 57Out from read DLMS packets
AARQ Completed
connection successful
7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:0F:00:00:28:00:00:FF:02:00:94:9E:7E:
gxUart_write:Received Size = 139
Received data: 7E:A8:89:41:03:52:CB:AC:E6:E7:00:C4:02:81:00:00:00:00:01:00:82:01:EC:01:43:02:04:12:00:01:11:00:09:06:00:00:00:01:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:00:01:01:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:2A:00:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:42:08:7E:
frame size= 139reading completed 2 : 260
Out from read DLMS packets
com_readDataBlock->1 ret: 260

Association view error

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

You don't ask the next frame from the meter. You have only the first frame and all the data can't fit for that one frame.

BR,
Mikko

poojash

4 years 10 months ago

what should i do?

what should i do?

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

The framework will do it automatically. I believe that you are not using the framework. DLMS is a very complicated standard and I strongly propose that you should use the framework.

BR,
Mikko

poojash

4 years 10 months ago

Hi,

Hi,
I have used com_readAllObjects() as it is from Arduino client example. Still it gives me error

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

There is no Receiver Ready in the trace. You need to check why it is missing.

BR,
Mikko

poojash

4 years 10 months ago

Hello sir, Today i refered

Hello sir, Today i refered Arduino code and called generic profile ("1.0.99.1.0.255") I received following reply

Connecting secure MeterCOnnecting secure-MR
SNRM Process-> 7E:A0:07:03:41:93:5A:64:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:
frame size= 32Out from read DLMS packets
SNRM Completed
AARQ Process ->7E:A0:40:03:41:10:5F:93:E6:E6:00:60:32:A1:09:06:07:60:85:74:05:08:01:01:8A:02:07:80:8B:07:60:85:74:05:08:02:01:AC:06:80:04:6C:6E:74:31:BE:10:04:0E:01:00:00:00:06:5F:1F:04:00:00:1E:1D:FF:FF:39:24:7E:
gxUart_write:Received Size = 57
Received data: 7E:A0:37:41:03:30:21:79:E6:E7:00:61:29:A1:09:06:07:60:85:74:05:08:01:01:A2:03:02:01:00:A3:05:A1:03:02:01:00:BE:10:04:0E:08:00:06:5F:1F:04:00:00:10:14:02:00:00:07:BC:85:7E:
frame size= 57Out from read DLMS packets
AARQ Completed
connection successful

Secure Meter Connected

Reading Gp:
Reading LDn DATAIn com_read7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:01:00:00:2A:00:00:FF:02:00:17:4D:7E:
gxUart_write:Received Size = 34
Received data: 7E:A0:20:41:03:52:B5:AD:E6:E7:00:C4:01:81:00:09:0E:4C:4E:54:41:32:58:58:58:58:58:58:58:43:35:12:89:7E:
frame size= 34Out from read DLMS packets
In com Read
Reading Clock DATAIn com_read7E:A0:19:03:41:54:0A:BB:E6:E6:00:C0:01:81:00:08:00:00:01:00:00:FF:03:00:BD:CE:7E:
gxUart_write:Received Size = 19
Received data: 7E:A0:11:41:03:74:C8:B9:E6:E7:00:C4:01:81:01:03:05:84:7E:
frame size= 19reading completed 2 : 3
Out from read DLMS packets
com_readDataBlock->1 ret: 3
ReadObject failed
In com ReadIn com_read7E:A0:19:03:41:76:1A:B9:E6:E6:00:C0:01:81:00:08:00:00:01:00:00:FF:02:00:65:D7:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:96:2D:CF:E6:E7:00:C4:01:81:00:09:0C:07:E5:08:03:02:10:1D:35:FF:01:4A:00:B7:82:7E:
frame size= 32Out from read DLMS packets
In com Read
Reading Profile Generics DATAIn com_read7E:A0:19:03:41:98:6A:B7:E6:E6:00:C0:01:81:00:07:01:00:63:01:00:FF:03:00:89:5D:7E:
gxUart_write:Received Size = 139
Received data: 7E:A8:89:41:03:B8:9F:E4:E6:E7:00:C4:01:81:00:01:0B:02:04:12:00:08:09:06:00:00:01:00:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:0C:1B:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:01:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:09:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:05:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:02:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:0A:1D:68:D2:7E:
frame size= 139Out from read DLMS packets
com_readDataBlock->2 ret: 260
ReadObject failed
In com Read7E:A0:2C:03:41:DA:D9:F4:E6:E6:00:C0:01:81:00:07:01:00:63:01:00:FF:02:01:02:02:04:06:00:00:00:01:06:00:00:00:02:12:00:01:12:00:00:6B:02:7E:
gxUart_write:Received Size = 19
Received data: 7E:A0:11:41:03:DA:BC:F5:E6:E7:00:C4:01:81:01:03:05:84:7E:
frame size= 19reading completed 2 : 260
Out from read DLMS packets
com_readDataBlock->1 ret: 260
ReadObject failed Not enough memory available.

Profile Generic DoneXXXXXX-------------Closeing Connection-------------XXXXXX
7E:A0:07:03:41:53:56:A2:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:

poojash

4 years 10 months ago

how to solve this issue

how to solve this issue

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

You don't read all the data from the meter. You read only the first frame.

BR,
Mikko

poojash

4 years 10 months ago

Hi, What should I have to do

Hi, What should I have to do to solve this problem

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

The framework is handling this automatically. What example are you using?

BR,
Mikko

poojash

4 years 10 months ago

I have created code for Atmel

I have created code for Atmel controller by referring Arduino's client example. I can read all data and register object except ProfileGeneric.

Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

Check that you call com_readDataBlock in com_read. It will send Receiver Ready automatically.

BR,
Mikko

poojash

4 years 10 months ago

Yes I called com

Yes I called com_readDataBlock in com_read.

poojash

4 years 10 months ago

this is for loop in com

this is for loop in com_readDataBlock()
for (pos = 0; pos != messages->size; ++pos)
{
//Send data.
if ((ret = readDLMSPacket(connection,messages->data[pos], reply)) != DLMS_ERROR_CODE_OK)
{
printf("com_readDataBlock->1 ret: %d\n\r",ret);
return ret;
}
//Check is there errors or more data from server
while (reply_isMoreData(reply))
{
if ((ret = cl_receiverReady(&meterSettings, reply->moreData, &rr)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->2 ret: %d\n\r",ret);
return ret;
}
if ((ret = readDLMSPacket(connection,&rr, reply)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->3 ret: %d\n\r",ret);
return ret;
}
bb_clear(&rr);
}
}

poojash

4 years 10 months ago

Hi,

Hi,
When I read Association logical name using gxDLMSDirector with low authentication i observed that some profiles have 1=No Access. please check in Image attached. What is the meaning of that.

Image
Profile picture for user Kurumi

Kurumi

4 years 10 months ago

Hi,

Hi,

NoAccess means that you can't use those methods without a higher authentication level. For example with a profile generic object, you can't reset the buffer.

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