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