Hi Gurux,
We are getting "getting Invalid Block number. It is 3 and it should be 1.
" exception while reading Billing Profile from meter. This error only coming for "1.0.98.1.0.255" remaining obiscode's are readed by JAVA DLMS implementation.
gurux Dlms version is 4.0.21
We didn't facing this issue while reading Billing Profile via Gurux DLMS Directory (9.0.23XX)
I am providing logs for your reference
TX: 00 01 00 30 00 01 00 20 D0 1E 30 00 00 00 05 B3 06 17 F3
F9 C0 07 95 66 4A 44 6A 19 FD 96 48 23 0A A9 AF F5 6F 6C AA D3
TX-PDU:
<!-- Decrypt data: C0 01 C1 00 07 01 00 62 01 00 FF 02 00
<GetRequest>
<GetRequestNormal>
# Priority: HIGH ServiceClass: CONFIRMED invokeID: 1
<InvokeIdAndPriority Value="C1" />
<AttributeDescriptor>
# PROFILE_GENERIC
<ClassId Value="0007" />
# 1.0.98.1.0.255
<InstanceId Value="0100620100FF" />
<AttributeId Value="02" />
</AttributeDescriptor>
</GetRequestNormal>
</GetRequest>
-->
<ded_GetRequest Value="3000000005B30617F3F9C00795664A446A19FD9648230AA9AFF56F6CAAD3" />
RX: 00 01 00 01 00 30 03 17 D4 82 03 13 30 00 00 00 02 05 D0
FD 9F 75 C6 61 7B 4E 27 62 7A 9F 00 A4 12 A8 D3 98 EE 59 C4 EF EA 09 F5 9A 20 3D 2D DF 71 D4 13 4C 33 70 D7 A7 EE E8 1D EE C7 C0 B0 22
9C 27 B9 1A 98 E6 6D 6E 3B 4F F9 42 6A 28 14 BA A5 19 C6 22 58 76 AD B8 13 3D 5C EA 3D AF 16 39 C5 B8 86 06 99 B1 AE F5 F1 1F 8B 75 4D
62 D6 F3 CA E5 86 5D 72 7B B5 4E 98 25 1E 7E 4E 75 B0 7C 6C 38 A9 11 D9 03 D5 FB 81 CB F0 BE F0 46 46 1E 28 45 40 4F 3C EE 26 5F 66 BB
F3 7C 74 51 0A 3D B9 1A 91 DE 50 7A 41 0A 32 47 78 75 F2 F8 AA A8 21 01 37 B5 51 46 B5 88 73 32 1E 9D 6C 7F 95 D4 D5 61 B2 51 5D 86 78
86 C8 88 A2 42 1C 7F 93 CD D0 74 3B D1 8D E5 D8 E2 2B 7D CD 89 FD 09 9D 4A AA F2 77 65 D7 D7 A3 B2 4C 43 0E 0B 21 C1 3A B7 AB 9C 55 B7
44 08 97 E1 D7 8B 06 49 00 AF 2D 50 11 D4 EF 7B AC 57 62 5B F9 24 B4 4C 71 2E EC 88 AC 6A 2F FD BA 86 09 50 22 8B 61 BF B3 75 C4 86 06
57 E7 8A 3A 2D 43 15 DE D4 39 D9 2C 85 B0 09 42 7C BA 2A AE 30 DC 5C B0 93 CE 7B F9 8C 4C 65 2F F4 8C D5 3C 7D 11 B3 FB D3 EF F1 90 47
73 6E E3 59 EB E5 37 52 F9 A7 B0 A8 D4 5F 8F 08 F0 2A 50 57 41 7B BF 11 7E FC A2 AC BB 57 51 DF E3 73 55 48 23 7A EC 68 E5 2D E4 50 10
88 7C 2F 6E F0 B5 CC 06 EE CA 61 34 DB D3 33 25 25 64 92 2D 6C 17 2A 3D 81 26 27 79 24 A0 3E 31 F2 5F 2A FF C9 65 D5 0C 05 76 C6 22 76
FE 6D C4 07 6D 05 BC B9 98 C2 05 11 24 9C B1 29 56 2A CA 2B 76 F1 28 A0 5B E9 B7 35 96 28 3D EF 3D D8 C0 FD 69 A0 FA 92 24 EE 3C 6C CB
39 C4 3C BA 33 87 CA 92 B5 9F E8 8E 55 EA 29 35 02 90 A8 82 30 9D B0 55 1D 7C 78 20 76 B7 AF DE 7E B5 5B 84 0D 61 1B A7 D6 F6 1F 50 AF
44 43 57 7B 64 CA D9 9A 6D 7A 06 7F 02 AB E7 08 FD CA 71 A6 2E E3 1C 41 14 86 42 72 FF 13 05 72 ED 81 62 00 EA 76 1B D3 48 82 44 C1 EB
85 B4 90 3F 9D 73 51 9A 2F 11 7D 09 4C 1E BE 3D 81 ED C4 DA 26 39 B5 35 05 84 5A AD 7B ED F3 4A BC 1F BA C2 51 F1 D6 CF 13 EB 13 37 85
A6 76 A5 A7 0E 66 B6 17 68 F5 A0 34 60 BE 73 94 5C A0 C3 74 2B C2 8D B9 E8 2E A8 A3 EE FD 4E C0 25 D4 8B 16 CA 05 81 44 A5 3E B3 91 77
C8 34 22 D0 F6 3A 9B 8D 96 0D A9 4B 29 30 7E C5 DE 4D EC C4 69 ED 43 3E 48 82 CB 08 1D F1 AE 84 5F 1A 09 F2 DE 36 DB 0C 71 33 48 67 4A
09 37 5D 65 26 11 27 B8 08 3E CB E2 BD 32 6C BE 1F 6A F0 62 AC 1B 49 51 B2 5C DF 18 A5 7B B3 F6 0D E5 84 F5 E2 85 CB 47 FB C3 8D 2F 31
25 B5 48 84 F4 7E E2 3B 15 41 78 84 C0 E9 1D 17 95 73 F3 EF D0 57 6A 9D 9F F8 CD CA 5D 1F D1 DB 9E EA 94 5F 98 14 02 43 ED 83 53 75 CD
03 CE D2 AC CA 64 3C 1F 0D 4B 8E 7F 10 1E 5B
RX-ERR: D4 82 03 13 30 00 00 00 02 05 D0 FD 9F 75 C6 61 7
B 4E 27 62 7A 9F 00 A4 12 A8 D3 98 EE 59 C4 EF EA 09 F5 9A 20 3D 2D DF 71 D4 13 4C 33 70 D7 A7 EE E8 1D EE C7 C0 B0 22 9C 27 B9 1A 98 E
6 6D 6E 3B 4F F9 42 6A 28 14 BA A5 19 C6 22 58 76 AD B8 13 3D 5C EA 3D AF 16 39 C5 B8 86 06 99 B1 AE F5 F1 1F 8B 75 4D 62 D6 F3 CA E5 8
6 5D 72 7B B5 4E 98 25 1E 7E 4E 75 B0 7C 6C 38 A9 11 D9 03 D5 FB 81 CB F0 BE F0 46 46 1E 28 45 40 4F 3C EE 26 5F 66 BB F3 7C 74 51 0A 3
D B9 1A 91 DE 50 7A 41 0A 32 47 78 75 F2 F8 AA A8 21 01 37 B5 51 46 B5 88 73 32 1E 9D 6C 7F 95 D4 D5 61 B2 51 5D 86 78 86 C8 88 A2 42 1
C 7F 93 CD D0 74 3B D1 8D E5 D8 E2 2B 7D CD 89 FD 09 9D 4A AA F2 77 65 D7 D7 A3 B2 4C 43 0E 0B 21 C1 3A B7 AB 9C 55 B7 44 08 97 E1 D7 8
B 06 49 00 AF 2D 50 11 D4 EF 7B AC 57 62 5B F9 24 B4 4C 71 2E EC 88 AC 6A 2F FD BA 86 09 50 22 8B 61 BF B3 75 C4 86 06 57 E7 8A 3A 2D 4
3 15 DE D4 39 D9 2C 85 B0 09 42 7C BA 2A AE 30 DC 5C B0 93 CE 7B F9 8C 4C 65 2F F4 8C D5 3C 7D 11 B3 FB D3 EF F1 90 47 73 6E E3 59 EB E
5 37 52 F9 A7 B0 A8 D4 5F 8F 08 F0 2A 50 57 41 7B BF 11 7E FC A2 AC BB 57 51 DF E3 73 55 48 23 7A EC 68 E5 2D E4 50 10 88 7C 2F 6E F0 B
5 CC 06 EE CA 61 34 DB D3 33 25 25 64 92 2D 6C 17 2A 3D 81 26 27 79 24 A0 3E 31 F2 5F 2A FF C9 65 D5 0C 05 76 C6 22 76 FE 6D C4 07 6D 0
5 BC B9 98 C2 05 11 24 9C B1 29 56 2A CA 2B 76 F1 28 A0 5B E9 B7 35 96 28 3D EF 3D D8 C0 FD 69 A0 FA 92 24 EE 3C 6C CB 39 C4 3C BA 33 8
7 CA 92 B5 9F E8 8E 55 EA 29 35 02 90 A8 82 30 9D B0 55 1D 7C 78 20 76 B7 AF DE 7E B5 5B 84 0D 61 1B A7 D6 F6 1F 50 AF 44 43 57 7B 64 C
A D9 9A 6D 7A 06 7F 02 AB E7 08 FD CA 71 A6 2E E3 1C 41 14 86 42 72 FF 13 05 72 ED 81 62 00 EA 76 1B D3 48 82 44 C1 EB 85 B4 90 3F 9D 7
3 51 9A 2F 11 7D 09 4C 1E BE 3D 81 ED C4 DA 26 39 B5 35 05 84 5A AD 7B ED F3 4A BC 1F BA C2 51 F1 D6 CF 13 EB 13 37 85 A6 76 A5 A7 0E 6
6 B6 17 68 F5 A0 34 60 BE 73 94 5C A0 C3 74 2B C2 8D B9 E8 2E A8 A3 EE FD 4E C0 25 D4 8B 16 CA 05 81 44 A5 3E B3 91 77 C8 34 22 D0 F6 3
A 9B 8D 96 0D A9 4B 29 30 7E C5 DE 4D EC C4 69 ED 43 3E 48 82 CB 08 1D F1 AE 84 5F 1A 09 F2 DE 36 DB 0C 71 33 48 67 4A 09 37 5D 65 26 1
1 27 B8 08 3E CB E2 BD 32 6C BE 1F 6A F0 62 AC 1B 49 51 B2 5C DF 18 A5 7B B3 F6 0D E5 84 F5 E2 85 CB 47 FB C3 8D 2F 31 25 B5 48 84 F4 7
E E2 3B 15 41 78 84 C0 E9 1D 17 95 73 F3 EF D0 57 6A 9D 9F F8 CD CA 5D 1F D1 DB 9E EA 94 5F 98 14 02 43 ED 83 53 75 CD 03 CE D2 AC CA 6
4 3C 1F 0D 4B 8E 7F 10 1E 5B
java.lang.IllegalArgumentException: Invalid Block number. It is 3 and it should be 1.
at gurux.dlms.GXDLMS.handleGetResponse(GXDLMS.java:3111)
at gurux.dlms.GXDLMS.getPdu(GXDLMS.java:3343)
at gurux.dlms.GXDLMS.handleGloDedResponse(GXDLMS.java:3697)
at gurux.dlms.GXDLMS.getPdu(GXDLMS.java:3410)
at gurux.dlms.GXDLMS.getData(GXDLMS.java:3872)
at gurux.dlms.GXDLMSClient.getData(GXDLMSClient.java:2844)
at gurux.dlms.client.GXDLMSReader.readDLMSPacket(GXDLMSReader.java:313)
at gurux.dlms.client.GXDLMSReader.readDataBlock(GXDLMSReader.java:237)
at gurux.dlms.client.GXDLMSReader.read(GXDLMSReader.java:538)
at io.github.resilience4j.retry.Retry.lambda$decorateFunction$7(Retry.java:355)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
RX-ERR PDU:
<!-- Decrypt data: C4 02 C1 00 00 00 00 03 00 82 02 F6 01 07 02 3F 09 0C 07 E8 02 01 FF 00 00 00 FF 01 4A 00 17 00 00 00 00 17 00 00 00
00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00
00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00
00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF
FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A
00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09
0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF
FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17
00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF
FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF
FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 06 00 00 00 4F 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00
00 00 00 17 00 00 00 00 17 00 00 00 00 02 3F 09 0C 07 E8 03 01 FF 00 00 00 FF 01 4A 00 17 3F 80 00 00 17 48 86 09 C0 17 47 B2 25 00 17
47 B5 B8 00 17 46 2E 10 00 17 47 9A 88 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 48 86 09 C0 17 47 B2 25 00 17
47 B5 B8 00 17 46 2E 10 00 17 47 9A 88 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 00 00 00 00 17 44 18 80 00 09 0C 07 E8 02 09
FF 0D 1E 00 FF 01 4A 00 17 44 16 00 00 09 0C 07 E8 02 0A FF 15 00 00 FF 01 4A 00 17 44 18 80 00 09 0C 07 E8 02 0A FF 00 00 00 FF 01 4A
00 17 44 13 80 00 09 0C 07 E8 02 0C FF 07 00 00 FF 01 4A 00 17 44 18 80 00 09 0C 07 E8 02 09 FF 0D 1E 00 FF 01 4A 00 17 00 00 00 00 09
0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF FF FF FF 01 4A 00 17 00 00 00 00 09 0C FF FF FF FF FF FF
FF FF FF 01 4A 00 17 00 00 00 00
<GetResponse>
<GetResponsewithDataBlock>
# Priority: HIGH ServiceClass: CONFIRMED invokeID: 1
<InvokeIdAndPriority Value="C1" />
<Result>
<LastBlock Value="00" />
<BlockNumber Value="00000003" />
<Result>
<RawData Value="0107023F090C07E80201FF000000FF014A001700000000170000000017000000001700000000170000000017000000001700000000170
0000000170000000017000000001700000000170000000017000000001700000000170000000017000000001700000000170000000017000000001700000000090CFFFF
FFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001
700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFF
FFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A0017000
00000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFF
FFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A00060000004
F170000000017000000001700000000170000000017000000001700000000023F090C07E80301FF000000FF014A00173F80000017488609C01747B225001747B5B80017
462E100017479A8800170000000017000000001700000000170000000017488609C01747B225001747B5B80017462E100017479A8800170000000017000000001700000
00017000000001744188000090C07E80209FF0D1E00FF014A001744160000090C07E8020AFF150000FF014A001744188000090C07E8020AFF000000FF014A0017441380
00090C07E8020CFF070000FF014A001744188000090C07E80209FF0D1E00FF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000090CFFFFFFFFFFFFFFF
FFF014A001700000000090CFFFFFFFFFFFFFFFFFF014A001700000000" />
</Result>
</Result>
</GetResponsewithDataBlock>
</GetResponse>
-->
<ded_GetResponse Value="300000000205D0FD9F75C6617B4E27627A9F00A412A8D398EE59C4EFEA09F59A203D2DDF71D4134C3370D7A7EEE81DEEC7C0B0229C27B91
A98E66D6E3B4FF9426A2814BAA519C6225876ADB8133D5CEA3DAF1639C5B8860699B1AEF5F11F8B754D62D6F3CAE5865D727BB54E98251E7E4E75B07C6C38A911D903D5
FB81CBF0BEF046461E2845404F3CEE265F66BBF37C74510A3DB91A91DE507A410A32477875F2F8AAA8210137B55146B58873321E9D6C7F95D4D561B2515D867886C888A
2421C7F93CDD0743BD18DE5D8E22B7DCD89FD099D4AAAF27765D7D7A3B24C430E0B21C13AB7AB9C55B7440897E1D78B064900AF2D5011D4EF7BAC57625BF924B44C712E
EC88AC6A2FFDBA860950228B61BFB375C4860657E78A3A2D4315DED439D92C85B009427CBA2AAE30DC5CB093CE7BF98C4C652FF48CD53C7D11B3FBD3EFF19047736EE35
9EBE53752F9A7B0A8D45F8F08F02A5057417BBF117EFCA2ACBB5751DFE3735548237AEC68E52DE45010887C2F6EF0B5CC06EECA6134DBD333252564922D6C172A3D8126
277924A03E31F25F2AFFC965D50C0576C62276FE6DC4076D05BCB998C20511249CB129562ACA2B76F128A05BE9B73596283DEF3DD8C0FD69A0FA9224EE3C6CCB39C43CB
A3387CA92B59FE88E55EA29350290A882309DB0551D7C782076B7AFDE7EB55B840D611BA7D6F61F50AF4443577B64CAD99A6D7A067F02ABE708FDCA71A62EE31C411486
4272FF130572ED816200EA761BD3488244C1EB85B4903F9D73519A2F117D094C1EBE3D81EDC4DA2639B53505845AAD7BEDF34ABC1FBAC251F1D6CF13EB133785A676A5A
70E66B61768F5A03460BE73945CA0C3742BC28DB9E82EA8A3EEFD4EC025D48B16CA058144A53EB39177C83422D0F63A9B8D960DA94B29307EC5DE4DECC469ED433E4882
CB081DF1AE845F1A09F2DE36DB0C713348674A09375D65261127B8083ECBE2BD326CBE1F6AF062AC1B4951B25CDF18A57BB3F60DE584F5E285CB47FBC38D2F3125B5488
4F47EE23B15417884C0E91D179573F3EFD0576A9D9FF8CDCA5D1FD1DB9EEA945F98140243ED835375CD03CED2ACCA643C1F0D4B8E7F101E5B" />
- Failed to execute command Billing Profile on Inva
lid Block number. It is 3 and it should be 1.
java.lang.IllegalArgumentException: Invalid Block number. It is 3 and it should be 1.
TX: 00 01 00 30 00 01 00 05 62 03 80 01 00
TX-PDU:
<ReleaseRequest>
<Reason Value="Normal" />
</ReleaseRequest>
RX: 00 01 00 01 00 30 00 17 63 15 80 01 00 BE 10 04 0E 08 00
06 5F 1F 04 00 00 18 1D 03 40 00 07
RX-PDU:
<ReleaseResponse>
<Reason Value="Normal" />
<InitiateResponse>
<NegotiatedDlmsVersionNumber Value="06" />
<ProposedConformance>
<ConformanceBit Name="Action" />
<ConformanceBit Name="SelectiveAccess" />
<ConformanceBit Name="Set" />
<ConformanceBit Name="Get" />
<ConformanceBit Name="BlockTransferWithSetOrWrite" />
<ConformanceBit Name="BlockTransferWithGetOrRead" />
</NegotiatedConformance>
<NegotiatedMaxPduSize Value="0340" />
<VaaName Value="0007" />
</InitiateResponse>
</ReleaseResponse>
Hi, The DLMS standard says…
Hi,
The DLMS standard says that the first block ID should be one and now your meter is returning block ID #3. You need to ask the meter vendor if there is a firmware update that fixes this.
BR,
Mikko
Hi Gurux, same profile reads…
Hi Gurux,
same Billing profile read working fine from gurux dlms directory software
Hi, If you can read this…
Hi,
If you can read this with GXDLMSDirector then you are doing something differently in your code or you are reading something else that resets the block number before reading the billing profile.
BR,
Mikko