Skip to main content
Home
for DLMS smart meters

Main navigation

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

Breadcrumb

  1. Home
  2. High GMAC Meters Can’t Authenticate – Can’t Read Invocation Counter

High GMAC meters can’t authenticate – can’t read invocation counter

By zolboo1225@, 19 January, 2026
Forums
General discussion

Hi all,

We have ~500 ameter300 DLMS meters deployed across the country. They all use the same key material (system title 5753450000000001, client title 434C4E5400000001, auth key D0…DF, block key 00…0F, GMAC password 0x3333…). The legacy OPC client (C# / MyDaAddressSpaceDevice) talks to them just fine, but it hardcodes Ciphering.InvocationCounter = 1.

I’m trying to migrate the reads to Gurux Python (gurux_dlms 1.0.178, GXDLMSReader/GXSettings). The OPC client’s addressing scheme (m_DevAddr + 0x4000) already works in Python, but every HighGMac association times out unless I guess the exact invocation counter. Unfortunately we can’t read 0.0.43.1.0.255 attr 2: the meters answer SNRM/AARQ with Authentication.NONE and dump the association view, then never deliver the counter before the reader times out. So I can’t sync the IC remotely.

Questions:
1. Is there a recommended way (in Gurux) to read the invocation counter when the meter streams the association view first? GXDLMSReader.readDataBlock() just times out after several `E6E7` frames.
2. If the meter really blocks public access to 0.0.43.1.0.255, how do other users handle GMAC counters at scale? Do you cache them in a database and increment locally, or is there a standard DLMS object/command to resync the counter?
3. Any guidance from Gurux devs on keeping the invocation counter aligned across hundreds of meters would be hugely appreciated. Right now GMAC fails immediately because we don’t know the current IC per device.

Thanks in advance!

Profile picture for user Kurumi

Kurumi

3 weeks 6 days ago

Hi, 1. You can modify the…

Hi,

1. You can modify the source add an invocation counter manually, or add -v 0.0.43.1.0.255. It reads the Invocation counter from the meter.

2 and 3. If there is only one client, it's possible to save the invocation counter to the database. If there are multiple clients, you must read the invocation counter before establishing the secured connection to the meter. Note that there might be multiple invocation counters. Each association might have its own.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Sun, 02/01/2026 - 19:47
    gurux.dlms.cpp 9.0.2602.0101
  • Tue, 01/20/2026 - 10:38
    gurux.dlms.java 4.0.89
  • Wed, 01/14/2026 - 14:29
    Gurux.DLMS.Python 1.0.196
  • Mon, 12/29/2025 - 10:38
    Gurux.Serial.Android 3.0.5
  • Mon, 12/15/2025 - 08:11
    Gurux.DLMS.Net 4.0.87

New forum topics

  • Landisgyr meter
  • GxDateTime always return DayOfWeek as FF
  • Asynchronous support in Gurux DLMS stack (.NET)?
  • Multiple meter loop On OFF Problem
  • Python GXDLMSTranslator
More
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin