Code
Code & releases
Three Go modules, versioned independently, released together when the layers below change. Everything is on GitHub — issues, discussions and pull requests included.
How the layers stack
- eebus-go
Use cases — EV charging, self-consumption optimisation, power limitation. This is the import most products need.
- spine-go
Data model — SPINE 1.3: entities, features, function types, subscriptions and bindings.
- ship-go
Transport & trust — certificates, mDNS discovery, WebSocket, pairing, SHIP handshake.
Current versions
from GitHub releases| Module | Version | Released | Licence | Highlights | Notes |
|---|---|---|---|---|---|
| eebus-go | v0.7.0 | MIT | Use-case API reshaped, monitoring and limitation of power consumption | Changelog | |
| spine-go | v0.7.0 | MIT | SPINE 1.3 coverage, binding and subscription handling | Changelog | |
| ship-go | v0.6.0 | MIT | mDNS provider rework, connection lifecycle fixes | Changelog |
Versions and dates above are pulled directly from the GitHub releases of each module. The licence link points to the file in the respective repository.
Supporting repositories
The discovery layer underneath SHIP. Neither is EEBUS code, and neither is tagged — go.mod pins them by commit rather than by version.
mDNS and DNS-SD service discovery in pure Go
- Commits
- 254
- Last commit
Bindings for the Avahi daemon, where the port is already taken
- Commits
- 50
- Last commit
Implemented use cases
Other open source implementations
EEBUS is a specification, not a single codebase. Where Go does not fit the product, these projects implement the same protocols in other languages — and testing against an independent implementation is one of the better ways to find out whether a device really follows the specification.
SHIP and SPINE in C / C++, for embedded targets where a Go or Java runtime is not an option.
- Maintained by
- NIBE Group
- Licence
- Apache-2.0
SHIP and SPINE as separate Java libraries, plus the controllable-system side of LPC and LPP, from the Smart Grid Communication group at Fraunhofer ISE.
- Maintained by
- Fraunhofer ISE
- Licence
- EPL-2.0
Report a problem
Interoperability bugs are the most valuable issues we get. Include the device, the firmware version and a SHIP/SPINE trace if you have one.
Open an issueContribute code
New use cases, test coverage and device quirk handling are all welcome. Read the contributing guide first — the SPINE model has conventions worth following.
Contributing guideHow decisions are madeCommercial support
Several consortium partners offer integration work, test-lab access and certification support around the stack on commercial terms.
Find a partner