{"id":27962322,"url":"https://github.com/thoughtworks/maeve-csms","last_synced_at":"2025-05-07T19:20:23.979Z","repository":{"id":179489782,"uuid":"663544782","full_name":"thoughtworks/maeve-csms","owner":"thoughtworks","description":"MaEVe is an experimental EV Charge Station Management System (CSMS)","archived":false,"fork":false,"pushed_at":"2024-08-01T17:20:26.000Z","size":1356,"stargazers_count":88,"open_issues_count":9,"forks_count":23,"subscribers_count":23,"default_branch":"main","last_synced_at":"2024-12-06T21:18:50.716Z","etag":null,"topics":["e-mobility","electric-vehicles"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thoughtworks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-07T14:41:42.000Z","updated_at":"2024-11-27T11:05:56.000Z","dependencies_parsed_at":"2023-12-25T12:01:48.084Z","dependency_job_id":"71284443-dc3b-438f-b7e6-4d5d97f89e59","html_url":"https://github.com/thoughtworks/maeve-csms","commit_stats":{"total_commits":198,"total_committers":14,"mean_commits":"14.142857142857142","dds":0.5606060606060606,"last_synced_commit":"b79946ac4f6d5c830cc65ebbfbd4933a40f230e3"},"previous_names":["thoughtworks/maeve-csms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtworks%2Fmaeve-csms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtworks%2Fmaeve-csms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtworks%2Fmaeve-csms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtworks%2Fmaeve-csms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thoughtworks","download_url":"https://codeload.github.com/thoughtworks/maeve-csms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252941277,"owners_count":21828842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-mobility","electric-vehicles"],"created_at":"2025-05-07T19:20:23.286Z","updated_at":"2025-05-07T19:20:23.967Z","avatar_url":"https://github.com/thoughtworks.png","language":"Go","funding_links":[],"categories":["Tools and Resources"],"sub_categories":["Charging Station Management Systems (CSMS)"],"readme":"[![Manager](https://github.com/thoughtworks/maeve-csms/workflows/Manager/badge.svg)](https://github.com/thoughtworks/maeve-csms/actions/workflows/manager.yml)\n[![Gateway](https://github.com/thoughtworks/maeve-csms/workflows/Gateway/badge.svg)](https://github.com/thoughtworks/maeve-csms/actions/workflows/gateway.yml)\n\n# MaEVe\n\nMaEVe is an EV charge station management system (CSMS). It began life as a simple proof of concept for\nimplementing ISO-15118-2 Plug and Charge (PnC) functionality and remains a work in progress. It is hoped that over\ntime it will become more complete, but already provides a useful basis for experimentation.\n\nThe system currently integrates with [Hubject](https://hubject.stoplight.io/) for PnC functionality.\n\n## Table of Contents\n- [Documentation](#documentation)\n- [Getting Started](#getting-started)\n- [Configuration](#configuration)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Documentation\nMaEVe is implemented in Go 1.20. Learn more about MaEVe and its existing components through this [High-level design document](./docs/design.md).\n\n## Pre-requisites\n\nMaEVe runs in a set of Docker containers. This means you need to have `docker`, `docker-compose` and a docker daemon (e.g. docker desktop, `colima` or `rancher`) installed and running.\nScripts that fetch various tokens use `jq`. Make sure you have it installed.\n\n## Getting started\n\nTo get the system up and running:\n\n1. `(cd config/certificates \u0026\u0026 make)`\n2. Run the [./scripts/run.sh](./scripts/run.sh) script\n\nCharge stations can connect to the CSMS using:\n* `ws://localhost/ws/\u003ccs-id\u003e`\n* `wss://localhost/ws/\u003ccs-id\u003e`\n\nIf the charge station is also running in a Docker container then the charge\nstation docker container can connect to the `maeve-csms` network and the\ncharge station can connect to the CSMS using:\n* `ws://gateway:9310/ws/\u003ccs-id\u003e`\n* `wss://gateway:9311/ws/\u003ccs-id\u003e`\n\nCharge stations can use either OCPP 1.6j or OCPP 2.0.1.\n\nFor TLS, the charge station should use a certificate provisioned using the\n[Hubject CPO EST service](https://hubject.stoplight.io/docs/open-plugncharge/486f0b8b3ded4-simple-enroll-iso-15118-2-and-iso-15118-20).\n\nA charge station must first be registered with the CSMS before it can be used. This can be done using the\n[manager API](./manager/api/API.md). e.g. for TLS with client certificate, use:\n\n```shell\n$ curl http://localhost:9410/api/v0/cs/\u003ccs-id\u003e -H 'content-type: application/json' -d '{\"securityProfile\":2}'\n```\n\nTokens, which identify a payment method for a non-contract charge, must also be registered with the CSMS before they can be used. This can also be done using the\n[manager API](./manager/api/API.md). e.g.:\n\n```shell\n$ curl http://localhost:9410/api/v0/token -H 'content-type: application/json' -d '{\n  \"countryCode\": \"GB\",\n  \"partyId\": \"TWK\",\n  \"type\": \"RFID\",\n  \"uid\": \"DEADBEEF\",\n  \"contractId\": \"GBTWK012345678V\",\n  \"issuer\": \"Thoughtworks\",\n  \"valid\": true,\n  \"cacheMode\": \"ALWAYS\"\n}'\n```\n\n## Troubleshooting\n\nDocker compose doesn't always rebuild the docker images which can cause all kinds of errors. If in doubt, force a rebuild by `docker-compose build` before launching containers.\n\n`java.io.IOException: keystore password was incorrect`\nThis error results from incompatibility between java version and openssl; try upgrading your java version.\n\n## Configuration\n\nThe gateway is configured through command-line flags. The available flags can be viewed using the `-h` flag. \n\nThe manager is configured through a TOML configuration file. An example configuration file can be found in \n[./config/manager/config.toml](./config/manager/config.toml). Details of the available configuration options\ncan be found in [./manager/config/README.md](./manager/config/README.md).\n\n## Contributing\n\nLearn more about how to contribute on this project through [Contributing](./CONTRIBUTING.md)\n\n## License\nMaEVe is [Apache licensed](./LICENSE).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtworks%2Fmaeve-csms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthoughtworks%2Fmaeve-csms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtworks%2Fmaeve-csms/lists"}