industrial-aiops-energy — 能源 edition (变电 / 电力)
The energy edition of Industrial-AIOps,
split out into its own repo: read-only OT connectors for substation / utility
telecontrol protocols, built on top of iaiops.core.
- IEC 60870-5-104 (
c104) — RTU / substation telemetry - DNP3 / IEEE 1815 (
pydnp3) — outstation monitoring - IEC 61850 MMS (
pyiec61850, linux-only wheel) — substation IED reads
It reuses the base package's shared governance (audit / budget / risk-tier / undo), cross-protocol brain (data-flow / alarm / OEE / downtime RCA on the normalized ISA-95/18.2 model), and MCP server infrastructure — this repo only adds the three energy connectors + their session builders + MCP tools. Read-first: no control-direction writes are exposed.
Why a separate repo
Energy targets a distinct buyer (utilities / substations), has heavier
platform-specific deps (pyiec61850 is a linux-only SWIG wheel; pydnp3 builds a
native ext), and its own compliance surface (电力监控系统安全防护). Splitting keeps
the base install light. See the base repo's docs/ENERGY-SPINOUT.md for the plan.
Install
pip install iaiops-energy[energy] # all three energy protocols
pip install iaiops-energy[iec104] # just IEC-104
iaiops-energy pulls in iaiops (the shared core) automatically.
Use (MCP)
iaiops-energy-mcp # brain + energy tools over stdio
Point a target at your substation gear in ~/.iaiops/config.yaml
(protocol: iec104|dnp3|iec61850, host, port, common_address / unit_id).
Validation status (honest)
The same honesty ladder as the base repo. Driver codec / API surface is verified
against the real libraries; the mock/monkeypatched unit tests run in CI without
hardware. See the base repo's docs/PREVIEW-VERIFICATION.md runbook for how a
protocol is promoted.
| Protocol | Status | Evidence |
|---|---|---|
| DNP3 / IEEE 1815 | verified (monitor path) | Real master↔outstation round-trip against a live opendnp3 outstation (pydnp3): is_online() reflects the real channel OnStateChange, and integrity_poll() (Class 0/1/2/3) returns the seeded binary/analog/counter database grouped by type. See tests/test_dnp3_live.py (@pytest.mark.integration, skips when pydnp3 is absent). No physical RTU. |
| IEC 60870-5-104 | preview (待核实) |
Not yet live-verified (no gear / simulator in CI). |
| IEC 61850 (MMS) | verified (monitor path) | Real client↔server MMS round-trip against an in-process libiec61850 MMS server built with pyiec61850's server API: iec61850_device_directory lists the logical device (and browses its logical nodes / data objects), and iec61850_read returns a seeded measurand (TotW.mag.f, FC MX) over real ISO-on-TCP; a bad reference surfaces an MMS data-access error instead of a fabricated value. See tests/test_iec61850_live.py (@pytest.mark.integration, skips when pyiec61850 / its server API is absent). No physical IED. Read/monitor only — control / GOOSE / SV out of scope. |
DNP3 notes: read-only / monitor direction only (no control). pydnp3 0.1.0 ships no
wheel and needs a native opendnp3 build, so the live test runs in a Linux container;
its DNP3Manager.Shutdown() can block in a long-lived interpreter, so the connector
bounds teardown (_Pydnp3MasterAdapter.shutdown) and the test drives the round-trip
in a short-lived child process.
License
MIT — © wei. Part of the vendor-neutral, governed Industrial-AIOps line.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iaiops_energy-0.1.2.tar.gz.
File metadata
- Download URL: iaiops_energy-0.1.2.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
052ade45f4f1481e7f0a31c7c49fb5c5fe2e4aa14f3f63a1c44950d17eddc174
|
|
| MD5 |
2b4bf4d3bf86a42772c403b412c7ad12
|
|
| BLAKE2b-256 |
6745e1400563e4fb566d40f0465e220093d0829f6beba8bdfbb144ce14b5b7ba
|
File details
Details for the file iaiops_energy-0.1.2-py3-none-any.whl.
File metadata
- Download URL: iaiops_energy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26094e10472d37900d4abb7f188e43e9913148317ec6bc5533ed17bc94ae84b5
|
|
| MD5 |
e2aa0e874a0760e81261c46929e4fd33
|
|
| BLAKE2b-256 |
b8eb2a6ea4586f31b29e5589f87da347d07ea389cab9fa0d5564bd301bc6681d
|