Skip to content

feat: prepare Home Assistant Integration 1.3.0 - #18

Merged
yellowcooln merged 4 commits into
mainfrom
dev
Oct 6, 2026
Merged

yellowcooln merged 4 commits into
mainfrom
dev

Conversation

@yellowcooln

@yellowcooln yellowcooln commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Summary

Prepare openHop Repeater Home Assistant Integration 1.3.0 with expanded per-radio monitoring, explicit plugin/sensor/ACL management, and updated dashboard workflows. Preserve the pymc_repeater integration domain, installed identities, radio aliases, and existing polling schedules.

Changes

  • Add 24 per-radio measurements for shared channel airtime/utilization, cached noise, one-hour and 24-hour packet counts and signal averages, and LBT summaries without additional telemetry requests.
  • Add response-returning packet-rate, noise, CRC, companion and LBT diagnostic actions; extend neighbor history with exact radio filters and per-radio bucket grouping.
  • Add catalogue plugin installation, lifecycle controls, data-preserving uninstall, settings management, update checks, single upgrades and sequential update-all.
  • Share fail-fast plugin write admission, finite IPC-aware timeouts and unknown-completion quarantine; never automatically retry uncertain writes.
  • Add sensor type/configuration actions with full-replacement validation, backend password-mask/rename-origin preservation and explicit restart-required results.
  • Add ACL permission management and named client removal while preserving existing action fields and optional-response behavior.
  • Register native async action handlers so Home Assistant awaits work and receives actual response dictionaries.
  • Update reusable dashboards with compact response-aware controls, 21 companion scripts, reviewed-write gates and detailed installation/management instructions; include an optional daily 03:00 plugin-upgrade automation.
  • Tighten bounded JSON/query validation, handle decoder recursion errors, fix zero-sample noise values and increase advert request timeout margins.
  • Expand source-check CI to Python 3.11–3.14 and direct Dependabot version updates to dev; keep dependencies owned by Home Assistant.
  • Remove the empty Unreleased changelog heading; all changes are under 1.3.0.

Verification

  • 157 local tests passed under system Python, including parsed YAML/Jinja checks; compilation, JSON validation, duplicate-key YAML checks and whitespace checks passed.
  • Hosted PR checks passed: Python Smoke on 3.11–3.14, HACS and Hassfest. Decoder-failure coverage is deterministic across runtimes, and the changelog test now requires the versioned release notes without an Unreleased heading.
  • Live Home Assistant verified monitoring/reconnection, action registration and real action responses, a catalogue plugin upgrade, a service-plugin restart with changed PID and working metrics endpoint, catalogue install/uninstall/reinstall, unchanged settings and sensor-configuration round trips, and temporary persistent ACL grant/removal.
  • All 21 companion-script definitions loaded in HA; eight read-only wrappers plus settings/configuration write wrappers completed with successful traces. Bulk current-version behavior returned no_update.
  • Existing entity IDs were preserved. Dashboard references were validated against the target registry, and the operator confirmed the corrected browser view.

Boundaries

  • This PR does not rename the compatibility domain, publish a release or merge to main.
  • Manual wheel uploads and plugin logs/runtime/progress streams remain Repeater UI workflows. Forced sensor hardware reads are not exposed.
  • Sensor configuration writes report restart-required; changed hardware settings across a full reboot were not tested. Service restart/reconnection was tested.
  • Live success for one plugin upgrade does not establish every third-party plugin's compatibility, and bulk successful upgrades remain distinct from the verified no-update path.

@yellowcooln
yellowcooln marked this pull request as ready for review October 6, 2026 19:02
@yellowcooln yellowcooln self-assigned this Oct 6, 2026
@yellowcooln yellowcooln added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file labels Oct 6, 2026
@yellowcooln
yellowcooln merged commit 5f897ae into main Oct 6, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant