jDLMS Overview


jDLMS on Maven Central

jDLMS is a Java library implementing the DLMS/COSEM (IEC 62056) smart metering (electricity, water, gas, etc.) communication standard.

The jDLMS software library contains a client stack and a server stack. The client stack enables access to meters over TCP/IP and serial. The server stack allows to build a custom DLMS/COSEM server over TCP/IP, which can be accessed by any client implementing the DLMS/COSEM standard.

Read the user guide on how to get started with the library.

Supported Features

Client

  • Transport:
    • Wrapper (IEC 62056-4-7) via TCP/IP
    • HDLC (IEC 62056-46) via serial (RS-232 | RS-485) and TCP/IP
    • IEC 62056-21 mode E handshake followed by HDLC over serial
  • Object addressing:
    • Logical name referencing
    • Short name referencing
  • Authentication mechanisms:
    • None — no authenticaion
    • Low — password authentication
    • HLS5 GMAC — High level authentication using Galois/Counter_Mode
  • Encryption mechanism (security suite):
    • 0 — AES-GCM-128 specified in RFC 3394
  • Data transfer service:
    • GET — with selective access, block transfer
    • SET — with block transfer
    • ACTION — with block transfer

Server

  • Transport:
    • Wrapper (IEC 62056-4-7) via TCP/IP
    • HDLC (IEC 62056-46) via TCP/IP
  • Object Addressing:
    • Logical name referencing
    • Short name referencing
  • Authentication mechanism:
    • None — no authenticaion
    • Low — password authentication
    • HLS5 GMAC — High level authentication using Galois/Counter_Mode
  • Encryption mechanism (security suite):
    • 0 — AES-GCM-128 specified in RFC 3394
  • Data transfer service:
    • GET — with selective access, block transfer
    • SET — with block transfer
    • ACTION — with block transfer

License

jDLMS is licensed under the GPLv3. In addition we sell jDLMS under proprietary licenses if needed. Please contact us through the form if you need another license. Proprietary licenses are negotiated individually.

Found a Bug?

If you spot a problem with in jDLMS, please let us know through the form. Please report how the error occurred, add a stacktrace, name the meter (manufacturer + model), name the connection profile (e.g. LOW, GMAC, etc.), add a capture file if possible.

Authors

  • Dirk Zimmermann
  • Albrecht Schall

Alumni

  • Stefan Feuerhahn
  • Karsten Müller-Bier