Skip to content

0.9.0

Latest

Choose a tag to compare

@hudsonbrendon hudsonbrendon released this 18 May 01:51
fe52356

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: 1800

Full 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 = 0 on 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 HevyApiClientConflictError already shipped in 0.7.0 carried forward.
  • _coerce_iso_datetime helper validates timestamps for create_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

  • brands PR to home-assistant/brands repo (logo/icon assets).
  • Custom-exercise template lookup helper for ergonomic create_workout calls.

Full diff: v0.7.0...v0.9.0