All source listed below is under MIT license if no LICENSE file stating different is available.

DSMR Parser

A library for parsing Dutch Smart Meter Requirements (DSMR) telegram data. It also includes a serial client to directly read and parse smart meter data.

Features

DSMR Parser currently supports DSMR version 4 and is tested with Python 3.5

Examples

Using the serial reader to connect to your smart meter and parse it's telegrams:

.. code-block:: python

from dsmr_parser import telegram_specifications
from dsmr_parser.obis_references import P1_MESSAGE_TIMESTAMP
from dsmr_parser.serial import SerialReader, SERIAL_SETTINGS_V4

serial_reader = SerialReader(
    device='/dev/ttyUSB0',
    serial_settings=SERIAL_SETTINGS_V4,
    telegram_specification=telegram_specifications.V4
)

for telegram in serial_reader.read():

    # The telegram message timestamp.
    message_datetime = telegram[P1_MESSAGE_TIMESTAMP]

    # Using the active tariff to determine the electricity being used and
    # delivered for the right tariff.
    tariff = telegram[ELECTRICITY_ACTIVE_TARIFF]
    tariff = int(tariff.value)

    electricity_used_total \
        = telegram[ELECTRICITY_USED_TARIFF_ALL[tariff - 1]]
    electricity_delivered_total = \
        telegram[ELECTRICITY_DELIVERED_TARIFF_ALL[tariff - 1]]

    gas_reading = telegram[HOURLY_GAS_METER_READING]

    # See dsmr_reader.obis_references for all readable telegram values.

Installation

To install DSMR Parser:

.. code-block:: bash

$ pip install dsmr-parser

TODO

  • add unit tests
  • verify telegram checksum
  • improve ease of use
dsmr_parser
.gitignore
LICENSE
README.md
setup.cfg
setup.py