pyiec61850-ng


Namepyiec61850-ng JSON
Version 1.6.0.5 PyPI version JSON
download
home_pagehttps://github.com/f0rw4rd/pyiec61850-ng
SummaryPython bindings for libiec61850 - IEC 61850 protocol implementation
upload_time2025-07-30 18:04:16
maintainerNone
docs_urlNone
authorf0rw4rd
requires_python>=3.8
licenseGPLv3
keywords iec61850 mms goose iec-61850 power-systems substation-automation smart-grid scada
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyiec61850-ng

Next Generation Python bindings for libiec61850, packaged as a Python wheel.

[![Build and Test](https://github.com/f0rw4rd/pyiec61850-ng/actions/workflows/build-wheel.yml/badge.svg)](https://github.com/f0rw4rd/pyiec61850-ng/actions/workflows/build-wheel.yml)
[![PyPI version](https://badge.fury.io/py/pyiec61850-ng.svg)](https://badge.fury.io/py/pyiec61850-ng)
[![Python Versions](https://img.shields.io/pypi/pyversions/pyiec61850-ng.svg)](https://pypi.org/project/pyiec61850-ng/)

This repository provides Python bindings for the [libiec61850](https://github.com/mz-automation/libiec61850) library, which is an open-source implementation of the IEC 61850 standard for communication networks and systems in substations.

## Installation

### Install from PyPI (Recommended)

```bash
pip install pyiec61850-ng
```

### Install from GitHub Release

```bash
pip install pyiec61850-ng --find-links https://github.com/f0rw4rd/pyiec61850-ng/releases/latest/download/
```

### Install directly from GitHub

```bash
pip install git+https://github.com/f0rw4rd/pyiec61850-ng.git
```

### Install from local wheel

```bash
pip install pyiec61850-ng-*.whl
```

## Usage

### Quick Start

```python
import pyiec61850.pyiec61850 as pyiec61850

# Create and connect to an IEC 61850 server
connection = pyiec61850.IedConnection_create()
error = pyiec61850.IedConnection_connect(connection, "192.168.1.100", 102)

if error == pyiec61850.IED_ERROR_OK:
    print("Connected successfully!")
    # Perform operations...
    pyiec61850.IedConnection_close(connection)

pyiec61850.IedConnection_destroy(connection)
```

### Examples

For comprehensive examples, see the [examples directory](https://github.com/f0rw4rd/pyiec61850-ng/tree/main/examples):

- [**Basic Connection**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/01_basic_connection.py) - Connect to an IEC 61850 server
- [**Device Discovery**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/02_device_discovery.py) - Discover logical devices, nodes, and data objects
- [**Reading Data**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/03_read_data_values.py) - Read values from data objects
- [**File Transfer**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/04_file_transfer.py) - Download files using MMS file services

Run examples:
```bash
python examples/01_basic_connection.py 192.168.1.100
python examples/02_device_discovery.py 192.168.1.100
```

## Building from Source

The wheel package is built using Docker:

```bash
docker build -t pyiec61850-builder --build-arg LIBIEC61850_VERSION=v1.6 .
```

To extract the wheel file:

```bash
mkdir -p ./dist
docker create --name wheel-container pyiec61850-builder
docker cp wheel-container:/wheels/. ./dist/
docker rm wheel-container
```

## Versioning

This package uses the format: `LIBIEC61850_VERSION.REVISION`
- **Example**: `1.6.0.1` = libiec61850 v1.6.0, first package revision
- **1.6.0**: The exact libiec61850 version included (static)
- **.1**: Package revision for bug fixes, rebuilds, binding improvements

This clearly shows which libiec61850 version you're getting and our package iteration.

Check current version:
```bash
python version.py        # Package version: 1.6.0.1
python version.py --libiec61850  # libiec61850 version: v1.6.0
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/f0rw4rd/pyiec61850-ng",
    "name": "pyiec61850-ng",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "iec61850 mms goose iec-61850 power-systems substation-automation smart-grid scada",
    "author": "f0rw4rd",
    "author_email": "pyiec61850@example.com",
    "download_url": null,
    "platform": null,
    "description": "# pyiec61850-ng\n\nNext Generation Python bindings for libiec61850, packaged as a Python wheel.\n\n[![Build and Test](https://github.com/f0rw4rd/pyiec61850-ng/actions/workflows/build-wheel.yml/badge.svg)](https://github.com/f0rw4rd/pyiec61850-ng/actions/workflows/build-wheel.yml)\n[![PyPI version](https://badge.fury.io/py/pyiec61850-ng.svg)](https://badge.fury.io/py/pyiec61850-ng)\n[![Python Versions](https://img.shields.io/pypi/pyversions/pyiec61850-ng.svg)](https://pypi.org/project/pyiec61850-ng/)\n\nThis repository provides Python bindings for the [libiec61850](https://github.com/mz-automation/libiec61850) library, which is an open-source implementation of the IEC 61850 standard for communication networks and systems in substations.\n\n## Installation\n\n### Install from PyPI (Recommended)\n\n```bash\npip install pyiec61850-ng\n```\n\n### Install from GitHub Release\n\n```bash\npip install pyiec61850-ng --find-links https://github.com/f0rw4rd/pyiec61850-ng/releases/latest/download/\n```\n\n### Install directly from GitHub\n\n```bash\npip install git+https://github.com/f0rw4rd/pyiec61850-ng.git\n```\n\n### Install from local wheel\n\n```bash\npip install pyiec61850-ng-*.whl\n```\n\n## Usage\n\n### Quick Start\n\n```python\nimport pyiec61850.pyiec61850 as pyiec61850\n\n# Create and connect to an IEC 61850 server\nconnection = pyiec61850.IedConnection_create()\nerror = pyiec61850.IedConnection_connect(connection, \"192.168.1.100\", 102)\n\nif error == pyiec61850.IED_ERROR_OK:\n    print(\"Connected successfully!\")\n    # Perform operations...\n    pyiec61850.IedConnection_close(connection)\n\npyiec61850.IedConnection_destroy(connection)\n```\n\n### Examples\n\nFor comprehensive examples, see the [examples directory](https://github.com/f0rw4rd/pyiec61850-ng/tree/main/examples):\n\n- [**Basic Connection**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/01_basic_connection.py) - Connect to an IEC 61850 server\n- [**Device Discovery**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/02_device_discovery.py) - Discover logical devices, nodes, and data objects\n- [**Reading Data**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/03_read_data_values.py) - Read values from data objects\n- [**File Transfer**](https://github.com/f0rw4rd/pyiec61850-ng/blob/main/examples/04_file_transfer.py) - Download files using MMS file services\n\nRun examples:\n```bash\npython examples/01_basic_connection.py 192.168.1.100\npython examples/02_device_discovery.py 192.168.1.100\n```\n\n## Building from Source\n\nThe wheel package is built using Docker:\n\n```bash\ndocker build -t pyiec61850-builder --build-arg LIBIEC61850_VERSION=v1.6 .\n```\n\nTo extract the wheel file:\n\n```bash\nmkdir -p ./dist\ndocker create --name wheel-container pyiec61850-builder\ndocker cp wheel-container:/wheels/. ./dist/\ndocker rm wheel-container\n```\n\n## Versioning\n\nThis package uses the format: `LIBIEC61850_VERSION.REVISION`\n- **Example**: `1.6.0.1` = libiec61850 v1.6.0, first package revision\n- **1.6.0**: The exact libiec61850 version included (static)\n- **.1**: Package revision for bug fixes, rebuilds, binding improvements\n\nThis clearly shows which libiec61850 version you're getting and our package iteration.\n\nCheck current version:\n```bash\npython version.py        # Package version: 1.6.0.1\npython version.py --libiec61850  # libiec61850 version: v1.6.0\n```\n\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Python bindings for libiec61850 - IEC 61850 protocol implementation",
    "version": "1.6.0.5",
    "project_urls": {
        "Bug Reports": "https://github.com/f0rw4rd/pyiec61850-ng/issues",
        "Documentation": "https://github.com/f0rw4rd/pyiec61850-ng#readme",
        "Homepage": "https://github.com/f0rw4rd/pyiec61850-ng",
        "Source": "https://github.com/f0rw4rd/pyiec61850-ng"
    },
    "split_keywords": [
        "iec61850",
        "mms",
        "goose",
        "iec-61850",
        "power-systems",
        "substation-automation",
        "smart-grid",
        "scada"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6dca5eb8400e5958358b7e9060eddb59e2da4db4a6ece29e01c9a7cee1cf778e",
                "md5": "94247e499a6c8529db02c4938ea1e217",
                "sha256": "0beda65b3b49f504af5a56003722d06bcf15081ab23a68be9f75e3310d8b49e7"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp310-cp310-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "94247e499a6c8529db02c4938ea1e217",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1865460,
            "upload_time": "2025-07-30T18:04:16",
            "upload_time_iso_8601": "2025-07-30T18:04:16.319831Z",
            "url": "https://files.pythonhosted.org/packages/6d/ca/5eb8400e5958358b7e9060eddb59e2da4db4a6ece29e01c9a7cee1cf778e/pyiec61850_ng-1.6.0.5-cp310-cp310-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3eff00959f9dbada07671edf45d8f3af0ae77dd3f66e5694eb8fa8b52a3717d4",
                "md5": "35b5f29ed4def754c07072feb1a4d735",
                "sha256": "8993ae77531c497477f60af2ce72974cf3c77644c19e8ce6f0bd79de6378e38c"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp311-cp311-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "35b5f29ed4def754c07072feb1a4d735",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1865640,
            "upload_time": "2025-07-30T18:04:18",
            "upload_time_iso_8601": "2025-07-30T18:04:18.265618Z",
            "url": "https://files.pythonhosted.org/packages/3e/ff/00959f9dbada07671edf45d8f3af0ae77dd3f66e5694eb8fa8b52a3717d4/pyiec61850_ng-1.6.0.5-cp311-cp311-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "00e74d31c2dae14b301f9e6a697a6300fc0aa1adb89bb63be511c9e3ea92daae",
                "md5": "2b5befc19277cec5b997220622f34787",
                "sha256": "1065258defd7683a4877baf4fd8455b30628ddba0790368b812b433bd7781646"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp312-cp312-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2b5befc19277cec5b997220622f34787",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1866340,
            "upload_time": "2025-07-30T18:04:19",
            "upload_time_iso_8601": "2025-07-30T18:04:19.331345Z",
            "url": "https://files.pythonhosted.org/packages/00/e7/4d31c2dae14b301f9e6a697a6300fc0aa1adb89bb63be511c9e3ea92daae/pyiec61850_ng-1.6.0.5-cp312-cp312-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fc4d866536c4d734b595709c4a7cace2f61353cc7569d52f229df7e9fda303fa",
                "md5": "e89f1ef0e4efa33ed4c3e1a2b1a4e909",
                "sha256": "79a733001bf6b388fa43065c73cd89c4f74a06d908b2452499e7b3652ae3c6cc"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp313-cp313-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e89f1ef0e4efa33ed4c3e1a2b1a4e909",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 1866400,
            "upload_time": "2025-07-30T18:04:20",
            "upload_time_iso_8601": "2025-07-30T18:04:20.736518Z",
            "url": "https://files.pythonhosted.org/packages/fc/4d/866536c4d734b595709c4a7cace2f61353cc7569d52f229df7e9fda303fa/pyiec61850_ng-1.6.0.5-cp313-cp313-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9d9da905626de7ab4edabf6cb468a5c394bd7e8294db36cff765db5ce891f5c8",
                "md5": "391eefb3bdfa9507f4bfbed713b3e029",
                "sha256": "00396127994c82916d9b46f772ad42158d4e6cb8a7bb020bfcfabca8cd5e7b47"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp38-cp38-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "391eefb3bdfa9507f4bfbed713b3e029",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1859123,
            "upload_time": "2025-07-30T18:04:22",
            "upload_time_iso_8601": "2025-07-30T18:04:22.187309Z",
            "url": "https://files.pythonhosted.org/packages/9d/9d/a905626de7ab4edabf6cb468a5c394bd7e8294db36cff765db5ce891f5c8/pyiec61850_ng-1.6.0.5-cp38-cp38-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "85b0f84109cca98d8cfd8791359efbcd2f98f5056fe1e215edc017ce719527ff",
                "md5": "939624216a15fe2132a5e666eb45ca14",
                "sha256": "2ff97f2b05b81d9906cbe8efb882b57418bdb2e7cca68d94109892d722ec303a"
            },
            "downloads": -1,
            "filename": "pyiec61850_ng-1.6.0.5-cp39-cp39-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "939624216a15fe2132a5e666eb45ca14",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1859123,
            "upload_time": "2025-07-30T18:04:23",
            "upload_time_iso_8601": "2025-07-30T18:04:23.240133Z",
            "url": "https://files.pythonhosted.org/packages/85/b0/f84109cca98d8cfd8791359efbcd2f98f5056fe1e215edc017ce719527ff/pyiec61850_ng-1.6.0.5-cp39-cp39-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 18:04:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "f0rw4rd",
    "github_project": "pyiec61850-ng",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyiec61850-ng"
}
        
Elapsed time: 1.14847s