Core functionality for other OpenSMI packages such as:
- (Nested) Configuration parsing into dataclasses from TOML files (See config.py)
- Lifecycle management via mixin and
@lifecycledecorators, allowing explicit ordering (See lifecycle_mixin.py) - Simple callbacks via
Signal(similar to aiosignal, but without freezing) (See signal.py) - asyncua (OPC UA) helpers
- Node helper functions (See ua_node_util.py)
- SubscriptionManager (See subscription_manager.py)
- Enums for OpenSMI machine, component and skill states
- All UN/CEFACT-Rec20 units as a type-checkable enum. (See unit_all.py)
- Structured Logging configuration (See logging.py)
Warning
This library is currently pre-1.0 — expect refactoring outside above-mentioned functionality.
Requires Python 3.11+.
pip install opensmi-coreOpenSMI began as a closed-source project at SmartFactory-KL, in active use in our model factory since 2020. Its OPC UA information model has been refined across many iterations of research and demonstrator use. The framework was open-sourced in 2026 following substantial refactoring and cleanup.
