codetics-evse-id 0.1.0

Codetics OCPP: e-mobility identifiers (EVSE, pool and station IDs, IDRR / eMI3 format) with the IDRR Annex 1 check character
Documentation
  • Coverage
  • 50%
    16 out of 32 items documented0 out of 17 items with examples
  • Size
  • Source code size: 30.1 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 264.0 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 2s Average build duration of successful builds.
  • all releases: 2s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • kevinvavelin

codetics-evse-id

E-mobility identifiers in the IDRR / eMI³ / ISO 15118 format, without the COUNTRY*OPERATOR* prefix: a type character (E EVSE, P pool, S station) followed by up to 30 alphanumeric characters.

Generated identifiers end with a check character computed with the IDRR Annex 1 algorithm (Chen, Niemenmaa & Vinck, 2013). It detects every single-character error and every adjacent transposition. Annex 1 defines this check digit for contract IDs (EMAID); it is applied here to the local part of the identifier.

use codetics_evse_id::{EvseId, IdType, check_digit};

// Annex 1 worked example.
assert_eq!(check_digit("DE83DUIEN83QGZ").unwrap(), 'D');

let station = EvseId::station(1);
assert_eq!(station.as_str(), "S000001D");
let evse = EvseId::evse_of(&station, 2).unwrap();
assert_eq!(evse.kind(), IdType::Evse);
assert!(EvseId::parse(evse.as_str()).is_ok());
assert!(evse.with_operator("FR", "ABC").starts_with("FR*ABC*E"));

Part of Codetics OCPP

This crate belongs to Codetics OCPP, a complete OCPP 1.6J / 2.0.1 / 2.1 implementation in Rust written by Kevin Vavelin (Codetics). It can be used as is; contributions are welcome.

License and credit

Licensed under the Apache License, Version 2.0.

Copyright 2026 Kevin Vavelin, Codetics. Any redistribution of this crate or of a work derived from it (including forks and products embedding it) must keep the copyright notice and include the NOTICE file crediting Kevin Vavelin / Codetics as the origin of the work.