OpenADR protocol java implementation: https://www.openadr.org/
Provides a standalone VTN 2.0b implementation and APIs to implements demand-response program and device management. Provides a VEN 2.0b library which can be used to implements a VEN 2.0b.
Module | Description |
---|---|
OpenADRSecurity | OADR security framework (PKI RSA/ECC, XmlSignature) |
OpenADRModel20b | OADR 2.0b model java classes generated from XSDL definition file |
OpenADRServerVEN20b | OADR 2.0b VEN library |
OpenADRServerVTN20b | OADR 2.0b VTN implementation + Control API / UI |
DummyVEN20b | Dummy OADR 2.0b VEN implementation based on OpenADRServerVEN20b |
DummyVTN20bController | Dummy OADR 2.0b VTN controller implementation acting DRProgram and device manager. Leverage OpenADRServerVTN20b APIs. |
Tests certificates are required to test project or run demo:
./generate_test_cert.sh
This command will create several VTN / VEN / User / App certificates upon a self-signed generated authority. This authority has to be installed to disable insecure https warning when using VTN Control API / UI in a browser. VTN certificate uses the following Common Name, which need to be added to the local DNS configuration.
Install self-signed vtn certificate in your browser: cert/vtn.oadr.com-rsa.crt
Add "127.0.0.1 vtn.oadr.com" to your local "/etc/hosts"
An admin trusted client certificate is also generated and can be installed to to perform client authentication.
Install x509 admin certificate in your browser: cert/admin.oadr.com.crt (optional, authentication can be performed using login/pass: admin/admin)
Run a demo of a full 2.0b OADR stack infrastructure interacting with a dummy VEN and a dummy VTN controller. OpenADR communications between VEN and VTN are transported by XMPP. VEN authentication use x509 client certificates and payloads are secured with XML signatures.
The VTN controller is acting as both a device manager by creating VEN authorization / subscribing to VEN reports, and a DemandResponseProgram manager by creating DREvents. The dummy VEN implementation will simulate data reading using information gathered in DREvents and continuously push them to the VTN.
The VTN controller is notified by VTN using AMQP when VTN receive payload from VEN (createRegistrationParty, registerReport, updateReports).
docker-compose up --build
mvn clean verify
mvn clean package -P external,frontend
mvn clean package