Open Source EEBUS libraries released

2022-12-05 (Andreas Linde)

In our time it is getting more and more important to use the available energy efficiently. Our homes are getting electrified more and more. We have ovens, washing mashines, dryers, dish washers. But also devices which consume more energy over a longer time, like heat pumps and charging electrical vehicles (EV).

Critics are claiming that if everyone is charging their EVs at the same time, our grids would collapse. Well, just like if everyone would turn on the vacuum cleaners at the same time ;) While this won’t really happen, there are still a lot of challenges to overcome. The local grid network may not be able to provide enough power, the house installation may exceed its limits, just to name a few.

Therefor it is vital to coordinate power consumption without hassles. It doesn’t matter if the car is fully charged at midnight or at 7am, and charging could be slower while the heat pump is working. To realize this, the EEBUS consortium was founded and developed a communication standard which would allow different devices to be coordinated.

There are commercially available EEBUS SDKs. And since the specification is freely available as Open Source, there hasn’t been any Open Source SDK made available yet.

Until now :) Today the probably first fully Open Source EEBUS libraries under MIT license are released as version 0.1: eebus-go and cemd.

# eebus-go

This library provides a complete foundation for implementing EEBUS use cases. The use cases define various functional scenarios for different device categories, e.g. energy management systems, charging stations, heat pumps, and more.

Basic understanding of the EEBUS concepts SHIP and SPINE to use this library is required. Please check the corresponding specifications on the EEBUS downloads website.

Version 0.1 provides support for these features:

  • Support for SHIP 1.0.1
  • Support for big parts of SPINE 1.1.1
  • (De-)serialization for EEBUS specific JSON format requirements
  • Certificate handling
  • mDNS Support, incl. avahi support (recommended)
  • Connection (websocket) handling, including reconnection and double connections
  • Support for handling pairing of devices

For more details check out the repository.

# cemd

This library provides a foundation to implement energy management solutions using the eebus-go library. It is designed to be included either directly into go projects. In the future it is planned to be able to run this as a daemon for other systems interact with.

Version 0.1 provides support for these use cases:

  • E-Mobility:

    • EVSE Commissioning and Configuration V1.0.1
    • EV Commissioning and Configuration V1.0.1
    • EV Charging Electricity Measurement V1.0.1
    • EV State Of Charge V1.0.0 RC1
    • Optimization of Self Consumption During EV Charging V1.0.1b
    • Overload Protection by EV Charging Current Curtailment V1.0.1b

These use cases are currently planned to be supported in the future:

  • E-Mobility:

    • Coordinated EV Charging V1.0.1
    • EV Charging Summary V1.0.1

More use cases and scenarios will hopefully follow in the future as well.

For more details check out the repository.

# contact

If you are interesting in joining the development of any of these libraries, want to use them in your services, need other services around EEBUS, please feel free to get in touch