Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Forums
  3. Omnipower 2 RS485 GMAC Maintenance Role

Omnipower 2 RS485 GMAC Maintenance Role

Forum Rules

Before commenting read Forum rules

Don't comment the topic if you have a new question.

You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.

By PhysicsLow , 29 May, 2020
Forums
DLMSDirector

Hi

I would highly appreciate if you could make me a bit wiser...

SITUATION
I try to connect with GXDLMSDirector to a Omnipower 2 meter on RS485.
-Connection with public association works fine
-Connection with LLS works fine
-Connection with GMAC (Maintenance Role) fails. See below.

QUESTIONS
--Do you agree on my choice for <SystemTitle>4B414D4501E904D2</SystemTitle> ?
--I did not specify any Password. Where does <Password>mR3Vs57qW5rOSoeFK50bdw==</Password> come from?
--Any hints what went wrong?

SETTINGS

<?xml version="1.0" encoding="utf-8"?>
<GXDLMSDevice xmlns:xsd="http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xmlns="Gurux1">
<Authentication>HighGMAC</Authentication>
<Password>mR3Vs57qW5rOSoeFK50bdw==</Password>
<Security>AuthenticationEncryption</Security>
<SystemTitle>4B414D4501E904D2</SystemTitle>
<ServerSystemTitle />
<DedicatedKey />
<BlockCipherKey>71DCCED9819C01EA7A00B329F1DE305D</BlockCipherKey>
<AuthenticationKey>B3CB39FED5E7B6BC3105A168FD5DFE26</AuthenticationKey>
<InvocationCounter>752</InvocationCounter>
<FrameCounter>0.2.43.1.8.255</FrameCounter>
<Challenge />
<PhysicalAddress>16</PhysicalAddress>
<ClientAddress>22</ClientAddress>
<StartProtocol>DLMS</StartProtocol>
<MaxInfoTX>1010</MaxInfoTX>
<MaxInfoRX>1010</MaxInfoRX>
<InactivityTimeout>120</InactivityTimeout>
<Name>Omnipower 2 GMAC</Name>
<Conformance>4198429</Conformance>
<Manufacturer>KAM</Manufacturer>
<HDLCAddressing>0</HDLCAddressing>
<UseProtectedRelease>false</UseProtectedRelease>
<MediaType>Gurux.Serial.GXSerial</MediaType>
<MediaSettings>&lt;Port&gt;COM10&lt;/Port&gt;</MediaSettings>
<UseLN>true</UseLN>
<Objects2 />
</GXDLMSDevice>

CONNECTION ATTEMPT ENDING WITH "Invalid password. Server to Client challenge do not match."

XML TRACE

15:06:13
<HDLC len="1F" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="93" />
<PDU>
<Snrm>
<MaxInfoTX Value="1010" />
<MaxInfoRX Value="1010" />
<WindowSizeTX Value="1" />
<WindowSizeRX Value="1" />
</Snrm>
</PDU>
</HDLC>

15:06:13
<HDLC len="1F" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="73" />
<PDU>
<Ua>
<MaxInfoTX Value="1010" />
<MaxInfoRX Value="1010" />
<WindowSizeTX Value="1" />
<WindowSizeRX Value="1" />
</Ua>
</PDU>
</HDLC>
Duration: 82

15:06:13
<HDLC len="2A" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="10" />
<PDU>
<AssociationRequest>
<ApplicationContextName Value="LN" />
<InitiateRequest>
<ProposedDlmsVersionNumber Value="06" />
<ProposedConformance>
<ConformanceBit Name="Action" />
<ConformanceBit Name="SelectiveAccess" />
<ConformanceBit Name="Set" />
<ConformanceBit Name="Get" />
<ConformanceBit Name="BlockTransferWithGetOrRead" />
<ConformanceBit Name="GeneralProtection" />
</ProposedConformance>
<ProposedMaxPduSize Value="FFFF" />
</InitiateRequest>
</AssociationRequest>
</PDU>
</HDLC>

15:06:14
<HDLC len="38" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="30" />
<PDU>
<AssociationResponse>
<ApplicationContextName Value="LN" />
<AssociationResult Value="00" />
<ResultSourceDiagnostic>
<ACSEServiceUser Value="00" />
</ResultSourceDiagnostic>
<InitiateResponse>
<NegotiatedDlmsVersionNumber Value="06" />
<NegotiatedConformance>
<ConformanceBit Name="Action" />
<ConformanceBit Name="SelectiveAccess" />
<ConformanceBit Name="Set" />
<ConformanceBit Name="Get" />
<ConformanceBit Name="BlockTransferWithGetOrRead" />
</NegotiatedConformance>
<NegotiatedMaxPduSize Value="03EF" />
<VaaName Value="0007" />
</InitiateResponse>
</AssociationResponse>
</PDU>
</HDLC>
Duration: 159

15:06:14
<HDLC len="14" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="52" />
<PDU>
<GetResponse>
<GetResponseNormal>
<InvokeIdAndPriority Value="C1" />
<Result>
<Data>
<UInt32 Value="000002F9" />
</Data>
</Result>
</GetResponseNormal>
</GetResponse>
</PDU>
</HDLC>
Duration: 79

15:06:14
<HDLC len="9" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="53" />
<DisconnectRequest>
</DisconnectRequest>
</HDLC>

15:06:14
<HDLC len="9" >
<TargetAddress Value="10" />
<SourceAddress Value="10" />
<FrameType Value="73" />
<Ua>
</Ua>
</HDLC>
Duration: 32

15:06:14
<HDLC len="1F" >
<TargetAddress Value="10" />
<SourceAddress Value="16" />
<FrameType Value="93" />
<PDU>
<Snrm>
<MaxInfoTX Value="1010" />
<MaxInfoRX Value="1010" />
<WindowSizeTX Value="1" />
<WindowSizeRX Value="1" />
</Snrm>
</PDU>
</HDLC>

15:06:14
<HDLC len="1F" >
<TargetAddress Value="16" />
<SourceAddress Value="10" />
<FrameType Value="73" />
<PDU>
<Ua>
<MaxInfoTX Value="1010" />
<MaxInfoRX Value="1010" />
<WindowSizeTX Value="1" />
<WindowSizeRX Value="1" />
</Ua>
</PDU>
</HDLC>
Duration: 95

15:06:14
<HDLC len="6A" >
<TargetAddress Value="10" />
<SourceAddress Value="16" />
<FrameType Value="10" />
<PDU>
<AssociationRequest>
<ApplicationContextName Value="LN_WITH_CIPHERING" />
<CallingAPTitle Value="4B414D4501E904D2" />
<SenderACSERequirements Value="1" />
<MechanismName Value="HighGMAC" />
<CallingAuthentication Value="017267411A2F6D12442E684D5109600C" />
<glo_InitiateRequest Value="30000002FA05F9CBDD3FB661187B2507AF43D1C2346F95F31E79264D697F50" />
</AssociationRequest>
</PDU>
</HDLC>

15:06:14
<HDLC len="88" >
<TargetAddress Value="16" />
<SourceAddress Value="10" />
<FrameType Value="30" />
<PDU>
<AssociationResponse>
<ApplicationContextName Value="LN_WITH_CIPHERING" />
<AssociationResult Value="00" />
<ResultSourceDiagnostic>
<ACSEServiceUser Value="0E" />
</ResultSourceDiagnostic>
<RespondingAPTitle Value="4B414D4501E904D2" />
<ResponderACSERequirement Value="1" />
<MechanismName Value="HighGMAC" />
<RespondingAuthentication Value="080491CB8DF98537A4B2948A81119664FE87902C61658FDAB3F16D1A78690D8F" />
<glo_InitiateResponse Value="300000020CAA22CFCB289C36B902AA5AB8DA4366EB518378D0A60B21D84146" />
</AssociationResponse>
</PDU>
</HDLC>
Duration: 300

15:06:14
<HDLC len="47" >
<TargetAddress Value="10" />
<SourceAddress Value="16" />
<FrameType Value="32" />
<PDU>
<GeneralGloCiphering>
<SystemTitle Value="4B414D4501E904D2" />
<CipheredService Value="30000002FD0D4DFDE2B853C6C8A02F1CB7AFD60B51D56BCB0A2B4D59B270B0F8C2B9211AAC857044C005B0CF98F54BA4AC" />
</GeneralGloCiphering>
</PDU>
</HDLC>

15:06:14
<HDLC len="2E" >
<TargetAddress Value="16" />
<SourceAddress Value="10" />
<FrameType Value="52" />
<PDU>
<GeneralGloCiphering>
<SystemTitle Value="4B414D4501E904D2" />
<CipheredService Value="300000020D99C15314B79B179BD590FB1718D6F2AF76" />
</GeneralGloCiphering>
</PDU>
</HDLC>
Duration: 160

HEX TRACE

15:23:56 Send SNRM request.
TX: 7E A0 20 21 21 93 FE 6F 81 80 14 05 02 03 F2 06 02 03 F2 07 04 00 00 00 01 08 04 00 00 00 01 0A 75 7E
15:23:56
RX: 7E A0 20 21 21 73 F0 88 81 80 14 05 02 03 F2 06 02 03 F2 07 04 00 00 00 01 08 04 00 00 00 01 0A 75 7E
Duration: 98
15:23:56 Send AARQ request.
TX: 7E A0 2B 21 21 10 78 19 E6 E6 00 60 1D A1 09 06 07 60 85 74 05 08 01 01 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 40 10 1D FF FF A5 8B 7E
15:23:56
RX: 7E A0 39 21 21 30 AD C2 E6 E7 00 61 82 00 29 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 10 1D 03 EF 00 07 44 36 7E
Duration: 127
15:23:56
RX: 7E A0 15 21 21 52 DE 9A E6 E7 00 C4 01 C1 00 06 00 00 02 FE 3C 35 7E
Duration: 79
15:23:56 Disconnect request
TX: 7E A0 07 21 21 53 80 71 7E
15:23:56
RX: 7E A0 07 21 21 73 82 50 7E
Duration: 31
15:23:56 Send SNRM request.
TX: 7E A0 20 21 2D 93 5E C6 81 80 14 05 02 03 F2 06 02 03 F2 07 04 00 00 00 01 08 04 00 00 00 01 0A 75 7E
15:23:57
RX: 7E A0 20 2D 21 73 53 2D 81 80 14 05 02 03 F2 06 02 03 F2 07 04 00 00 00 01 08 04 00 00 00 01 0A 75 7E
Duration: 95
15:23:57 Send AARQ request.
TX: 7E A0 6B 21 2D 10 6F A6 E6 E6 00 60 5D A1 09 06 07 60 85 74 05 08 01 03 A6 0A 04 08 4B 41 4D 45 01 E9 04 D2 8A 02 07 80 8B 07 60 85 74 05 08 02 05 AC 12 80 10 1C 75 55 66 10 1E 3B 25 35 31 62 6C 21 01 23 51 BE 23 04 21 21 1F 30 00 00 02 FF 0E 1C 90 32 C6 2D 38 CB 5C 9A E5 BF D3 F0 34 F9 E0 2B 81 8E 13 1B A1 A2 E9 7F 08 36 7E
15:23:57
RX: 7E A0 89 2D 21 30 92 06 E6 E7 00 61 82 00 79 A1 09 06 07 60 85 74 05 08 01 03 A2 03 02 01 00 A3 05 A1 03 02 01 0E A4 0A 04 08 4B 41 4D 45 01 E9 04 D2 88 02 07 80 89 07 60 85 74 05 08 02 05 AA 22 80 20 67 CC BC 97 68 1D 27 7A CC 8A 64 66 EC 61 35 B8 ED 6C 8B FD 98 6F 4F 37 A0 A3 80 13 79 97 51 45 BE 23 04 21 28 1F 30 00 00 02 0E 86 5F F5 A4 43 EC 41 D0 78 19 4A DA FE EB E7 E7 F8 92 51 8D FD 2A 3B 4A DB 88 ED 9C 7E
Duration: 303
15:23:57 Authenticating.
TX: 7E A0 48 21 2D 32 E1 0E E6 E6 00 DB 08 4B 41 4D 45 01 E9 04 D2 31 30 00 00 03 02 C4 B7 89 B8 E0 BA EB 6B D5 81 F3 29 42 56 2E 05 7F FB 47 0F 5E 72 20 1C FF A9 73 16 96 C5 D1 4F 5C 2C 24 B4 D6 5A 8D 69 EC 22 0E 75 22 D5 7E
15:23:57
RX: 7E A0 2F 2D 21 52 21 AF E6 E7 00 DB 08 4B 41 4D 45 01 E9 04 D2 82 00 16 30 00 00 02 0F BE 70 9C DE F6 FC 61 AD FD 77 88 B0 92 61 60 96 77 5A EA 7E
Duration: 158

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

The password is an encrypted empty password. It's not used here.
We have only old Omnipower and it doesn't support GMAC. Can you connect with manufacture tool? What I'm afraid here is that you must use a custom challenge because meter accepts data, but the ciphered challenge is wrong.

BR,
Mikko

PhysicsLow

5 years 11 months ago

Hi,

Hi,

Thanks a lot for your answers and your rapid reply.

-Yes, I can connect with Manufacturer tool, but it uses KMP
-(I also can connect with Gurux Director and Low Level Security)
-What else can influence the ciphered challenge?
--Can you describe how you do the part on pass 4: "SC || IC || GMAC (SC || AK || CtoS)"

Profile picture for user Kurumi

Kurumi

5 years 11 months ago

Hi,

Hi,

Can you ask from the meter vendor is GMAC supported or do you have any docs from it?
Pass 4 is described on Blue Book and it's implemented as you describe above.

BR,
Mikko

PhysicsLow

5 years 10 months ago

Success!

Success!

After re-installing GuruxDirector I was able to connect to a Kamstrup Omnipower 2 by GMAC HLS!

-I could read the registers/profiles, set the time and control the breaker.
-It worked as expected over RS485 as well as via optical head.

I recognize Gurux(Director) as a very powerful tool. The only thing what would have made my life easier would be, if "Client Address", "Logical Server" and "Phisical Server" fields in the GUI (under properties) would be marked in a way, that it is clear for everyone, that the numbers have to be given in hex.

Thank you for your work and immediate replies!!!

Profile picture for user Kurumi

Kurumi

5 years 10 months ago

Hi,

Hi,

Thank you from this info and you are right on this. I'll add the hex field to the worklist.

BR,

Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Tue, 06/09/2026 - 11:16
    gurux.dlms.java 4.0.95
  • Tue, 06/09/2026 - 10:03
    Gurux.DLMS.Python 1.0.199
  • Mon, 06/08/2026 - 13:39
    gurux.dlms.cpp 9.0.2606.0801
  • Mon, 06/01/2026 - 10:15
    gurux.dlms.cpp 9.0.2606.0101
  • Thu, 05/28/2026 - 16:06
    gurux.dlms.java 4.0.94

New forum topics

  • Error reading L&G Meter
  • Pass a TCP Client to GXNet
  • Australian EDMI Mk10D (Essential Energy area)
  • Strange mix of data notificiation vs get response
  • DLMS Connection
More

Who's new

  • Tuanhgg
  • Adel
  • charnon
  • Paddles
  • Miguel Ángel
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin