What was the problem or opportunity that we needed to solve? đ¯
Myenergi faced a roadblock in accessing certain markets due to their devices' lack of OCPP (Open Charge Point Protocol), a communication standard for public charge points increasingly required for domestic chargers' tax reporting. While every Myenergi charger possesses the necessary data for OCPP over its proprietary API, implementing the OCPP standard within the devices was impractical due to their computational limitations. Our project aimed to develop an OCPP translation service, effectively rendering the Myenergi charger network compatible with the OCPP standard.
How have we approached the challenge? đĄ
Apex Lab designed a web service that mimics the end charger's role for the Charge Management Platform while acting as a translation layer. By converting Myenergi API calls into actions requested through OCPP, we've enabled Myenergi chargers to function as if they were OCPP-compatible without requiring additional firmware development.
What is the outcome? â
This project's successful delivery expanded Myenergi's customer base to previously inaccessible markets without necessitating any modifications to their chargers. While our Minimum Viable Product (MVP) went live in July 2023, we plan to support additional OCPP commands in the coming months to develop a full-fledged solution.
Applied technologies
We employed a combination of OCPP standard, AWS Lambdas, Redis, Postgres, Typescript, and Node.js to deliver a robust and effective solution.
Keywords
AWS Lambda, SST, AWS RDS, Redis, Terraform, Vitest, Typescript, Node.js, tRPC, REST
Background information
Previous attempts to implement the OCPP standard directly within the devices were ineffective due to computational constraints. The translation service solution we developed allows for OCPP compatibility without altering the device firmware, proving an innovative and effective approach. Note that the solution currently only supports new devices, with support for legacy devices in the pipeline pending firmware resolutions.