Releases: klconsultancy/aiophoenixcontactcharx
Releases · klconsultancy/aiophoenixcontactcharx
v1.0.0
What's new
New features
RegisterDeftyped register metadata — all Modbus register constants now carry address, width, and description;offset_of()andcp_register()exported from the public APIErrorCodeIntFlag enum — 32-bit error bitmask decoded into named flag membersVehicleStatusStrEnum — IEC 61851-1 vehicle status decoded to typed enum values;is_connected,is_charging,has_error,is_unavailablederived properties use enum membersDigitalOutputModeenum +pack_digital_outputs()— helper for building the packed digital output register value- New write methods:
set_locking(),set_group_availability(),set_digital_outputs(),restart_server(),restart_all() - Exposed registers:
force_unlock_pending,proximity_cfg,overcurrent_monitoring,subnet_eth0/1,gateway_eth0/1
Refactors
- Pure decoder functions (
_decode_device_info,_decode_cp_config,_decode_cp_status_and_control) extracted from async read methods — testable without Modbus connection - Generic
_decode_enum()helper replaces per-field boilerplate - Control-register write calls use
RegisterDefconstants instead of magic integer literals
Fixes
- Log
WARNINGfor all unrecognised enum register values (#16) - Five bugs from manual cross-check (#10–#12, #14, #23)
What's Changed
- docs: domain glossary, ADRs, and CONTEXT.md corrections from grill sessions by @kristoflemmens in #25
- fix: five bugs from manual cross-check (#10–#12, #14, #23) by @kristoflemmens in #26
- feat: VehicleStatus StrEnum + version sync (#24) by @kristoflemmens in #27
- feat: expose proximity_cfg and overcurrent_monitoring in ChargingPointConfig (#13) by @kristoflemmens in #28
- feat: expose force_unlock_pending in ChargingPointControl (#15) by @kristoflemmens in #29
- fix: log WARNING for all unrecognised enum register values (#16) by @kristoflemmens in #30
- feat: add ErrorCode IntFlag enum for 32-bit error bitmask (#17) by @kristoflemmens in #31
- feat: add set_locking() write method for CP_LOCKING register (x303) (#18) by @kristoflemmens in #32
- feat: add DigitalOutputMode enum, pack_digital_outputs helper, and set_digital_outputs() (#19) by @kristoflemmens in #33
- feat: add set_group_availability() write method for group availability register (#20) by @kristoflemmens in #34
- feat: add restart_server() and restart_all() for group reset registers (#21) by @kristoflemmens in #35
- feat: expose subnet masks and gateways in DeviceInfo (registers 129–144) by @kristoflemmens in #36
- refactor: replace enum decoder boilerplate with generic _decode_enum() helper by @kristoflemmens in #41
- refactor: use VehicleStatus enum members in ChargingPointData derived properties by @kristoflemmens in #42
- refactor: extract pure decoder functions from Modbus read methods by @kristoflemmens in #43
- feat: add RegisterDef metadata and derive register read-window counts by @kristoflemmens in #44
Full Changelog: v0.1.3...v1.0.0
v0.1.3
What's Changed
- Change Dependabot schedule to daily by @kristoflemmens in #8
- Bump version to 0.1.3 by @kristoflemmens in #9
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
- Add Dependabot for pip and GitHub Actions by @kristoflemmens in #3
- Bump actions/checkout from 4 to 6 by @dependabot[bot] in #4
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #5
- Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #6
- Bump version to 0.1.2 by @kristoflemmens in #7
New Contributors
- @dependabot[bot] made their first contribution in #4
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
- Add CI/CD workflows: pytest matrix and PyPI release by @kristoflemmens in #1
- Bump version to 0.1.1 by @kristoflemmens in #2
New Contributors
- @kristoflemmens made their first contribution in #1
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Initial release.
Provides async Modbus/TCP access to Phoenix Contact CHARX SEC EV charging controllers.
Features
CharxClientasync context manager — connect, fetch data, disconnectCharxData/CharxChargingPointDatadataclasses for device info, group metrics, and per-CP status- Full register map for up to 12 charging points
- Per-CP controls: charging release, max current (6–80 A), watchdog timer
- Pure Python, no Home Assistant dependency — usable in any async project
Install
pip install aiophoenixcontactcharx