Reading an attribute

The COSEM standard specifies a model for the information stored in the meter. The information is organized in objects, with attributes and methods. Attributes represents values that can be read and/or written. Attributes are identified by an AttributeId (a positive number). Methods represents actions that can be performed on objects. They are identified by a MethodId (a positive number). The first attribute of each object (AttributeId = 1) is its logical name, also called InstanceId. It is a 6 octets string. Objects of the same nature (for example registers) are instances of a class (for example the register class). There are several classes, each class is identified by a ClassId (positive number). The model is described in details in the DLMS Blue Book.

To read an attribute value we have to specify its ClassId, InstanceId and AttributeId. Here is the GetRequest reading the clock value attribute:

<GetRequest>
  <GetRequestNormal>
    <InvokeIdAndPriority Value="C1" />
    <AttributeDescriptor>
      <ClassId Value="0008" />
      <InstanceId Value="0000010000FF" />
      <AttributeId Value="02" />
    </AttributeDescriptor>
  </GetRequestNormal>
</GetRequest>

The AttributeDescriptor specifies the ClassId of the selected object (8), the InstanceId (also called logical name, 0000010000FF) and the AttributeId (2). The corresponding response could be:

<GetResponse>
  <GetResponsenormal>
    <InvokeIdAndPriority Value="C1" />
    <Result>
      <Data>
        <OctetString Value="07D2060A01150F1F00FF8880" />
      </Data>
    </Result>
  </GetResponsenormal>
</GetResponse>

The clock value is returned as a 12 octets string:

07D2060A01150F1F00FF8880