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 ;
// Annex 1 worked example.
assert_eq!;
let station = station;
assert_eq!;
let evse = evse_of.unwrap;
assert_eq!;
assert!;
assert!;
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.