The ETA Nexus package provides a standardized interface for managing communication across industrial energy and production systems. It helps handle data streams across heterogeneous Information Technology (IT) and Operational Technology (OT) resources such as factory systems, machines, field devices, databases, and external API services.
The package provides one unified node and connection model across multiple protocols, including OPC UA, Modbus TCP, REST APIs, InfluxDB, SMARD, ENTSO-E, Forecast.Solar, Wetterdienst, EnEffCo, and Emonio. It is designed for live control, operational optimization, data recording, simulation workflows, and the integration of future communication services.
Documentation
Full documentation can be found on the Documentation Page.
Warning
This is beta software. APIs and functionality might change without prior notice. Please fix the version you are using in your requirements to ensure your software will not be broken by changes in ETA Nexus.
Overview
Core
Connection: Base class for protocol-specific clients. Connections can be created directly or from nodes with Connection.from_node() and Connection.from_nodes().
RESTConnection: Base class for REST/API connectors. It provides shared request handling, retries, cached sessions, authentication hooks, and parsing hooks.
ConnectionManager: High-level orchestration class for working with multiple systems, servers, and protocols from configuration files. It manages initialization, activation, deactivation, closing, reading, writing, and step-based control workflows.
Nodes
Node: Immutable description of a single data point. A node contains the protocol, URL, authentication data, data type, and protocol-specific addressing information.
Protocol-specific nodes: OpcuaNode, ModbusNode, InfluxNode, SmardNode, EntsoeNode, ForecastsolarNode, WetterdienstNode, EneffcoNode, and EmonioNode.
Connections
Status connections: Connections that support current-value operations with read(), write(), and optionally subscribe().
Series connections: Connections that support historic time-series operations with read_series(), write_series(), and optionally subscribe_series().
Supported connectors include:
OPC UA
Modbus TCP
InfluxDB
SMARD
ENTSO-E
Forecast.Solar
Wetterdienst
EnEffCo
Emonio
Servers
OpcuaServer: Helper for creating local OPC UA servers with simple variable access.
ModbusServer: Helper for creating local Modbus TCP servers.
Subscription Handlers
SubscriptionHandler: Base class for processing values received from subscriptions.
CsvSubscriptionHandler: Stores subscribed values in CSV files.
DFSubscriptionHandler: Stores subscribed values in memory as pandas DataFrames.
MultiSubscriptionHandler: Forwards subscribed values to multiple handlers.
Time Series
df_time_slice: Slices time-indexed pandas DataFrames.
df_resample: Resamples the time index of a DataFrame to a specified frequency.
df_interpolate: Interpolates missing values in a DataFrame with a specified frequency.
find_time_slice: Finds deterministic or random time slices for time-series data.
Contributing
Please read the development guide before starting development on ETA Nexus.
Citing this Project
For referencing this package in academic work, please refer to CITATION.cff. See AUTHORS.rst for a list of further contributors.
Metadata
Release files for eta-nexus 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eta_nexus-0.2.1.tar.gz | 378.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eta_nexus-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 502.4 kB
Release files / eta_nexus-0.2.1.tar.gz
| Download URL | eta_nexus-0.2.1.tar.gz |
|---|---|
| Size | 378.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4450daf2a6149cb9b3e51b3100ed79df23d704430142c44cfe1539a2a447a22d
|
|
BLAKE2b-256 checksum How to use checksums |
4830a1f9adbae7bb5aa182b410be14c467fdc1a1c964d144235e3afb092a0784
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.10.18 Linux/6.8.0-111-generic
|
Release files / eta_nexus-0.2.1-py3-none-any.whl
| Download URL | eta_nexus-0.2.1-py3-none-any.whl |
|---|---|
| Size | 123.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2efd6c78e46a3f9ebfaeca3f16764a702cbe35c7b4506a382b30a6fa043762ca
|
|
BLAKE2b-256 checksum How to use checksums |
fb619158f90ace477a05ccdb93de42caf76b8be61a596de95e742a3cb8156a01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.10.18 Linux/6.8.0-111-generic
|