{ "info": { "author": "Jorik Jonker", "author_email": "jorik@kippendief.biz", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# iec62056\na robust IEC1107/IEC62056 parser in Python.\n\nThis library is meant to parse IEC1107/IEC62056 telegrams in Python. You'll need\nthis to process information from your smart meter (e.g. DSMR P1). The code\ndiffers from other libraries in several ways:\n\n* It actually parses the messages using a (EBNF) grammar. This makes the parsing\n robust and extendable.\n* It is designed as an external library instead of being inseperable with other\n software components (such as P1 serial readers).\n* It aims to handle all IEC 62056 formatted telegrams, not only DSMR. I needed\n this, because of my IEC 1107 speaking district heat meter, which resembles\n DSMR.\n\n# Compatibility\nThis module is targeted to be compatible with all kinds of digital meters\noutputting IEC62056 formatted telegrams. It implements several (sub)standards.\n\n## Standards\nThe module implements the following standards:\n\n* IEC 1107/IEC 62056-21 (COSEM, OBIS). IEC 1107 was superseded by IEC 62056\n* DSMR (versions 2.2, 4.0, 4.0.5, 4.0.7, 4.2, 5.0)\n\n## Data types\nThese data types are recognised:\n\n* Standard COSEM OBIS register\n* COSEM OBIS timestamped register (e.g. gas via M-Bus)\n* Profile Generic (e.g. power failure logs)\n\n## Equipment\nTesting was done with sample telegrams from the following meters:\n\n* Kamstrup Multical 66C (district heating meter)\n* Kaifa MA 105\n* Iskra AM 550\n* Iskra MT 382\n* Landis + Gyr E350/ZCF110\n\n# Usage\n\n```python\n$ pip install iec62056\n$ python3\n>>> import iec62056\n>>> p = iec62056.parser.Parser()\n>>> t = p.parse(b'... your telegram ')\n>>> print(t.keys())\n>>> for k in t.keys():\n... o = t[k]\n... if isinstance(o, iec62056.objects.Register):\n... print(' {} = {}'.format(k, o.value))\n>>>\n```\n\n# Thanks\nSince specs on IEC 62056/1107 and DSMR can sometimes be tough to find or\ninterpret, I used a lot of concepts from other projects. I've used knowledge\nfrom these projects:\n\n* Nigel Dokter's [dsmr_parser](https://github.com/ndokter/dsmr_parser)\n* Matthijs Kooiman's [arduino-dsmr](https://github.com/matthijskooijman/arduino-dsmr)\n* Levien van Zon's [dsmr-p1-parser](https://github.com/lvzon/dsmr-p1-parser)\n* [OpenHAB addon repository](https://github.com/openhab/openhab2-addons)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jonkerj/iec62056", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "iec62056", "package_url": "https://pypi.org/project/iec62056/", "platform": "", "project_url": "https://pypi.org/project/iec62056/", "project_urls": { "Homepage": "https://github.com/jonkerj/iec62056" }, "release_url": "https://pypi.org/project/iec62056/0.4.2/", "requires_dist": null, "requires_python": "", "summary": "Library to parse IEC62056/IEC1107/DSMR telegrams", "version": "0.4.2" }, "last_serial": 5217576, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "258310f07ba85f8e7848c8a388ba2f82", "sha256": "a72c8fcca14db2112c6e4bb909d5a9fb0b4860d26bfc29ae18abce86b11c916b" }, "downloads": -1, "filename": "iec62056-0.1.1.tar.gz", "has_sig": false, "md5_digest": "258310f07ba85f8e7848c8a388ba2f82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5824, "upload_time": "2019-04-11T12:41:21", "url": "https://files.pythonhosted.org/packages/47/53/ba7ba65fcfc8597cd45416155036dd843dbfd509bbcc0167d463992c56ad/iec62056-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "6bc0d5df832e30f98570fbf4e12e2e97", "sha256": "971029d63d0f35f4835260d0aa6701e6bb6fb7ed748e0587cb3561e20fb000d8" }, "downloads": -1, "filename": "iec62056-0.1.10.tar.gz", "has_sig": false, "md5_digest": "6bc0d5df832e30f98570fbf4e12e2e97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17186, "upload_time": "2019-04-15T19:26:42", "url": "https://files.pythonhosted.org/packages/57/1c/1807537a6db79cec91eb289242b0debf2bd19fb25df4dd3a4f43a441c497/iec62056-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "d57e3b179d5a496bd5c2ce54efa69e91", "sha256": "919de9593fbb5f7f2ae0d4370bc70cf5cc7b5028154777a77ae6415de2b7ccc1" }, "downloads": -1, "filename": "iec62056-0.1.11.tar.gz", "has_sig": false, "md5_digest": "d57e3b179d5a496bd5c2ce54efa69e91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17184, "upload_time": "2019-04-15T19:49:10", "url": "https://files.pythonhosted.org/packages/c8/b6/01c18be58cbfdb04061124b4ace73ba28b1c618737cd3dede323f6ec65ae/iec62056-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "73da8065ecf597b46e616ea278626d9d", "sha256": "c27b377ecf0764deec3268f1600841f00fe0e60e5a23baece340f98b43d5b9a1" }, "downloads": -1, "filename": "iec62056-0.1.12.tar.gz", "has_sig": false, "md5_digest": "73da8065ecf597b46e616ea278626d9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18070, "upload_time": "2019-04-15T20:04:07", "url": "https://files.pythonhosted.org/packages/1c/4c/b9ee597a8df2753ed3aa43668af16db6e1f0ee8b6839a0ad0c80084e2e28/iec62056-0.1.12.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "369252833b90ad654e45ef6e351613d9", "sha256": "9ff5a815b0647695c3f77a8caa0c9ed92d293a9d1ffbc0e4e15306f67c7e013b" }, "downloads": -1, "filename": "iec62056-0.1.7.tar.gz", "has_sig": false, "md5_digest": "369252833b90ad654e45ef6e351613d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5823, "upload_time": "2019-04-11T12:44:26", "url": "https://files.pythonhosted.org/packages/ba/69/9542d9c4899dfb4f164612f628b9f8db221408e89c039e26591dbdb69bb4/iec62056-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "38119ca9fa392c00151f5881ba3291f2", "sha256": "a9d181a62f08459af23e9c89d7abe8dc55e0dd286f93fe4359b4685cdd5eca52" }, "downloads": -1, "filename": "iec62056-0.1.8.tar.gz", "has_sig": false, "md5_digest": "38119ca9fa392c00151f5881ba3291f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17281, "upload_time": "2019-04-13T17:28:58", "url": "https://files.pythonhosted.org/packages/fe/dd/3b951074cc15d93a06d8bdfa1bc8b120830c51defbb160031e18aba7a54e/iec62056-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "6fc209ce31e3d705f6b0945bd79b21e0", "sha256": "82d37183da92594c0792fbfb0a0f38e4750e4dad341846b55400bf0e1916d320" }, "downloads": -1, "filename": "iec62056-0.1.9.tar.gz", "has_sig": false, "md5_digest": "6fc209ce31e3d705f6b0945bd79b21e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17173, "upload_time": "2019-04-13T18:24:10", "url": "https://files.pythonhosted.org/packages/6d/63/8e9c2250c3103380b0a40c55ddd41f8a6ee601b2f4b420c7a76731fb0e88/iec62056-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "136125c5d5cd85f8e8e4875bc0e8153e", "sha256": "e08c68a0c2d099fbabbd3aa99b85aa09adcea9785eae56cde3b4b40128629039" }, "downloads": -1, "filename": "iec62056-0.2.0.tar.gz", "has_sig": false, "md5_digest": "136125c5d5cd85f8e8e4875bc0e8153e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18164, "upload_time": "2019-04-16T11:54:27", "url": "https://files.pythonhosted.org/packages/9d/01/ed94a9c003428ddf2766d10e3fb9d0a0cad1aec0664f3fad2ce9594d66bf/iec62056-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e836dec9fd6759b893f52d5485516032", "sha256": "5b3fb33ec8a811f27ac6bd0b7ddd9a79b22fec0ba53435aac295558ed26221ff" }, "downloads": -1, "filename": "iec62056-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e836dec9fd6759b893f52d5485516032", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18074, "upload_time": "2019-04-16T12:48:01", "url": "https://files.pythonhosted.org/packages/de/45/400fc779c796f2596604f46cecea4eeaf6848ddfd0cb29b6fd559a13ec20/iec62056-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e2e19321b54569aea6ab416a7e82daad", "sha256": "095fb93807702349e5ec1f85153aa0623adc46340ed8507864cd216fb680294d" }, "downloads": -1, "filename": "iec62056-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e2e19321b54569aea6ab416a7e82daad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19384, "upload_time": "2019-04-16T19:54:56", "url": "https://files.pythonhosted.org/packages/5e/b1/875aba23439b5e205f8e8d73db3198ed19dc93a4adf6ce0e80c58ab5fa1a/iec62056-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "d06f350bc3794cd52a813530696d5a47", "sha256": "01eaa45b3039624eed818e0f8bea048aa48eecbfb824c192548a43d1bf7a36d2" }, "downloads": -1, "filename": "iec62056-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d06f350bc3794cd52a813530696d5a47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19310, "upload_time": "2019-05-02T12:30:05", "url": "https://files.pythonhosted.org/packages/59/f7/881d7e0cfb2722b88cc3256622302f5146f6fe799d17cb42a97234200dda/iec62056-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "72e2e7efcb5fb4c598a7d6d26dd85bcb", "sha256": "b7a02a8a46c2347f9c7ebf99f8a0726684e0703a6c11689cafc8d00411eff959" }, "downloads": -1, "filename": "iec62056-0.4.2.tar.gz", "has_sig": false, "md5_digest": "72e2e7efcb5fb4c598a7d6d26dd85bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19341, "upload_time": "2019-05-02T14:11:33", "url": "https://files.pythonhosted.org/packages/9e/2d/3467a1f2c44414083f9bb95986c7f55c0198b1891e97a669db1a8657d8ab/iec62056-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "72e2e7efcb5fb4c598a7d6d26dd85bcb", "sha256": "b7a02a8a46c2347f9c7ebf99f8a0726684e0703a6c11689cafc8d00411eff959" }, "downloads": -1, "filename": "iec62056-0.4.2.tar.gz", "has_sig": false, "md5_digest": "72e2e7efcb5fb4c598a7d6d26dd85bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19341, "upload_time": "2019-05-02T14:11:33", "url": "https://files.pythonhosted.org/packages/9e/2d/3467a1f2c44414083f9bb95986c7f55c0198b1891e97a669db1a8657d8ab/iec62056-0.4.2.tar.gz" } ] }