What's New in 0.9.0
Three PRs landed since 0.7.0.
🔑 Re-authentication flow (#84)
When your API key expires or you rotate it, HA now drives you through a reauth dialog instead of leaving you stuck with a broken integration. Just paste the new key — entry data and unique id are updated, the entry reloads, no entities lost.
🏋️ hevy.create_workout service (#85)
POST a completed workout to Hevy from HA. Useful for scripted/automated logging — record a treadmill session from another integration, or batch-import past sessions.
service: hevy.create_workout
data:
title: "Morning Cardio"
start_time: "2026-05-17T07:30:00+00:00"
end_time: "2026-05-17T08:00:00+00:00"
exercises:
- exercise_template_id: "D04AC939"
sets:
- type: normal
duration_seconds: 1800Full voluptuous schema validates the nested workout/exercises/sets structure. Accepts datetime, date, or ISO 8601 strings for start_time/end_time.
🏅 Silver quality scale (#86)
Integration now declares quality_scale: silver and integration_type: service in the manifest. Adds quality_scale.yaml documenting compliance with every bronze + silver rule (25/26 done, brands is the only outstanding item).
What this means:
PARALLEL_UPDATES = 0on every platform (coordinator-driven).- README has a proper Removal section (HACS removal, manual cleanup, API key revocation note).
- Reauth flow, proper exception types in services, entity availability — all checked.
Internals
- New
HevyApiClientConflictErroralready shipped in 0.7.0 carried forward. _coerce_iso_datetimehelper validates timestamps forcreate_workout.
Tests
172 tests passing in ~0.16s (up from 157). New coverage: 5 config_flow reauth tests, 10 create_workout / _coerce_iso_datetime tests.
Roadmap still pending
brandsPR to home-assistant/brands repo (logo/icon assets).- Custom-exercise template lookup helper for ergonomic
create_workoutcalls.
Full diff: v0.7.0...v0.9.0