Skip to content

Releases: ummeco/praycalc-ha

PrayCalc for Home Assistant 0.8.0

Choose a tag to compare

@acamarata acamarata released this 28 Aug 19:08

Addresses the review on hacs/default#9123, plus three runtime bugs found while verifying it.

Home Assistant 2026.3.0 or newer is now required.

Fixed — entities had no names

There was no translations/ directory. Home Assistant loads runtime translations only from translations/<lang>.json; strings.json is a build-time source file a custom integration never reads. All nine entities fell back to empty names and collided into _2.._9 suffixes, and every config-flow label rendered as a raw key.

Fixed — prayer times were wrong by your UTC offset

The API returns UTC wall-clock times with no date attached. The integration read them as local wall-clock, so every timestamp was off by the local offset. Times are now anchored to real instants, rolled forward across UTC midnight, and re-anchored so Dhuhr lands on the correct local date. Verified across eight cities from UTC-8 to UTC+14.

Fixed — the Hijri sensor was throwing

hijriDate arrives as a formatted string, but the code called .get() on it as if it were a mapping, raising AttributeError on every state update.

Fixed — Fajr and Sunrise were missing east of Greenwich

A formatter bug in the backing API returned --:-- for any time falling before 00:00 UTC, which is where Fajr and Sunrise land across Indonesia, Malaysia, Japan, Australia and New Zealand. A separate rounding bug could emit an invalid 01:60. Both fixed.

Changed

  • Version floor raised to 2026.3.0. The config flow uses APIs added in 2024.4, and the brand icons are only served from 2026.3.
  • Polling reduced from every 60 seconds to every 30 minutes — 1440 requests a day per install down to 48. The countdown still updates every minute, recomputed locally with no network traffic.
  • Settings are editable in place. Use Configure for calculation method, madhab and API URL; use Reconfigure to move an entry to a new location. Neither requires deleting and re-adding.
  • Removed dead code in the next-prayer sensor and a redundant per-entity refresh on startup.

Breaking — entity IDs

Now that names resolve, entity IDs changed. Verified against Home Assistant 2026.9.0b1:

Sensor Entity ID (no city set)
Next prayer sensor.praycalc_next_prayer
Prayer times sensor.praycalc_fajrsensor.praycalc_isha
Qibla sensor.praycalc_qibla_direction
Hijri date sensor.praycalc_hijri_date

If you set a city, it is part of the ID — entering "Detroit" gives sensor.praycalc_detroit_fajr. Check Settings > Devices & Services > PrayCalc > entities for yours.

The next-prayer state is now a lowercase key (fajr, dhuhr, asr, maghrib, isha) with the label translated for display, so automations should compare against the key. Sunrise is no longer reported as a "next prayer".

Testing

62 tests, 12 of them booting a real Home Assistant and asserting the exact entity IDs the README documents. CI gains a translations-parity gate and a pytest job — hassfest does not validate custom-integration translations, which is why 0.7.1 shipped green with none.

PrayCalc for Home Assistant 0.7.1

Choose a tag to compare

@acamarata acamarata released this 12 Jul 01:13

Prayer-time sensors (Fajr, Dhuhr, Asr, Maghrib, Isha, next-prayer countdown) backed by the PrayCalc API, with config-flow setup. Adds in-repo brand assets; validation (hassfest + HACS action) green: https://github.com/ummeco/praycalc-ha/actions/runs/29174915617

PrayCalc for Home Assistant 0.7.0

Choose a tag to compare

@acamarata acamarata released this 12 Jul 01:07

Initial public release. Prayer-time sensors (Fajr, Dhuhr, Asr, Maghrib, Isha, next-prayer countdown) backed by the PrayCalc API, with config-flow setup. Install via HACS.