This app is a simple EEBUS device tester written in Go using the eebus-go library. It can be used to test EEBUS implementations by simulating a device that connects to a EEBUS device:
- Starts a local EEBUS service and connects to a remote device using SHIP and SPINE
- Serves a web UI (showing logs, sent/received SPINE messages, usecases and discovered entities. Additionally it shows the values provided under these usecases.
- Provides basic REST APIs to trigger write operations (e.g. LPC limits). Not all write operations are Supported
Several usecases are supported under various actors. The listed write operations are supported as of yet:
-
-
- Write Consumption Limit
- Write Failsafe
-
- Write Consumption Limit
- Write Failsafe
-
-
-
- Write Load Control Limit
-
-
- Not yet implemented
-
The usecase EV Charging Summary (EVCS) is planned to be supported once it becomes available.
# from project root
go build # Build
go build
# Optional: configure device identity in `config.json` (defaults used if missing)
# Example (start with defaults):
./device-tester
# Example with explicit port and certificate files:
./device-tester -p 4815 -c cert.pem -k key.pem- Default UI: http://localhost:8080
If -c and -k are provided they are used. Otherwise the program looks for cert.pem/key.pem next to the executable and uses them if present. If no certificate/key are available the program creates self-signed files on first run using the deviceInfo.identifier value from config.json as certificate CN, or a default identifier if not set.
Device identity config (example config.json snippet):
{
"deviceInfo": {
"vendor": "DemoVendor",
"brand": "DemoBrand",
"deviceName": "Device-Tester",
"identifier": "Demo-HEMS-123"
}
}Based on the eebus-go controlbox example.
Additionally as I have never written GO before and have little experience in webdev, a sizeable portion has been written by coding agents.