CHANGELOG.md

## [v0.5.2] - 2025-09-30

### Added

- OSDP file transfer command support (#42)

## [v0.5.1] - 2023-05-08

### Added

- OSDP packet tracing (#39) - `Jeff.enable_trace/2` for more details
- Allow specifying timeout for commands (#40)

### Fixed

- Removing non-registered devices no longer crashes the ACU process (#38)

## [v0.5.0] - 2023-04-06

**Breaking Changes**

`Jeff.ACU.send_command/4` and `Jeff.ACU.send_command_oob/4` now return tagged
tuples of `{:ok, Jeff.Reply.t()}` and `{:error, term()}` instead of just the
reply struct. You'll need to update you code if you are relying on the returns
of these functions. Likewise, many of the `Jeff.*` functions were adapted to
return an error tuple when needed.

### Added

- Added Input and Output commands and replies (#32)
- Support Manufacturer specific commands/replies (osdp_MFG and osdp_MFGREP) (#33)
- Use tagged tuples for `send_command` and `send_command_oob` returns (#36)

### Fixed

- Reset communication on sequence number desync (#34)
- Fix request failures to offline devices (#36)

## [v0.4.1] - 2022-08-10

### Added

- Added `:transport_opts` option to `Jeff.ACU.start_link` for passing options
  to the underlying transport.

## [v0.4.0] - 2022-07-29

### Changed

- Capabilities now returns a map. See `Jeff.Reply.Capabilities` for more info.

### Fixed

- Gracefully handle ACU process termination to prevent orphaned Jeff.Transport
  and Circuits.UART processes.

## [v0.3.2] - 2022-04-13

### Added

- Support removal of peripheral devices from ACU bus

## [v0.3.1] - 2022-03-31

### Changed

- Add controlling_process to ACU start opt type

## [v0.3.0] - 2022-03-09

### Changed

- Improve documentation and typespecs
- Improve README and docs
- Rename ControlPanel -> ACU

### Added

- Add LICENSE info

## [v0.2.0] - 2022-02-10

### Added

- Send out-of-band commands: send commands to devices not yet registered to the
  communication bus loop.
- Check OSDP address: Checks whether address is available to register to a bus.