Skip to main content

CHANGELOG.md

# Changelog

## [v0.6.0-rc.0] - 2026-06-02

### Fixed

- Crashes when unsupported VIFEs were used.
- Crash when "record error" VIFE was not the first VIFE of a record.

### Added

- Support for more orthogonal VIFEs ("value during limit exceed", "date(/time) of")
- Better handling of (still unsupported) orthogonal extension table (`0xFC`) to avoid crashing.

### Changed

- Rewrite internals around data record parsing to allow access to a (read-only) parser context.

## [v0.5.0] - 2026-03-25

### Changed

- BREAKING CHANGE: VIFEs tagged with `:limit_exceeded` is now tagged with `:limit_exceed` instead.

### Added

- Support for "Limit Exceed" VIFEs.

### Fixed

- Crash when a compact frame was given, but no `format_frame_fn` was provided in options.
- Crash when handler returned unexpected value (e.g. not `next` or `halt`) Now adds an error and halts.

## [v0.4.0]

### Changed

- BREAKING CHANGE: Type G's periodic values now return `Exmbus.Parser.DataType.PeriodicDate` struct instead of `{:periodic, _}` 

## [v0.3.3]

### Fixed

- Fixed bug in type A decoding that caused `0xF` digits to crash the parser in some cases.

## [v0.3.2]

### Added

- AFL MAC verification. Works for unfragmented AFLs.

## [v0.3.1]

### Added

- Authentication and Fragmentation layer (AFL) support added
  - fragmented messages not supported
  - Currently no MAC verification is done
- Security Profile 7 support added (ephemeral keys KDF)
- ELL CI `0x8E` support added

## [v0.3.0]

### Changed

- BREAKING: Making identification numbers **strings instead of integers**.
  This allows us to represent wildcard `F`s at any position.
- Parsing of the lower layers (DLL and TPL) have been made less brittle and will
  in more cases register errors in the context instead of raising an exception.
- BREAKING: Device value in DLL and TPL have been changed from an atom to a struct
  of type `Exmbus.Parser.Tpl.Device`

### Added

- Support for tariff related VIFE in 0xFD table `E011 00NN`.
- Support for VIFE in 0xFD: `E110 0110` State of parameter activation.
- Support for VIF `E001 1101` (Standard conform data content)
- Test for LAN-WMBUS-G2-LDS/LDP.
- Support for expansion of Compact Profile with Register Numbers (Orthogonal VIFE 0x1E)

## [v0.2.0]

Open-sourced