Skip to main content

A Python toolkit for building Industry 4.0-compliant Things as Asset Administration Shells (AAS), with seamless integration into the Smart Systems Service Infrastructure (S³I).

Project description

Asset Administration Shell (AAS) Thing Python SDK

PyPI Release License: LGPL v3

A Python toolkit for building Industry 4.0-compliant Things as Asset Administration Shells (AAS), with seamless integration into the Smart Systems Service Infrastructure (S³I). Please refer to the whitepaper for details:

Hoppen M., Chen, J., Roßmann, J. (2025) Smart Systems Service Infrastructure (S3I) — Design and deployment of the Smart Systems Service Infrastructure (S3I) for decentralized networking in Forestry 4.0. KWH4.0 Position Paper. DOI: 10.18154/RWTH-2025-03168


Table of Contents


Overview

The AAS Thing Python SDK helps you:

  • Instantiate and manipulate AAS and submodels using the Eclipse BaSyx Python SDK
  • Exchange standardized I4.0 messages (VDI 2193-1) over AMQP (store-and-forward) or (in future) HTTP
  • Authenticate, manage and discover services, exchange information via the S³I core (IdentityProvider, Directory, Repository, Broker)

By following the AAS specification, your Things become members in Industry 4.0 ecosystems, interoperating securely and reliably.


Features

Core Functionality

  • AAS management
    Load and parse .json, .xml, or .aasx AAS on disk using BaSyx Python SDK.

  • Message-based communication
    Create, send, and receive I4.0 messages (I40Message) combined with the AAS API specification defined in Specification of the Asset Administration Shell Part 2, over AMQP (store-and-forward) or (in future) HTTP.

  • S³I integration

    • IdentityProvider: OpenID Connect authentication via Keycloak
    • Broker: AMQP 0.9 messaging with RabbitMQ
    • Directory & Repository: Endpoint discovery and cloud storage
      We provide a global instance of the S³I , which runs in a RWTH Aachen server and includes:

Global instance of S³I

We provide a global instance of the S³I, which runs in a server located at MMI, RWTH Aachen University and can be used for testing. It includes:

Name Endpont
S³I IdentityProvider https://idp.mmi-0.s3i.mmi-services.de/
S³I Broker amqp://broker.mmi-0.s3i.mmi-services.de/
S³I Directory https://dir.mmi-0.s3i.mmi-services.de/
S³I Repository https://repo.mmi-0.s3i.mmi-services.de/
S³I Config https://config.mmi-0.s3i.mmi-services.de/
S³I Postbox API https://postbox.mmi-0.s3i.mmi-services.de/
S³I Manager (coming soon) http://manager.mmi-0.s3i.mmi-services.de/

Roadmap of the SDK

In the near future, we will provide the supports to:

  • Postbox API: REST-based alternative to AMQP for sending and receiving I4.0 messages
  • Discovery Service: Endpoint discovery using query parameters
  • Authorization: XACML-based access control framework
  • Events: Support for AAS- and AMQP-based events
  • Server Infrastructure: The open-source server infrastructure for the Smart Systems Service Infrastructure (S³I) and its configuration for docker and kubernetes

Technical Structure

Module Purpose
aas_thing/core.py BaseAASThing: lifecycle, configuration, event loop
aas_thing/aas_connection.py AASConnector: load/sync AAS & submodels
aas_thing/s3i_connection.py S3IConnector: interface to S³I IdentityProvider, Broker
aas_thing/message_handler.py I40SemanticProtocolHandler: handle_request, handle_reply of incoming I4.0 messages
aas_thing/s3i.identity_provider.py S3IIdentityProviderClient: create connection to S³I IdP
aas_thing/s3i.broker.py S3IBrokerAMQPClient: create connection to S³I Broker
aas_thing/s3i.directory.py S3IDirectoryClient: create connection with S³I Directory
aas_thing/s3i.repository.py S3IRepositoryClient: create connection with S³I Repository

Installation

Install from PyPI:

$ python -m pip install aas-thing

Or build & install from source:

$ git clone git@git.rwth-aachen.de:co2for-it/s3i/aas-thing-python-sdk.git
$ cd aas-thing-python-sdk
$ python -m pip install .

Documentation

Full API reference, tutorials, and demos are available in the documentation.

Contributing

Contributions, bug reports, and feature requests are welcome! Please:

  • Fork the repository
  • Create a feature branch (git checkout -b feature/XYZ)
  • Commit your changes (git commit -m "Add XYZ")
  • Push to your fork (git push origin feature/XYZ)
  • Open a Merge Request

See CONTRIBUTING.md for detailed guidelines.

License

This project is licensed under the LGPL v3 License. See the LICENSE file for details.

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

aas_thing-0.9.3.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

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

aas_thing-0.9.3-py3-none-any.whl (43.0 kB view details)

Uploaded Python 3

File details

Details for the file aas_thing-0.9.3.tar.gz.

File metadata

  • Download URL: aas_thing-0.9.3.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for aas_thing-0.9.3.tar.gz
Algorithm Hash digest
SHA256 3098403703fa2e1f2865dd90d4ac5729fd522c70f70ee1696fb73695b00204ae
MD5 b8cb7f9288b738e230919251b7103851
BLAKE2b-256 643dc835834946674d6a3379dd6a455c975a932de605a084cfc835fe47cfee37

See more details on using hashes here.

File details

Details for the file aas_thing-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: aas_thing-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 43.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for aas_thing-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 74ae38b9531c92480ab852cf5d9a49001aebed37562d4868457f0f93ac7884ba
MD5 0a522f6348eb985d175af4cb5e0b67b0
BLAKE2b-256 27b646b355ec44b1b41802ac062177710679770e53bf916fc22708bff386c2f2

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