DMLS and E450

13 posts / 0 new
Last post
kreutpet
DMLS and E450

Hi ,

first of all many thanks for this greate implementation of meter reading tool and libraries.

I am currently try to integrate a E450 into my openhab.
i started with the python library but now wanted to explore a bit more with the DLMSDirector
The utility configured the meter in PUSH mode to send data every 5 seconds with baud rate 2400 8NoneOne.

I used the DLMSDirector to first see what data i receive.
The serial monitor shows that the E450 is sending data.

my device configuration in DLMSDirector is as follows:
<?xml version="1.0" encoding="utf-8"?>
<GXDLMSDevice xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="Gurux1">
<Password />
<SecuritySuite>1</SecuritySuite>
<KeyAgreementScheme>1</KeyAgreementScheme>
<SystemTitle />
<ServerSystemTitle />
<DedicatedKey />
<BlockCipherKey />
<AuthenticationKey />
<Challenge />
<MacDestinationAddress>0</MacDestinationAddress>
<InactivityTimeout>120</InactivityTimeout>
<Name>E450</Name>
<Verbose>true</Verbose>
<Conformance>12220416</Conformance>
<Manufacturer>LGZ</Manufacturer>
<HDLCAddressing>0</HDLCAddressing>
<UseProtectedRelease>false</UseProtectedRelease>
<MediaType>Gurux.Serial.GXSerial</MediaType>
<MediaSettings>&lt;Port&gt;COM1&lt;/Port&gt;&lt;Bps&gt;2400&lt;/Bps&gt;</MediaSettings>
<UseLN>true</UseLN>
<Objects2 />
</GXDLMSDevice>

on the serail monitor i do receive the following hex:
7EA084CEFF0313128BE6E700E04000010000700F000A58410C07E50607010D2937FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000AC687E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A58420C07E50607010D2A00FF800000020E010E020412002809060009190900FF0F02120000020412002809060009190900FF0F01120000020412000309060101010801FF0F02120000020412000309060101010802FF0F02120000020412000309060101020801FF0F0212000086007E7EA07DCEFF0313D045E040000200006C020412000309060101020802FF0F02120000020412000309060101050801FF0F02120000020412000309060101050802FF0F021200000204120003090601010608C07B02127EA084CEFF0313128BE6E700E04000010000700F000A58430C07E50607010D2A05FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000A1D27E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A58440C07E50607010D2A0AFF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F0212000029987E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A58450C07E50607010D2A0FFF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000BD017E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A58460C07E50607010D2A14FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000473D7E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A58470C07E50607010D2A19FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000A5FD7E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F02120000020412000309060101067EA084CEFF0313128BE6E700E04000010000700F000A58480C07E50607010D2A1EFF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F0212000000367E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F021200000204120003097EA084CEFF0313128BE6E700E04000010000700F000A58490C07E50607010D2A23FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000C7297E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A584A0C07E50607010D2A28FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000D1A77E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A584B0C07E50607010D2A2DFF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F02120000453E7E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906017EA084CEFF0313128BE6E700E04000010000700F000A584C0C07E50607010D2A32FF800000020E010E020412002809060008190900FF0F02120000020412002809060008190900FF0F01120000020412000109060000600100FF0F02120000020412000309060100010700FF0F02120000020412000309060100020700FF0F0212000021C67E7EA07DCEFF0313D045E040000200006C020412000309060101010800FF0F02120000020412000309060101020800FF0F02120000020412000309060101050800FF0F0212000002041200030906

if i now connect with above configutation the trace
GXDLMSDirector 8.2.2106.0701
Log created 13:16:18
13:19:12 Initializing serial connection.
13:19:12 01:19:12.291 Info Opening
13:19:12 01:19:12.291 Info Einstellungen für die serielle Schnittstelle: Portname: COM1 Baudrate: 2400 Daten Bits: 8 Parität: None Stopp-Bits: One Ablaufsteuerung: None Eop: None
13:19:12 01:19:12.746 Info Open
13:19:13 Send SNRM request.
7E A0 07 03 21 93 0F 01 7E
13:19:13 01:19:13.761 Sent 7E A0 07 03 21 93 0F 01 7E
13:19:13 01:19:13.776 Received 7E
13:19:13 01:19:13.776 Received 7E
13:19:13 01:19:13.776 Received A0
...

What needs to be done to get the read data visualized in the right way?
To my understanding the objects need to be defined somewhere.
The menu to read these data from the E450 is not active.

What information is needed from my utility to be able to decode the informaiton in the right way.

When i connect to the device with the DLMSDirector the trace is showing that i receive data.
The status bat shows connecting. in that status i am not able to disconnect the device.
Is that the intend scenario? i cannot somehow not disconnect the device configured in PUSH mode

thanks
peter

kreutpet

I got in the meantime a
CONSUMER INFORMATION INTERFACE (CII) SPECIFICATION
from my utility that is written by L&G

let me know if you need this document to better understand the customer interface protocol

Kurumi
Kurumi's picture

Hi Peter,

Your meter is sending Push notifications and you don't need to connect to the meter. You try to connect to the meter with GXDLMSDirector and the meter doesn't allow it with those settings.

This is the message that your meter is sending in XML format.
http://www.gurux.fi/GuruxDLMSTranslator?pdu=0F000A58430C07E50607010D2A05...

You can use GetData method of the GXDLMSClient to find the data from the byte stream and convert it.
Check Push listener example. It's listening the TCP/IP connection, but it's easy to start listen serial port.
https://github.com/Gurux/Gurux.DLMS.Net/tree/master/Gurux.DLMS.Push.List...

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

kreutpet

Hi Mikko,

many thanks for the responds.
I actually started with the PUSH listen client in python. and yes i did the translation already.
Unfortunately the translator shows other data as been configured by the utility.
i asked my utility to give some evidence what objects are send.
According the utility, see attached image1, the object list every 5 seconds is much longer.

The is a second object list configured to be send every minute.

Does this mean that the other objects are then in the other PDUs?
And that i need to translate each PDU to separately ?

I also see that the actual values <UInt16 Value="0000" /> are all zero. That con not be the case.
Or do i misinterpret the results of the translator.

thx Peter

Image: 
kreutpet

hi Mikko,

i tested the python
~/Gurux.DLMS.Python-master/Gurux.DLMS.Push.Listener.Example.python# python3 main.py -S /dev/ttyUSB0:2400:8None1

the code in the python listener is actually not reaching the code to translate the received data to xml
try:
if not self.client.getData(self.reply, data, self.notify):
self.reply.clear()
#If all data is received.
if self.notify.complete:

so we do not receive a notify.complete.

Any hint why the data are not considered to be complete to they can be passed to the xml translation.
thx

kreutpet

Hi Mikko,

just checked self.notify.complete value
if never get true.

python3 main.py -S /dev/ttyUSB0:2400:8None1
gurux_dlms version: 1.0.102
gurux_net version: 1.0.17
gurux_serial version: 1.0.15
/dev/ttyUSB0:2400 8NONE1
Press any key to close the application.
Media state changed. MediaState.OPENING
trace:07:57:47 TraceTypes.INFO Settings: Port: /dev/ttyUSB0 Baud Rate: 2400 Data Bits: 8 Parity: Parity.NONE Stop Bits: 0 Eop:126
Media state changed. MediaState.OPEN
New data is received. /dev/ttyUSB0:0B
Data complete:False
New data is received. /dev/ttyUSB0:00 02 07 00 FF 0F 02 12 00 00 D8 C3 7E 7E A0 7D CE FF
Data complete:False
New data is received. /dev/ttyUSB0:03 13 D0 45 E0 40 00 02 00 00 6C 02 04 12 00 03 09 06 01 01
Data complete:False
New data is received. /dev/ttyUSB0:01 08 00 FF 0F 02 12 00 00 02 04 12 00 03 09 06 01 01 02 08
Data complete:False
New data is received. /dev/ttyUSB0:00 FF 0F 02 12 00 00 02 04 12 00 03 09 06 01 01 05 08 00 FF
Data complete:False
New data is received. /dev/ttyUSB0:0F 02 12 00 00 02 04 12 00 03 09 06 01 01 06 08 00 FF 0F 02
Data complete:False
New data is received. /dev/ttyUSB0:12 00 00 02 04 12 00 03 09 06 01 01 07 08 00 FF 0F 02 12 00
Data complete:False
New data is received. /dev/ttyUSB0:00 02 04 12 00 03 09 06 01 01 08 08 00 FF 0F 02 12 00 00 C1
Data complete:False
New data is received. /dev/ttyUSB0:95 7E 7E A0 8A CE FF 03 13 AA EA E0 C0 00 03 00 00 79 02 04
Data complete:False
New data is received. /dev/ttyUSB0:12 00 03 09 06 01 70 7B 02 F2
Data complete:False

i am using the
https://github.com/Gurux/Gurux.DLMS.Python/tree/master/Gurux.DLMS.Push.L...

some how the notify is not informed that the message are completed

thx

Kurumi
Kurumi's picture

Hi,

I check the Python with your data and let you know later today.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Kurumi
Kurumi's picture

Hi,

The reason why you don't get the data is simple. Meter sends data using General Block Transfer and the Last block is False. Streaming is also true, so you need to wait until the meter has sent all the frames.
Now you have only the first frame. Data is not complete and for that reason, false is returned.

There is not actual data yet. Push objects are sent at the beginning of data and those zeroes are version numbers of the COSEM objects.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

kreutpet

hi Mikko,

thanks for clarification.
According to the utility configuration the frame are send every 5 sec and each minute another set is send.

If the complete message is distributed over multiple frame i would assume that at least every minute all necessary frames to complete the message should have been send.
But this seems no to be the case.
The push listen client is running for 20 minutes and self.notify.complete never get true.
is there any parameter to give to the push client to recognize the end of the last frame?

Unfortunately i can not attache a log file.
so here a past

[Log removed by Mikko to make this easier to read.]

Kurumi
Kurumi's picture

Hi,

In the trace that you post the meter sends only the first two frames. One frame is missing.
Complete is never set to true because all the data is not received
Can you ask the meter vendor if there is a firmware update available for your meter?
I hope that fixes the problem.

I'll remove the trace to make this easier to read.
BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

kreutpet

Many thanks Mikko to look into this.
to be able to explain this to my utility i would to better understand what is missing.
What would be the content of the missing frame?
Is it the frame that describes the object list or is it the frame with object values?

thx peter

Kurumi
Kurumi's picture

Hi Peter.

I believe that there is an issue with the meter. Ask them to update the latest firmware to the meter.
Meter is not sent all the data. Only the two first frames are received and there is data missing.
If they report this to the manufacturer they get an update to the firmware.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

kreutpet

Utility confirmed that the latest version is already installed.
Version is
V93.12.10.12.17
According utility the smart-me can read data.
Acually i was expecting these issues. Everybody claims that there is no problem on their side. ;-)
I will try to document the issue as the utility seems to have litle knowledge on the protocol.
I need to prove them that the data are sended wrong. It looks like they are not able to verify.
Br
Peter