Metadata-Version: 2.4
Name: aiopnsense
Version: 1.1.9
Summary: Async Python client library for OPNsense
Author: Snuffy2
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Snuffy2/aiopnsense
Project-URL: Documentation, https://aiopnsense.readthedocs.io
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp<4,>=3.12.0
Requires-Dist: awesomeversion>=25.8.0
Requires-Dist: python-dateutil>=2.9.0
Provides-Extra: docs
Requires-Dist: myst-parser<6,>=5; extra == "docs"
Requires-Dist: sphinx-argparse-cli<2,>=1; extra == "docs"
Requires-Dist: sphinx-rtd-theme<4,>=3; extra == "docs"
Requires-Dist: sphinx<10,>=9; extra == "docs"
Dynamic: license-file

# aiopnsense
[![GitHub Release][releases-shield]][releases]
[![GitHub Release Date][release-date-shield]][releases]
[![GitHub Activity][commits-shield]][commits]
[![Coverage][coverage-shield]][coverage]
[![Documentation][docs-shield]][docs]
[![License][license-shield]](LICENSE)

[![PyPI][pypi-logo]][pypi]

`aiopnsense` is an async Python client library for [OPNsense](https://opnsense.org).

## What this library does

`aiopnsense` wraps supported OPNsense REST endpoints behind a single async client, [`OPNsenseClient`](https://aiopnsense.readthedocs.io/en/stable/api/client.html#aiopnsense.OPNsenseClient). It is designed for applications that need to query router state or trigger supported OPNsense actions without manually building HTTP requests.

The client currently includes helpers for:

- system information, notices, certificates, CARP, Wake-on-LAN, reboot, and interface reloads
- firmware version checks, update status, and upgrade actions
- interface, gateway, CPU, memory, filesystem, and temperature telemetry
- diagnostics traffic snapshots and live interface traffic stream samples
- DHCP lease and ARP table access
- firewall rules, NAT rules, alias toggling, and state killing
- service status lookup and service start/stop/restart operations
- SMART device listing and per-device SMART detail queries
- Unbound blocklist management
- OpenVPN and WireGuard status plus VPN instance toggling
- vnStat metrics, captive portal vouchers, and speed test data

## Requirements

* ### Requires OPNsense Firmware >= 25.1

* #### Recommended OPNsense Firmware >= 26.1.1

  - For firmware < 26.1.1, the `Firewall and NAT` methods will return empty data.

## Documentation

- Read the Docs: <https://aiopnsense.readthedocs.io>

## Live test scripts

The `scripts/` directory includes live diagnostic helpers for maintainers:

- `aiopnsense_dump.py` runs supported `aiopnsense` client endpoints and prints the raw data returned by the library.
- `opnsense_api_call.py` calls an arbitrary OPNsense API endpoint with a specified method and optional POST payload.

Both scripts read credentials from `scripts/aiopnsense.env` by default. Copy `scripts/aiopnsense.env.example` to create your local env file; it is ignored by git. Full CLI reference is in the [Read the Docs script documentation](https://aiopnsense.readthedocs.io/en/stable/scripts.html).

## Origin and Purpose

`aiopnsense` was extracted from the [hass-opnsense](https://github.com/travisghansen/hass-opnsense) integration. It is primarily used as an external dependency by [hass-opnsense](https://github.com/travisghansen/hass-opnsense) and Home Assistant for its [OPNsense Integration](https://www.home-assistant.io/integrations/opnsense).

[commits-shield]: https://img.shields.io/github/last-commit/Snuffy2/aiopnsense?style=for-the-badge
[commits]: https://github.com/Snuffy2/aiopnsense/commits/main
[license-shield]: https://img.shields.io/github/license/Snuffy2/aiopnsense.svg?style=for-the-badge
[docs]: https://aiopnsense.readthedocs.io
[docs-shield]: https://app.readthedocs.org/projects/aiopnsense/badge/?version=stable&style=for-the-badge
[release-date-shield]: https://img.shields.io/github/release-date/Snuffy2/aiopnsense?display_date=published_at&style=for-the-badge
[releases-shield]: https://img.shields.io/github/v/release/Snuffy2/aiopnsense?style=for-the-badge
[releases]: https://github.com/Snuffy2/aiopnsense/releases
[coverage]: https://htmlpreview.github.io/?https://github.com/Snuffy2/aiopnsense/blob/python-coverage-comment-action-data/htmlcov/index.html
[coverage-shield]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FSnuffy2%2Faiopnsense%2Fpython-coverage-comment-action-data%2Fendpoint.json&style=for-the-badge
[pypi-logo]: https://img.shields.io/badge/PyPI-3775A9?logo=pypi&logoColor=fff&style=for-the-badge
[pypi]: https://pypi.org/project/aiopnsense/

# Changelog

## [v1.1.9](https://github.com/Snuffy2/aiopnsense/tree/v1.1.9) (2026-09-04)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.8...v1.1.9)

**Bug Fixes**

- Fix empty Dnsmasq lease interface discovery [\#108](https://github.com/Snuffy2/aiopnsense/pull/108) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Add OpenVPN toggle response logging [\#113](https://github.com/Snuffy2/aiopnsense/pull/113) ([Snuffy2](https://github.com/Snuffy2))
- Modernize CI and release automation with uv [\#106](https://github.com/Snuffy2/aiopnsense/pull/106) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- Fix protected release promotion statuses [\#114](https://github.com/Snuffy2/aiopnsense/pull/114) ([Snuffy2](https://github.com/Snuffy2))
- Migrate release workflow to published releases [\#112](https://github.com/Snuffy2/aiopnsense/pull/112) ([Snuffy2](https://github.com/Snuffy2))
- Fix GitHub release repository detection [\#110](https://github.com/Snuffy2/aiopnsense/pull/110) ([Snuffy2](https://github.com/Snuffy2))
- Update pytest coverage workflows for action v4 [\#109](https://github.com/Snuffy2/aiopnsense/pull/109) ([Snuffy2](https://github.com/Snuffy2))
- Skip coverage comments for prek autoupdate bot [\#104](https://github.com/Snuffy2/aiopnsense/pull/104) ([Snuffy2](https://github.com/Snuffy2))
- Add prek-autoupdate bot auto-merge workflow [\#102](https://github.com/Snuffy2/aiopnsense/pull/102) ([Snuffy2](https://github.com/Snuffy2))

**Other Changes**

- test: optimize and de-brittle test suite [\#100](https://github.com/Snuffy2/aiopnsense/pull/100) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.8](https://github.com/Snuffy2/aiopnsense/tree/v1.1.8) (2026-08-30)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.7...v1.1.8)

## [v1.1.7](https://github.com/Snuffy2/aiopnsense/tree/v1.1.7) (2026-08-08)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.6...v1.1.7)

**Documentation**

- Add pydoclint documentation checks [\#95](https://github.com/Snuffy2/aiopnsense/pull/95) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Reuse parsed vnStat period labels [\#99](https://github.com/Snuffy2/aiopnsense/pull/99) ([Snuffy2](https://github.com/Snuffy2))
- Optimize and harden DHCP lease collection [\#98](https://github.com/Snuffy2/aiopnsense/pull/98) ([Snuffy2](https://github.com/Snuffy2))
- Defer caught-error log rendering [\#97](https://github.com/Snuffy2/aiopnsense/pull/97) ([Snuffy2](https://github.com/Snuffy2))
- Avoid expensive caller stack inspection [\#96](https://github.com/Snuffy2/aiopnsense/pull/96) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.6](https://github.com/Snuffy2/aiopnsense/tree/v1.1.6) (2026-08-01)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.5...v1.1.6)

**Bug Fixes**

- Cache endpoint permission failures [\#91](https://github.com/Snuffy2/aiopnsense/pull/91) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- Update GitHub maintenance workflows [\#90](https://github.com/Snuffy2/aiopnsense/pull/90) ([Snuffy2](https://github.com/Snuffy2))
- Update prek\_autoupdate.yml [\#86](https://github.com/Snuffy2/aiopnsense/pull/86) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.5](https://github.com/Snuffy2/aiopnsense/tree/v1.1.5) (2026-07-21)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.4...v1.1.5)

**Bug Fixes**

- Add timezone to Speedtest dates [\#83](https://github.com/Snuffy2/aiopnsense/pull/83) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.4](https://github.com/Snuffy2/aiopnsense/tree/v1.1.4) (2026-07-20)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.3...v1.1.4)

**Enhancements**

- Support alternate Speedtest plugins [\#80](https://github.com/Snuffy2/aiopnsense/pull/80) ([Snuffy2](https://github.com/Snuffy2))

**Bug Fixes**

- Parse raw NUT UPS status responses [\#79](https://github.com/Snuffy2/aiopnsense/pull/79) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.3](https://github.com/Snuffy2/aiopnsense/tree/v1.1.3) (2026-07-16)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.2...v1.1.3)

**Bug Fixes**

- Switch firewall rule retrieval to CSV downloads [\#77](https://github.com/Snuffy2/aiopnsense/pull/77) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.2](https://github.com/Snuffy2/aiopnsense/tree/v1.1.2) (2026-07-15)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.1...v1.1.2)

**Enhancements**

- Raise public OPNsense exceptions consistently [\#76](https://github.com/Snuffy2/aiopnsense/pull/76) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.1](https://github.com/Snuffy2/aiopnsense/tree/v1.1.1) (2026-07-12)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.1.0...v1.1.1)

**Enhancements**

- Allow validation without device identity [\#75](https://github.com/Snuffy2/aiopnsense/pull/75) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Update agent and live script docs [\#73](https://github.com/Snuffy2/aiopnsense/pull/73) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Trim audit cleanup boilerplate [\#70](https://github.com/Snuffy2/aiopnsense/pull/70) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- Run prek cleanup daily [\#72](https://github.com/Snuffy2/aiopnsense/pull/72) ([Snuffy2](https://github.com/Snuffy2))
- Use reusable prek autoupdate workflow [\#71](https://github.com/Snuffy2/aiopnsense/pull/71) ([Snuffy2](https://github.com/Snuffy2))

## [v1.1.0](https://github.com/Snuffy2/aiopnsense/tree/v1.1.0) (2026-07-03)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.15...v1.1.0)

**New Features**

- Add Kea DHCPv6 lease support [\#64](https://github.com/Snuffy2/aiopnsense/pull/64) ([Snuffy2](https://github.com/Snuffy2))
- Add NUT UPS status endpoint [\#63](https://github.com/Snuffy2/aiopnsense/pull/63) ([Snuffy2](https://github.com/Snuffy2))
- Add live OPNsense test scripts [\#62](https://github.com/Snuffy2/aiopnsense/pull/62) ([Snuffy2](https://github.com/Snuffy2))
- Add diagnostics traffic stream support [\#61](https://github.com/Snuffy2/aiopnsense/pull/61) ([Snuffy2](https://github.com/Snuffy2))

**Enhancements**

- Handle OPNsense 26.1.11 API changes [\#69](https://github.com/Snuffy2/aiopnsense/pull/69) ([Snuffy2](https://github.com/Snuffy2))
- Normalize OPNsense NAT and DHCP payloads [\#68](https://github.com/Snuffy2/aiopnsense/pull/68) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Update agent instructions [\#66](https://github.com/Snuffy2/aiopnsense/pull/66) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- Add issue templates [\#67](https://github.com/Snuffy2/aiopnsense/pull/67) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.15](https://github.com/Snuffy2/aiopnsense/tree/v1.0.15) (2026-06-28)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.14...v1.0.15)

**Bug Fixes**

- Exclude automatic firewall rules [\#59](https://github.com/Snuffy2/aiopnsense/pull/59) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.14](https://github.com/Snuffy2/aiopnsense/tree/v1.0.14) (2026-06-21)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.13...v1.0.14)

**Enhancements**

- Raise missing device unique ID during validation [\#56](https://github.com/Snuffy2/aiopnsense/pull/56) ([Snuffy2](https://github.com/Snuffy2))

**Bug Fixes**

- Preserve deprecated set\_use\_snake\_case compatibility [\#55](https://github.com/Snuffy2/aiopnsense/pull/55) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.13](https://github.com/Snuffy2/aiopnsense/tree/v1.0.13) (2026-06-21)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.12...v1.0.13)

**Bug Fixes**

- Privatize endpoint probe helpers [\#54](https://github.com/Snuffy2/aiopnsense/pull/54) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.12](https://github.com/Snuffy2/aiopnsense/tree/v1.0.12) (2026-06-20)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.11...v1.0.12)

**Bug Fixes**

- Filter invalid SMART devices [\#52](https://github.com/Snuffy2/aiopnsense/pull/52) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Move OPNsense endpoints to module constants [\#53](https://github.com/Snuffy2/aiopnsense/pull/53) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.11](https://github.com/Snuffy2/aiopnsense/tree/v1.0.11) (2026-06-20)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.10...v1.0.11)

**New Features**

- Add SMART device API support [\#51](https://github.com/Snuffy2/aiopnsense/pull/51) ([Snuffy2](https://github.com/Snuffy2))
- Add CARP maintenance mode toggle [\#47](https://github.com/Snuffy2/aiopnsense/pull/47) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Add Documentation link to pyproject [\#44](https://github.com/Snuffy2/aiopnsense/pull/44) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Refactor method-aware endpoint availability [\#48](https://github.com/Snuffy2/aiopnsense/pull/48) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- prek autoupdate [\#45](https://github.com/Snuffy2/aiopnsense/pull/45) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.10](https://github.com/Snuffy2/aiopnsense/tree/v1.0.10) (2026-05-29)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.9...v1.0.10)

**Enhancements**

- Improve generated API docstrings [\#41](https://github.com/Snuffy2/aiopnsense/pull/41) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Support PEP 702 deprecations in docs [\#43](https://github.com/Snuffy2/aiopnsense/pull/43) ([Snuffy2](https://github.com/Snuffy2))
- Update README.md [\#42](https://github.com/Snuffy2/aiopnsense/pull/42) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.9](https://github.com/Snuffy2/aiopnsense/tree/v1.0.9) (2026-05-29)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.8...v1.0.9)

**Bug Fixes**

- Map validation endpoint probe errors [\#39](https://github.com/Snuffy2/aiopnsense/pull/39) ([Snuffy2](https://github.com/Snuffy2))
- Fix for kea lease state change in OPNsense 26.1.8 [\#38](https://github.com/Snuffy2/aiopnsense/pull/38) ([Snuffy2](https://github.com/Snuffy2))
- Raise SSL errors during validate call [\#37](https://github.com/Snuffy2/aiopnsense/pull/37) ([HarlemSquirrel](https://github.com/HarlemSquirrel))

**Code Quality**

- Clean up code noise [\#40](https://github.com/Snuffy2/aiopnsense/pull/40) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.8](https://github.com/Snuffy2/aiopnsense/tree/v1.0.8) (2026-04-06)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.7...v1.0.8)

**Maintenance**

- Merge changelog and release actions [\#35](https://github.com/Snuffy2/aiopnsense/pull/35) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.7](https://github.com/Snuffy2/aiopnsense/tree/v1.0.7) (2026-04-05)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.6...v1.0.7)

**Bug Fixes**

- Fix conf.py [\#32](https://github.com/Snuffy2/aiopnsense/pull/32) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Refine changelog [\#33](https://github.com/Snuffy2/aiopnsense/pull/33) ([Snuffy2](https://github.com/Snuffy2))
- Further documentation refinement [\#31](https://github.com/Snuffy2/aiopnsense/pull/31) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.6](https://github.com/Snuffy2/aiopnsense/tree/v1.0.6) (2026-04-05)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.5...v1.0.6)

**Enhancements**

- Add back legacy unbound blocklist support [\#26](https://github.com/Snuffy2/aiopnsense/pull/26) ([Snuffy2](https://github.com/Snuffy2))
- Add back legacy camelCase support [\#25](https://github.com/Snuffy2/aiopnsense/pull/25) ([Snuffy2](https://github.com/Snuffy2))
- Add validate method [\#23](https://github.com/Snuffy2/aiopnsense/pull/23) ([Snuffy2](https://github.com/Snuffy2))
- Add endpoint checks to prevent errors [\#22](https://github.com/Snuffy2/aiopnsense/pull/22) ([Snuffy2](https://github.com/Snuffy2))
- Firewall endpoints to GET and don't fail if unavailable [\#21](https://github.com/Snuffy2/aiopnsense/pull/21) ([Snuffy2](https://github.com/Snuffy2))

**Bug Fixes**

- Fix showing docstrings in documentation [\#29](https://github.com/Snuffy2/aiopnsense/pull/29) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Clarify opts documentation [\#30](https://github.com/Snuffy2/aiopnsense/pull/30) ([Snuffy2](https://github.com/Snuffy2))
- Introduce GitHub Actions changelog workflow and reorganize docs [\#28](https://github.com/Snuffy2/aiopnsense/pull/28) ([Snuffy2](https://github.com/Snuffy2))
- Add documentation [\#27](https://github.com/Snuffy2/aiopnsense/pull/27) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Finish rename to aiopnsense [\#24](https://github.com/Snuffy2/aiopnsense/pull/24) ([Snuffy2](https://github.com/Snuffy2))
- Change to prek.toml [\#20](https://github.com/Snuffy2/aiopnsense/pull/20) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.5](https://github.com/Snuffy2/aiopnsense/tree/v1.0.5) (2026-04-03)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.4...v1.0.5)

**Enhancements**

- In OPNsenseClient, change from initial to throw\_errors [\#19](https://github.com/Snuffy2/aiopnsense/pull/19) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.4](https://github.com/Snuffy2/aiopnsense/tree/v1.0.4) (2026-03-29)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.3...v1.0.4)

**Enhancements**

- Add CARP status summary and improve VIP interface matching [\#16](https://github.com/Snuffy2/aiopnsense/pull/16) ([Snuffy2](https://github.com/Snuffy2))

**Bug Fixes**

- Further CARP refinement [\#17](https://github.com/Snuffy2/aiopnsense/pull/17) ([Snuffy2](https://github.com/Snuffy2))

**Maintenance**

- Update release Github Action [\#18](https://github.com/Snuffy2/aiopnsense/pull/18) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.3](https://github.com/Snuffy2/aiopnsense/tree/v1.0.3) (2026-03-26)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.2...v1.0.3)

**Bug Fixes**

- Handle 26.1.5+ changes in dnsmasq leases API [\#14](https://github.com/Snuffy2/aiopnsense/pull/14) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Turn down more debug logging [\#15](https://github.com/Snuffy2/aiopnsense/pull/15) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.2](https://github.com/Snuffy2/aiopnsense/tree/v1.0.2) (2026-03-23)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.1...v1.0.2)

**Enhancements**

- Expand ambiguous time zone list [\#12](https://github.com/Snuffy2/aiopnsense/pull/12) ([Snuffy2](https://github.com/Snuffy2))

**Code Quality**

- Turn down firewall debug logging [\#11](https://github.com/Snuffy2/aiopnsense/pull/11) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.1](https://github.com/Snuffy2/aiopnsense/tree/v1.0.1) (2026-03-23)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v1.0.0...v1.0.1)

**Documentation**

- Update Documentation [\#10](https://github.com/Snuffy2/aiopnsense/pull/10) ([Snuffy2](https://github.com/Snuffy2))

## [v1.0.0](https://github.com/Snuffy2/aiopnsense/tree/v1.0.0) (2026-03-22)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v0.0.3...v1.0.0)

## [v0.0.3](https://github.com/Snuffy2/aiopnsense/tree/v0.0.3) (2026-03-22)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v0.0.2...v0.0.3)

**Enhancements**

- Improve pytest coverage and Refactor test infrastructure with reusable HTTP response mocking [\#8](https://github.com/Snuffy2/aiopnsense/pull/8) ([Snuffy2](https://github.com/Snuffy2))

**Bug Fixes**

- Fix some endpoints from POST to GET [\#6](https://github.com/Snuffy2/aiopnsense/pull/6) ([Snuffy2](https://github.com/Snuffy2))
- Fix GitHub release Workflow [\#4](https://github.com/Snuffy2/aiopnsense/pull/4) ([Snuffy2](https://github.com/Snuffy2))

**Documentation**

- Standardize docstring formatting across codebase [\#7](https://github.com/Snuffy2/aiopnsense/pull/7) ([Snuffy2](https://github.com/Snuffy2))

**Other Changes**

- Handle if DHCP endpoints are unavailable [\#9](https://github.com/Snuffy2/aiopnsense/pull/9) ([Snuffy2](https://github.com/Snuffy2))
- Remove legacy code [\#5](https://github.com/Snuffy2/aiopnsense/pull/5) ([Snuffy2](https://github.com/Snuffy2))

## [v0.0.2](https://github.com/Snuffy2/aiopnsense/tree/v0.0.2) (2026-03-22)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/v0.0.1...v0.0.2)

**Other Changes**

- Update version in const.py on release [\#3](https://github.com/Snuffy2/aiopnsense/pull/3) ([Snuffy2](https://github.com/Snuffy2))

## [v0.0.1](https://github.com/Snuffy2/aiopnsense/tree/v0.0.1) (2026-03-22)

[Full Changelog](https://github.com/Snuffy2/aiopnsense/compare/0931722e696e8e3270e8b80682ee8ff74ab0f5bb...v0.0.1)

**Other Changes**

- Create AGENTS.md [\#2](https://github.com/Snuffy2/aiopnsense/pull/2) ([Snuffy2](https://github.com/Snuffy2))
- GitHub Workflows and Linting [\#1](https://github.com/Snuffy2/aiopnsense/pull/1) ([Snuffy2](https://github.com/Snuffy2))



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
