Skip to content

openmuc/jeebus.spine

Repository files navigation

jEEBus.SPINE

maven-central Ask DeepWiki

This repository contains the Java implementation of the Smart Premises Interoperable Neutral-message Exchange (SPINE) which represents the information layer of the EEBus Communication Standard, containing its data model. It is developed and maintained by the Team Smart Grid Communication at the Fraunhofer Institute for Solar Energy Systems ISE. For further information please refer to our website.

The SPINE Specification can be downloaded from the website of the EEBus Initiative e.V.

Documentation

In the EEBus section of the openMUC website you can also find a public User Guide as well as our JavaDocs for this project.

Key Features

jEEBus.SPINE provides an easy-to-use API and features many abstractions and automations to make EEBus use case development more efficient.

  • Automated NodeManagement: Our implementation of SPINE NodeManagement automatically handles subscription-, binding- or remote discovery requests.
  • Automated Discovery API: You can register UseCaseListeners that are automatically called only if valid use case partners are identified on remote devices.
  • Complete and powerful SPINE data classes: jEEBus.SPINE essentially uses the SPINE data model as a metamodel for code generation and serialization. This Model-driven engineering approach brings a number of benefits:
    • SPINE Specification updates are quick and easy to implement
    • There is less room for implementation errors
    • Every data class has powerful convenience features:
      • Fluent builder API + constructors
      • Cloning and copying
      • Deep equal checks
      • Sensible hash code generation
      • Human-readable string representations
  • Abstract Feature and FeatureFunction logic: This includes the handling of READ / WRITE commands, SPINE protocol validation, filtering via Selectors and ElementTypes and the notification of subscribers.
  • Integration with jEEBus.SHIP: jEEBus.SPINE seamlessly integrates jEEBus.SHIP for transport layer functionality.

Contributing

We are currently working out the contribution process.

If you would like to contribute to this project, please get in touch with the development team here on GitHub or use the contact form on our website.

Project Setup

This is a Gradle Project that comes with a packaged Gradle Wrapper (use ./gradlew on Linux and gradlew.bat on Windows systems). You can run the following command to download all necessary dependencies and build the project:

./gradlew clean build

To run all contained unit tests, run

./gradlew test

There are three subprojects in the projects folder. spine contains the general implementation of SPINE, while spine-test-utilities provides a framework to develop automatic tests for SPINE applications. demo contains minimal example applications showing how jEEBus.SPINE can be configured and used.

License

Copyright (c) 2026 Fraunhofer ISE

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0 or the provided LICENSE file.

SPDX-License-Identifier: EPL-2.0

About

Java Implementation of the EEBus SPINE specification.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages