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.
In the EEBus section of the openMUC website you can also find a public User Guide as well as our JavaDocs for this project.
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
NodeManagementautomatically handles subscription-, binding- or remote discovery requests. - Automated Discovery API: You can register
UseCaseListenersthat 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/WRITEcommands, 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.
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.
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 buildTo run all contained unit tests, run
./gradlew testThere 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.
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