Profile Generic - Python

5 posts / 0 new
Last post
jonasfoyth
Profile Generic - Python

Hello,

I create a test to read a Profile generic of a meter (Python), but the result of read is a row of zeroes. The script :

def readProfile(reader, count=24):
rows = []
try:
loadProfile = reader.client.settings.objects.findByLN(ObjectType.PROFILE_GENERIC, '1.0.99.1.0.255')
captureObjects = reader.read(loadProfile, 3)
capturePeriod = reader.read(loadProfile, 4)
sortMethod = reader.read(loadProfile, 5)
sortObject = reader.read(loadProfile, 6)
entriesInUse = reader.read(loadProfile, 7)
entries = reader.read(loadProfile, 8)
BeginOfreadedEntries = entriesInUse - count - 1
rows = reader.readRowsByEntry(loadProfile, BeginOfreadedEntries, count)
except Exception as e:
print(e)
return rows

Any alternative way to read a Profile Generic by entry?

Kurumi
Kurumi's picture

Hi,

All meters don't implement readRowsByEntry. You can also try with readRowsByRange.

Try to read one row. Use values 1 and 1
reader.readRowsByEntry(loadProfile, 1, 1)

The start index is usually one-based. There are some meters that are using zero for first row and for this reason zero must accept for start index.

BR,
Mikko

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

jonasfoyth

I have tried use Read by range, read all Profile buffer (reader.read(loadProfile, 2)) and the result is the same.

For compare, i use GXDLMSDirector and read the same thing and works, using the same security configuration:

self.media = GXNet(NetworkType.UDP, METER_IP, PORT)
self.client = GXDLMSClient(True)
self.client.interfaceType = InterfaceType.WRAPPER
self.client.serverAddress = int(1)
self.client.authentication = Authentication['LOW']
self.client.password = 'xxxxx'
self.client.useLogicalNameReferencing = True

Reading first 'one row' the result is the same too.

The colums of row are: [date, eventid, event_description, OBIS1, OBIS2, OBIS3, OBIS4]

for all types of read, the result are:

row: [01/01 (date wrong) hour ok, event_id ok, event_description a number, 0 (not change), 0 (not change) , 0 (not change),0 (not change)]

jonasfoyth

The request made by the readbyentry function is correct, the meter responds the information contained in meter. The image attached shows the analysis made via wireshark (left) and the result of program (right). It's possible be a bug?

Image: 
Kurumi
Kurumi's picture

Hi,

There was an issue with register scaler. I added issue from this.
http://gurux.fi/node/14848

This is now fixed and a new version is released.

BR,
Mikko

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