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. Read ACE6000 Meters

Read ACE6000 Meters

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 keenangeorge , 13 July, 2016
Forums
Gurux.DLMS

Hi All

I am new to the Gurux library and im failing to understand where to specify the meter ip address and port in the code.

Code

GXDLMSClient client_0 = new GXDLMSClient();
client_0.UseLogicalNameReferencing = true;
client_0.InterfaceType = InterfaceType.HDLC;
client_0.ClientAddress = 16;
client_0.ServerAddress = 1;

Does the server address defines the meter ip address or am i looking at this wrong.

Profile picture for user Kurumi

Kurumi

9 years 11 months ago

Read ACE6000 Meters

Hi,

You can try access your meter with those settings:

GXDLMSClient client_0 = new GXDLMSClient();
client_0.UseLogicalNameReferencing = true;
client_0.InterfaceType = InterfaceType.HDLC;
client_0.ClientAddress = 1;
client_0.ServerAddress = GXDLMSClient.GetServerAddress(1, 0x7F);
client_0.Authentication = Authentication.Low;
client_0.Password = "ABCDEFGH";

BR,

Mikko

keenangeorge

9 years 11 months ago

In reply to Read ACE6000 Meters by Kurumi

Hi Mikko

Hi Mikko

Thanks for the reply.

The ACE6000 has Sparklet Modem and on certain APN.

I can connect to the APN and have the IP address of the meter.

So where do i specify this IP address of the meter and the Port.

If there is documentation please direct me to it.

Regards
Keenan

Profile picture for user Kurumi

Kurumi

9 years 11 months ago

Read ACE6000 Meters

Hi,

Download GXDLMSDirector and try to read your meter with it first.
You can get initial settings from here:
http://www.gurux.fi/GXDLMSDirectorExample

BR,

Mikko

keenangeorge

9 years 11 months ago

In reply to Read ACE6000 Meters by Kurumi

Hi Mikko

Hi Mikko

I can connect to the meter and read the meter however i am not sure where it stores the readings.

See below logs

02:16:10 PM Received data
7E A0 19 03 00 02 00 23 7E 38 AC E6 E7 00 C4 01 81 00 02 02 0F 00 16 06 59 2D 7E
02:16:10 PM Read object type Register index: 2
7E A0 1A 02 23 03 16 53 05 E6 E6 00 C0 01 81 00 03 01 01 09 25 00 FF 02 00 5F 07 7E
02:16:11 PM Received data
7E A0 18 03 00 02 00 23 90 9D 3D E6 E7 00 C4 01 81 00 06 00 00 00 00 7B DF 7E
02:16:11 PM Read object type Register index: 3
7E A0 1A 02 23 03 38 2F CD E6 E6 00 C0 01 81 00 03 01 01 09 26 00 FF 03 00 4B 03 7E
02:16:12 PM Received data
7E A0 19 03 00 02 00 23 B2 58 A0 E6 E7 00 C4 01 81 00 02 02 0F 02 16 1C 3A 27 7E
02:16:12 PM Read object type Register index: 2
7E A0 1A 02 23 03 5A 3B 8D E6 E6 00 C0 01 81 00 03 01 01 09 26 00 FF 02 00 93 1A 7E
02:16:13 PM Received data
7E A0 18 03 00 02 00 23 D4 BD 39 E6 E7 00 C4 01 81 00 06 00 00 00 00 7B DF 7E
02:16:53 PM Send Keep Alive

However i would like to im build a small tool just to read the load profile data and billing data.

Regards

Profile picture for user Kurumi

Kurumi

9 years 11 months ago

Read ACE6000 Meters

Hi,

Easiest way to start is you download Gurux.DLMS.Client.Example.Net client example from Github and start with that.
https://github.com/gurux/Gurux.DLMS.net

You can give ip address etc. as parameters something like this.
/m=ace /h=address /p=IP port

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

I am still not sure where to add the parameters

/m=ace /h=address /p=IP port

PLease assist.

Regards

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

I got it right i see it accept it as arguments from the cmd.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

It's good if you can access your meter. Please, let me know if you have any questions or problems.
Reading ACE6000 historical data is not implement in standard way and that might (will) cause some problems.
You will find more info from Forum.
BR,

Mikko

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

You also must set authentication to Low and set password.
Otherwise you do not see all the data.

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Thanks for the above.

Another question i have downloaded the OBIS code file name OBIS list v2.3_GK051026

if i for instance look at Active power + (QI + QIV)

This is what i get from the file.

com 1 b 1 255 255 255 S Li Active power+ (QI+QIV)

This is what i get from the XML file that example code generate.

<LogicalName>1.1.3.8.1.255</LogicalName>
<Description>Ch. 1 Sum Li Active power+ (QI+QIV) Time integral 1 Rate 1 (0 is total)</Description>

How do you obtain the one from another.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

OBIS codes

Hi,

All meters do not use same OBIS codes. This should be the idea, but they are not always used with older meters.
Can you check OBIS code from the manufacturer?

Buf if you want to read Ch. 1 Sum Li Active power+ (QI+QIV) Time integral 1 Rate 1 (0 is total),
you should use OBIS code : 1.1.3.8.1.255

BR,

Mikko

keenangeorge

9 years 10 months ago

In reply to OBIS codes by Kurumi

Thanks Mikko

Thanks Mikko

I have noticed that yes.

Do you perhaps have an example of how to read load profile by range i know the obis code.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

Usually you can use readByRange -method. This is not working on ACE6000 because
it's using non standard way.
Can you read all data and then filter non needed rows?

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Thanks do you have an example to read the entire register.

if i try and read the specific obis code i get a Read-Write denied error

Code

GXDLMSSecureClient dlms = new GXDLMSSecureClient();
dlms.CustomObisCodes = man.ObisCodes;
comm = new GXCommunicatation(dlms, media, iec, auth, pw);
comm.Trace = trace;
comm.InitializeConnection(man);
GXDLMSObjectCollection objects = null;
GXDLMSRegister it = new GXDLMSRegister("1.1.1.29.0.255");
Object val_ = comm.Read(it, 3);
Console.WriteLine("This is value 1: " + val_);
// Value
val_ = comm.Read(it, 2);
Console.WriteLine("This is value 2: " + val_);
// Obis Code
val_ = comm.Read(it, 1);
Console.WriteLine("This is value 3: " + val_);

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

I got the above working.

However i would like to understand the profile generic register.

When reading a specific profile generic register obis code 1.0.98.134.1.255 it returns an buffer of data how do i parse out the data from the buffer.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

ACE6000 returns non-standard data for Profile Generic objects. There is a document available that describes those columns. LogicalDevice_5.35_OBIS_SL761_Dec8-09.pdf
You should ask this doc from the vendor.

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

I have the document however i am still confused getting the data out.

Example Reading Obis code 0;1;98;1;0;255

Contain buffer

Attribute 2: buffer
Access rights (clients)
Attribute description
SEQUENCE OF // 1 elements
{
SEQUENCE // 66 elements
{
EOBStatus (Att. Id: 0, Abs. Number: 2)
AllTotalEnergies (Att. Id: 2, Abs. Number: 3)
AllEnergyRates (Att. Id: 2, Abs. Number: 7)
}

Attribute 3: capture_objects
Here below, the details of each index in the array:
Index 1 (EOBStatus): Obis_code = 1;0;98;134;1;255, Class_id = 4, Attribute_index = 0, Data_index = 0
Index 2 (AllTotalEnergies): Obis_code = 0;0;98;133;2;255, Class_id = 7, Attribute_index = 2, Data_index = 0

How do i get the All total energies.

Thanks for your assistance.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

There are several structures on the data buffer. Each structure is shown as own object array.
You can access right data something like this.
object[] arr = data as object[];
(arr[0] as object[])[0].

If I remember right, you can find date time from that column. It's shown on byte array, so you must convert it to the date time using GXDLMSClient.ChangeType -method.

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Do you perhaps have an example.

I have tried the following now.

GXDLMSProfileGeneric it = new GXDLMSProfileGeneric("0.1.98.1.0.255");
Object val__ = comm.Read(it, 2);
object[] arr = val__ as object[];
Console.WriteLine(arr[0]);

It give the following.
Read capture ojects first.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi,

This error means that you should read attribute index (captured columns first).
Read columns and then you can read buffer.
Like this.

Read(it, 3);
Read(it, 2);

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Apologies for all the questions.

I have done as you mentioned above code:

GXDLMSProfileGeneric it = new GXDLMSProfileGeneric("0.1.98.1.0.255");
Object data = comm.Read(it, 3);
data = comm.Read(it, 2);
object[] arr = data as object[];
Console.WriteLine((arr[0] as object[])[0]);

However this is giving me this.

Gives me System.Object[].

Regards

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Do you perhaps have some documentation that can assist me with this or point me in the right direction please.

Regards
Keenan George

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

Did you perhaps had a change to look at my request above.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

Read ACE6000 Meters

Hi Keenan George,

Sorry for slow reply. It's summer holiday season on Finland. :-)

You should ask this doc from Itron.
Inside of that object array is received data. I have answer for this question here:
http://www.gurux.fi/node/4970

You will get data from inside of that Object array.

BR,

Mikko

keenangeorge

9 years 10 months ago

Hi Mikko

Hi Mikko

No Worries Hope you enjoying the Holiday.

Have another question for you when sending a SNRM Request 7E A0 08 02 23 03 93 3E 74 7E
Meter Reply with 7E A0 23 03 00 02 00 23 73 C0 48 81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01 CE 6A 7E etc........

Is there any kind of documentation that explain what this mean.

Regards

Profile picture for user Kurumi

Kurumi

9 years 10 months ago

SNRM

Hi,

This is described on standard IEC 62056-46 Data link layer using HDLC protocol.
There is RX and TX size and TX and RX Windows count.

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