Skip to main content

Provides a standardized way to connect to machines and devices in a factory or other factory systems

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eta_nexus-0.2.1.tar.gz (378.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eta_nexus-0.2.1-py3-none-any.whl (123.6 kB view details)

Uploaded Python 3

File details

Details for the file eta_nexus-0.2.1.tar.gz.

File metadata

  • Download URL: eta_nexus-0.2.1.tar.gz
  • Upload date:
  • Size: 378.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.10.18 Linux/6.8.0-111-generic

File hashes

Hashes for eta_nexus-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4450daf2a6149cb9b3e51b3100ed79df23d704430142c44cfe1539a2a447a22d
MD5 4efc70aaa6a380cf241a729b8f0795e2
BLAKE2b-256 4830a1f9adbae7bb5aa182b410be14c467fdc1a1c964d144235e3afb092a0784

See more details on using hashes here.

File details

Details for the file eta_nexus-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: eta_nexus-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 123.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.10.18 Linux/6.8.0-111-generic

File hashes

Hashes for eta_nexus-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2efd6c78e46a3f9ebfaeca3f16764a702cbe35c7b4506a382b30a6fa043762ca
MD5 e1ad5a2efeacb0a7fa7796ffca7390f2
BLAKE2b-256 fb619158f90ace477a05ccdb93de42caf76b8be61a596de95e742a3cb8156a01

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page