Skip to main content

A Python library for IEC62056-21, Local Data Readout of Energy Meters. Former IEC1107

Project description

IEC 62056-21

CircleCI Coverage Status

A Python library for IEC 62056-21, Direct Local Data Exchange of Energy Meters. Former IEC 61107 or IEC 1107

Installation

We only support python 3.6+

Install via pip:

pip install iec62056-21

About IEC 62056-21

IEC 62056-21 (earlier IEC 61107 or sometimes just IEC 1107, is an international standard for a computer protocol to read utility meters. It is designed to operate over any media, including the Internet. A meter sends ASCII (in modes A..D) or HDLC (mode E) data to a nearby hand-held unit (HHU) using a serial port. The physical media are usually either modulated light, sent with an LED and received with a photodiode, or a pair of wires, usually modulated by a 20mA current loop. The protocol is usually half-duplex.

Limitations of this library.

  • At the moment we only support Mode C.
  • We assume that only protocol mode Normal is used.

Example usage:

Reading a meter using a optical usb probe via the D0-interface.

from iec62056_21.client import Iec6205621Client

client = Iec6205621Client.with_serial_transport(port='/dev/tty_something')

password_challange = client.access_programming_mode()

client.send_password('00000000')  # Common standard password

data_answer = client.read_value('1.8.0')
from iec62056_21.client import Iec6205621Client

client = Iec6205621Client.with_tcp_transport(address=('192.168.0.1', 8000), device_address='12345678', password='00000000')

password_challange = client.access_programming_mode()

client.send_password('00000000')  # Common standard password

data_answer = client.read_value('1.8.0')

Derivative protocols

Some manufacturer are using a derivative protocol to IEC 62056-21. They comply with most things but might for example not use the access request features according to standard or they have a slightly different flow in command execution

This library can be used with some of them. You just need to be aware of the differences. We provide special handlers for some unique parts that is included in this library. They might be split into separate libraries in the future.

LIS-200

A protocol for Elster devices. Main difference is that they have the concept of locks instead of password and instead of answering the password request you need to write the password to a certain register.

Development

This library is developed by Palmlund Wahlgren Innovative Technology AB in Sweden and is used in our multi utility AMR solution: Utilitarian

Contributing

  • Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
  • Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
  • Write a test which shows that the bug was fixed or that the feature works as expected.
  • Send a pull request and bug the maintainer until it gets merged and published.

Changelog

The format is based on Keep a Changelog: https://keepachangelog.com/en/1.0.0/, and this project adheres to Semantic Versioning: https://semver.org/spec/v2.0.0.html

Unreleased

Added

Changed

Deprecated

Removed

Fixed

Security

v.0.0.2 (2019-06-12)

Fixed

Issue #2 Dependency problems when installing.

v0.0.1 (2019-06-04)

Initial implementation of IEC 62056-21 with focus on supporting LIS 200 derivative protocol.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iec62056-21-0.0.2.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

iec62056_21-0.0.2-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file iec62056-21-0.0.2.tar.gz.

File metadata

  • Download URL: iec62056-21-0.0.2.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.4

File hashes

Hashes for iec62056-21-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3d5e2ceefdecceef7baf5086d6fa2feafa706a272b90a73f02c3f76386d868f5
MD5 6da223887f697353f1d1cebd89a4851d
BLAKE2b-256 d4274d82e32df9ea77bd51af66ec435510bcf929cd32c87fa19cbe692322e23e

See more details on using hashes here.

File details

Details for the file iec62056_21-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: iec62056_21-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.4

File hashes

Hashes for iec62056_21-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 951d529da9a13646c4209259bc8850a0582a65ad10bef55164aec2a84ffd1705
MD5 db9ac4f9a3eca49487047437cc24edfb
BLAKE2b-256 4f390de3afb472e461e4464da1a16cc3a46715e29fdf012157644e963166f0b2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page