Apostol CSMS — le moteur qui fait tourner ChargeMeCar
ChargeMeCar est un service grand public sur Apostol CSMS : une plateforme de gestion de bornes de recharge avec trois versions d'OCPP, l'itinérance OCPI, les paiements Stripe Connect et plusieurs opérateurs indépendants sur une même instance. Cette page dit clairement ce qui est en production, ce qui est prêt et ce qui reste prévu.
Comment ChargeMeCar se rapporte à la plateforme
Trois choses à savoir - par transparence, pas pour la plaquette.
Le même moteur, pas de fork
ChargeMeCar tourne sur le même build logiciel que toute autre marque de la plateforme, sous une licence de marque signée cryptographiquement. Les versions de la plateforme lui parviennent comme à tout le monde : une commande de mise à jour, des contrôles de santé, un retour arrière de la même forme.
Indépendant sur le plan opérationnel
Notre compte Stripe, notre infrastructure, notre entité juridique - FROG IT SARL, Nice. Le propriétaire de la plateforme n'exploite pas ChargeMeCar et ne peut pas toucher à son argent : les paiements sont débités sur les comptes Stripe des propriétaires de bornes, et les données de la marque sont chiffrées avec une clé propre à la marque.
Fondation ouverte, cœur documenté
La plateforme repose sur une fondation ouverte publiée sous licence libre sur GitHub : le framework de transport et la couche plateforme PostgreSQL. Ce qu'une marque achète ou licencie, c'est la couche métier de la recharge par-dessus - et le cœur dont elle dépend peut être lu par n'importe qui.
Ce que fait la plateforme - avec le statut honnête de chaque ligne
Trois niveaux, volontairement séparés : en production - tourne sur des bornes réelles avec de l'argent réel ; prêt - implémenté et couvert par les tests et le simulateur de bornes, mais sans volume de production encore ; prévu - sur la feuille de route, pas livré.
Bornes
- OCPP 1.6 - le protocole principal de la plateforme ; toute borne qui le parle se connecte sans adaptationEn production
- OCPP 2.0.1 - 12 blocs fonctionnels sur 16 complets, 4 partielsPrêt
- OCPP 1.5 - parcs anciensPrêt
- Parc mixte : la version est détectée automatiquement, les commandes sont traduites entre formatsPrêt
- Connexion en autonomie par le propriétaire - environ 15 minutes ; la borne s'enregistre à sa première connexionEn production
- Démarrage, arrêt, déverrouillage du câble, redémarrage, mise en service et retrait à distance - depuis le portail, l'appli conducteur ou par QREn production
- Mises à jour de firmware depuis un lien ou la bibliothèque de fichiers de la plateforme ; journal des événements de sécurité de la bornePrêt
- Opérations en masse sur un parc, hiérarchie de sites (région → ville → site → zone)Prévu
Tarifs et argent
- Cinq prestations facturables : au kWh, à la minute de charge, immobilisation après la fin, réservation, pauseEn production
- Tarifs par planning : jour de la semaine, heure, jour/nuitPrêt
- Stripe et Stripe Connect : débits directs sur le compte du propriétaire de la borne, reçus au nom du propriétaire, remboursementsPrêt
- Paiement à l'acte par QR sans inscription - l'exigence AFIR de l'UE ; testé de bout en bout contre le vrai StripePrêt
- Commission de la plateforme retenue sur chaque paiement ; relevé mensuel détaillé au propriétaireEn production
- Solde prépayé d'une organisation, facturation par session et par kWh pour les parcs propresEn production
- Comptabilité en partie double sur les comptes internes - les sommes se recoupent par constructionEn production
- Tarification dynamique (selon la demande, selon le prix de l'électricité)Prévu
Opérateurs et conducteurs
- Plusieurs opérateurs indépendants sur une instance, chacun ne voit que le sienEn production
- Rôles : propriétaire, administrateur, opérateur, ingénieur, support, conducteur, partenaireEn production
- Partenaires - un sous-réseau à l'intérieur d'un opérateur, avec comptabilité des revenusPrêt
- Appli web conducteur : carte avec filtres, démarrage et arrêt, progression de session, historique, cartes enregistrées, RFID, réservations - huit languesEn production
- Notifications : push, e-mail, dans l'appli ; envois en massePrêt
- Assistant de support IA dans l'appli conducteur, agissant strictement dans les droits du conducteurPrêt
- Applications natives sur l'App Store et Google PlayPrévu
Itinérance et intégrations
- OCPI 2.2.1 et 2.3.0 en même temps, dans les deux rôles : opérateur de points de charge et fournisseur de services de mobilitéPrêt
- Publication des bornes, tarifs, sessions et enregistrements de règlement vers un réseau partenaire via un hub - échange réel réussiEn production
- Réception des jetons et commandes du partenaire en échange réelPartiel
- Contrats avec Hubject et Gireve - une étape commerciale pour l'opérateur ; le prérequis technique est en placePrévu
- API REST ouverte - des centaines de méthodes avec spécification OpenAPI, événements en temps réel, webhooksEn production
- Connecteurs comptabilité et ERPPrévu
Exploitation et sécurité
- Tableau de bord opérateur : bornes par état, énergie, revenus, utilisation, alarmes ; console d'incidents avec flux d'événements en directEn production
- Livraison en conteneurs ; installation, mise à jour sans interruption et retour arrière - quatre déploiements sur une même chaîneEn production
- Connexion OAuth 2.0, y compris Google ; protection de session navigateur ; trois niveaux indépendants de contrôle d'accès ; journaux d'auditEn production
- Export de rapports Excel/CSV, générateur de rapports, indicateurs d'utilisation et de disponibilitéPrévu
- Supervision externe et alertes, sauvegarde à un instant donnéPrévu
- ISO 15118 Plug & Charge, certificats mutuelsPrévu
Standards ouverts, pas de dépendance fournisseur
La plateforme parle les protocoles qu'utilise tout réseau de recharge moderne - OCPP vers le matériel, OCPI vers les autres réseaux. Toute borne conforme OCPP fonctionne, quel qu'en soit le fabricant.
OCPP - trois versions, un seul runtime
- OCPP 1.5 (SOAP)
Compatibilité avec les équipements anciens encore en service.
- OCPP 1.6 (JSON / WebSocket)
Le protocole principal de la plateforme : une borne qui le parle se connecte sans adaptation.
- OCPP 2.0.1
Le modèle à trois niveaux Station → EVSE → Connecteur, un modèle d'appareil persistant, les événements de sécurité, la gestion du firmware. 12 blocs fonctionnels sur 16 complets.
La version est détectée à la connexion. Les commandes du portail sont traduites 1.6 ↔ 2.0.1, de sorte qu'un parc mixte se gère dans une seule interface.
OCPI - itinérance avec les deux versions actives
- Rôle CPO
Expose les bornes, tarifs et sessions de la marque aux réseaux partenaires - la publication via un hub a réussi un échange réel.
- Rôle eMSP
Accepte les jetons des conducteurs partenaires et les commandes de démarrage à distance par le même canal - implémenté et testé, pas encore prouvé en échange réel.
Neutre vis-à-vis du matériel, par conception
Toute borne OCPP 1.5 / 1.6 / 2.0.1 - y compris celle d'un concurrent. Un parc mixte se consolide dans un seul portail sans reflasher : l'adresse du serveur OCPP se change dans l'interface web de la borne elle-même.
Construit autour du périmètre réglementaire de l'UE
Débits directs Stripe Connect sur le compte du propriétaire de la borne, paiement à l'acte par QR pour l'AFIR, authentification forte du client selon la DSP2, RGPD dans la couche de données.
Stripe Connect
« Connecter avec Stripe » depuis le portail - votre propre compte Stripe, de n'importe quel pays ; débits directs sur le compte du propriétaire ; le reçu est émis depuis le compte du propriétaire à son nom ; la commission de la plateforme est retenue sur chaque paiement, avec un relevé mensuel pour la comptabilité ; remboursements par le même canal.
AFIR - paiement à l'acte
Les points accessibles au public doivent accepter le paiement de tout conducteur sans contrat ni appli : le conducteur scanne le QR code sur la borne, voit le tarif, paie par carte et recharge. Implémenté et testé de bout en bout contre le vrai Stripe.
DSP2 / 3-D Secure
L'authentification forte du client pour les cartes européennes est imposée par Stripe ; aucun chemin de paiement ne la contourne.
RGPD
Les données restent dans l'UE, le conducteur peut supprimer son compte depuis l'appli, les consentements sont enregistrés, chaque action laisse une piste d'audit.
Un transport mince, la logique dans la base
Deux couches dans le cœur : un transport mono-boucle écrit en C++ moderne - HTTP, WebSocket, TLS, OCPP - et la logique métier écrite dans PostgreSQL même. Un choix d'ingénierie délibéré, avec ses arguments.
Une boucle d'événements pour HTTP et PostgreSQL
Les connexions à la base vivent dans la même boucle d'événements que les connexions HTTP et WebSocket : une requête est un aller-retour vers la base, une transaction. Des dizaines de milliers de bornes gardent des connexions persistantes vers un seul nœud avec une latence stable.
Intégrité de l'argent par construction
Le calcul du coût, la vérification du solde, la protection contre la double dépense et la facturation s'exécutent dans une seule transaction de base - l'atomicité est garantie par PostgreSQL, pas par du code applicatif. Une session terminée avec une facture perdue, ou un double débit sur des requêtes concurrentes, est exclu par conception.
Licence et manifeste de marque
Une marque tourne sous une licence signée cryptographiquement - nom, entité juridique, marché, domaine, identifiants fiscaux - qui ne peut être réémise sans le propriétaire de la plateforme. L'apparence, le prestataire de paiement, la langue, la devise et les cartes vivent dans un manifeste de marque édité dans le portail, appliqué sans reconstruction.
Fondation ouverte
Le framework de transport et la couche plateforme PostgreSQL sont publiés sous licence libre sur GitHub ; la couche métier de la recharge par-dessus est le produit. La livraison est un Docker Compose sur le serveur de la marque, avec une base inaccessible depuis le segment réseau extérieur.
Là où la plateforme est en retrait sur les leaders entreprise - et le dit
Rien de tout cela n'empêche d'exploiter et de gagner aujourd'hui ; tout cela est du travail planifié.
ISO 15118 Plug & Charge
La voiture s'autorise elle-même, sans carte ni appli. Pertinent pour les parcs DC premium et intégré à certains dispositifs nationaux de subvention.
Applications mobiles natives
Les conducteurs utilisent une appli web qui s'installe sur le téléphone en un geste ; la présence sur l'App Store et Google Play est l'étape suivante.
Équilibrage de charge au niveau du site
Les profils de puissance sont transmis à une borne et stockés ; la répartition de la puissance entre les bornes d'un site et la réaction aux pics du réseau sont prévues.
Exploitation de parc à grande échelle
Opérations en masse sur le firmware et les réglages, hiérarchie de sites, export de rapports et générateur de rapports - ce que demande un opérateur de cinquante bornes et plus.
Hubs d'itinérance
La moitié eMSP d'OCPI en échange réel, et des contrats avec Hubject et Gireve.
Vous voulez la plateforme sous votre propre marque ?
Une nouvelle marque se déploie sur un serveur préparé en quelques minutes - avec son domaine, son entité juridique, son prestataire de paiement et son apparence. Fabricants et opérateurs : le programme marque blanche est sur la page suivante.