IoT

EV charging station platform

The gateway through which charging stations talk to the platform: long-lived TCP sessions over a custom binary protocol, real-time commands, telemetry and billing — and everything around it: the database, the admin panel and the API for the mobile app.

The problem

Stay in touch with every station in real time

Charging stations connect to the platform over always-open TCP connections and speak a custom binary protocol rather than ordinary HTTP.

The platform has to see the state of every session right now, send commands to stations remotely, handle billing and expose all of it to the mobile app and the admin panel.

Technology

Platform stack

Gateway and API

Node.jsExpressTCP socketsBinary protocol

Real time

Redis Pub/Sub

Data

PostgreSQL

Interfaces

ReactMobile app API

The solution

What was done

Station gateway

A Node.js gateway holds long-lived TCP sessions with the stations and parses the custom binary protocol.

  • Long-lived TCP sessions on Node.js
  • Custom binary protocol

Real-time layer

Redis Pub/Sub connects the socket layer with the Express API: commands go to the stations, session state comes back to the platform.

  • Remote commands
  • Live session state
  • Uptime telemetry

Billing and data

A PostgreSQL schema for sessions, stations and billing.

  • Sessions, stations and billing in one PostgreSQL schema
  • Charging session billing

Admin and mobile API

A React admin panel and the API for the mobile app.

  • React admin
  • Mobile app API

Outcome

What came out of it

A platform that speaks to the stations in their own language and in real time, while exposing an ordinary API to the admin panel and the mobile app.

  • Long-lived sessions with the stations over their own protocol
  • Remote commands and the live state of every session
  • Uptime telemetry and billing in one system

Contacts

Tell us about the task

Tell us in two paragraphs what's not working. We will tell you whether we take it on and where we suggest starting. Meetings online, or in person in Uzhhorod or Kyiv.

We reply within one business day.

Telegram