Hello. I would like to ask for your support. I am trying to read a meter from a Chinese brand. When making the connection without access level I can obtain the Type parameters AssociationLogicName and Data. But, when I try to login with the password using the values show in the image (example, -h 192.168.1.1 -p 4001 -c 32 -s 32767 -a Low -P ******* -w 1 -f 128 -t Verbose ), I get an error from the GXDIRECTOR application.
I very much appreciate your collaboration.
The frame generate is:
11:06:41 Send SNRM request.
TX: 7E A0 0A 00 02 FE FF 41 93 88 E7 7E
11:06:41 11:06:41.372 Sent 7E A0 0A 00 02 FE FF 41 93 88 E7 7E
11:06:42 11:06:42.293 Received 7E A0 23 41 00 02 FE FF 73 F3 28 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E
11:06:42
RX: 7E A0 23 41 00 02 FE FF 73 F3 28 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E
11:06:42 Send AARQ request.
TX: 7E A0 47 00 02 FE FF 41 10 52 B8 E6 E6 00 60 36 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 0A 80 08 32 32 32 32 32 32 32 32 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 62 1E 5D FF FF 10 D7 7E
11:06:42 11:06:42.294 Sent 7E A0 47 00 02 FE FF 41 10 52 B8 E6 E6 00 60 36 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 0A 80 08 32 32 32 32 32 32 32 32 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 62 1E 5D FF FF 10 D7 7E
11:06:43 11:06:43.419 Received 7E A0 4D 41 00 02 FE FF 30 C8 7A E6 E7 00 61 3C A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 01 A3 05 A1 03 02 01 01 A4 0A 04 08 20 20 20 D9 7C BD 1E C4 88 02 07 80 89 07 60 85 74 05 08 02 05 AA 02 80 00 BE 06 04 04 0E 01 06 01 28 B8 7E
11:06:43
RX: 7E A0 4D 41 00 02 FE FF 30 C8 7A E6 E7 00 61 3C A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 01 A3 05 A1 03 02 01 01 A4 0A 04 08 20 20 20 D9 7C BD 1E C4 88 02 07 80 89 07 60 85 74 05 08 02 05 AA 02 80 00 BE 06 04 04 0E 01 06 01 28 B8 7E
11:06:43 11:06:43.420 Sent 7E A0 0A 00 02 FE FF 41 53 84 21 7E
11:06:44 11:06:44.242 Received 7E A0 23 41 00 02 FE FF 73 F3 28 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E
11:06:44
RX: 7E A0 23 41 00 02 FE FF 73 F3 28 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E
11:06:44 11:06:44.243 Info Closing
11:06:44 11:06:44.243 Info Closed
This is a view from the error
This is a view from the error that I comment previously
Hi, Select the "Supported…
Hi,
Select the "Supported services" tab and remove Delta value encoding. I believe it might help.
BR,
Mikko
Thanks Mikko. I found the…
Thanks Mikko. I found the reason for the error, it corresponded to the fact that the meter uses Authentication and Encryption, in addition to not requiring the parameter Delta value.
Can you hellp to repeat the connection in the terminal using python, i found in the web that the Java Library have the following configuration to make the connection:
GXDLMSSecureClient cl = new GXDLMSSecureClient(true, 1, 1, Authentication.NONE, null, InterfaceType.WRAPPER);
cl.getCiphering().setSecurity(Security.ENCRYPTION);
cl.getCiphering().setSystemTitle(GXCommon.hexToBytes("4D4D4D0000BC614E"));
cl.getCiphering().setBlockCipherKey(GXCommon.hexToBytes("000102030405060708090A0B0C0D0E0F"));
cl.getCiphering().setAuthenticationKey(GXCommon.hexToBytes("D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF"));
But i can't found some of the functions in gurux python library. How can I make the connection?
Hi Mikko. I make the…
Hi Mikko. I make the connection in this way thorught the terminal:
self.replyBuff = bytearray(8 + 1024)
self.waitTime = 5000
self.media = GXNet(NetworkType.TCP, ip_address, port_address)
self.client = GXDLMSSecureClient(True)
self.client.useLogicalNameReferencing = True
self.client.clientAddress = client_address
self.client.serverAddress = server_address
self.client.authentication = Authentication.HIGH_GMAC
self.client.securitySuite = "Suite0"
self.client.ciphering.security = Security.AUTHENTICATION_ENCRYPTION
self.client.ciphering.systemTitle = GXByteBuffer.hexToBytes(system_title_value)
self.client.serverSystemTitle = GXByteBuffer.hexToBytes(server_system_title_value)
self.client.ciphering.authenticationKey = GXByteBuffer.hexToBytes(authentication_key_value)
self.client.ciphering.blockCipherKey = GXByteBuffer.hexToBytes(block_cipher_key_value)
self.trace = TraceLevel.INFO
self.iec = True
Hi, The Python library uses…
Hi,
The Python library uses the same methods as Java. Something like:
client = GXDLMSSecureClient(True, 1, 1, Authentication.NONE, InterfaceType.WRAPPER)
client.ciphering.security = Security.AUTHENTICATION_ENCRYPTION
client.serverSystemTitle = GXByteBuffer.hexToBytes("4D4D4D0000BC614E")
client.ciphering.blockCipherKey = GXByteBuffer.hexToBytes("000102030405060708090A0B0C0D0E0F")
client.ciphering.authenticationKey = GXByteBuffer.hexToBytes("D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF")
BR,
Mikko