Skip to main content

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)

Source distribution for eta-nexus 0.2.1
File Size Uploaded
eta_nexus-0.2.1.tar.gz 378.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eta-nexus 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page