A proper Home Assistant custom component that fetches Malaysian prayer times directly from the solat.my API (powered by JAKIM e-Solat).
- 17 entities created automatically per device — no helpers needed:
- 8 prayer time sensors (Imsak, Subuh, Syuruk, Dhuha, Zohor, Asar, Maghrib, Isyak)
- Tarikh Hijri — formatted Hijri date with month name in Malay
- Waktu Solat Seterusnya — next upcoming prayer with countdown
- Waktu Solat Semasa — current prayer period
- Zon — select entity to switch zone live (all 59 zones, updates all sensors instantly)
- Pemain Media Azan — auto-populated media player selector
- Mod Pengumuman Azan — announcement mode before azan (
ttsoraudio) - Kelantangan Azan — volume slider (0.0–1.0)
- Fail Audio Azan / Subuh / Doa — configurable audio filenames
- Supports 59 Malaysian zones (all JAKIM zones + W.P.)
- UI-based setup — just enter a name and pick a starting zone
- Multiple devices supported (e.g., "Rumah" and "Pejabat")
- Data sourced from
https://solat.my/api→ JAKIM e-Solat
- In HACS, add this repository as a custom repository
- Search for "Waktu Solat Malaysia" and install
- Restart Home Assistant
- Copy the
custom_components/solat_my/folder into your HAconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for "Waktu Solat Malaysia"
- Enter a Device Name (default:
Waktu Solat) — this becomes the entity ID prefix - Select the starting zone (e.g.,
SGR01 — Selangor - Gombak, Petaling, ...) - Click Submit — all 16 entities appear immediately
To change zone later: go to the device page and change the Zon select entity. All prayer time sensors update instantly without a restart.
The following entities are created under device "Waktu Solat" (default name):
| Entity ID | Name | Description |
|---|---|---|
sensor.waktu_solat_imsak |
Imsak | Waktu Imsak (timestamp) |
sensor.waktu_solat_subuh |
Subuh | Waktu Subuh (timestamp) |
sensor.waktu_solat_syuruk |
Syuruk | Waktu Syuruk (timestamp) |
sensor.waktu_solat_dhuha |
Dhuha | Waktu Dhuha (timestamp) |
sensor.waktu_solat_zohor |
Zohor | Waktu Zohor (timestamp) |
sensor.waktu_solat_asar |
Asar | Waktu Asar (timestamp) |
sensor.waktu_solat_maghrib |
Maghrib | Waktu Maghrib (timestamp) |
sensor.waktu_solat_isyak |
Isyak | Waktu Isyak (timestamp) |
sensor.waktu_solat_tarikh_hijri |
Tarikh Hijri | Tarikh Hijri berformat |
sensor.waktu_solat_waktu_solat_seterusnya |
Waktu Solat Seterusnya | Waktu solat seterusnya + kiraan detik |
sensor.waktu_solat_waktu_solat_semasa |
Waktu Solat Semasa | Tempoh waktu solat semasa |
| Entity ID | Name | Description |
|---|---|---|
select.waktu_solat_zon |
Zon | Active zone — change to switch all sensors instantly |
select.waktu_solat_pemain_media_azan |
Pemain Media Azan | Media player for azan playback |
select.waktu_solat_mod_pengumuman_azan |
Mod Pengumuman Azan | Announcement mode before azan (tts or audio) |
number.waktu_solat_kelantangan_azan |
Kelantangan Azan | Azan volume (0.0–1.0 slider) |
text.waktu_solat_fail_audio_azan |
Fail Audio Azan | Comma-separated azan filenames |
text.waktu_solat_fail_audio_azan_subuh |
Fail Audio Azan Subuh | Comma-separated Subuh azan filenames |
text.waktu_solat_fail_doa_selepas_azan |
Fail Doa Selepas Azan | Doa audio filename |
See DASHBOARD.md for ready-to-paste Mushroom Card layouts — a 3×2 grid for desktop and a vertical timeline for mobile, both with live current/next prayer indicators.

See AUTOMATION.md for full automation examples including:
- Main azan for all five prayer times
- Jumaat (Friday) override
- Imsak reminder
- Pre-prayer countdown notification
- Pause all devices during azan, then resume
- Multi-room broadcast
All 59 JAKIM prayer time zones are supported:
| Code | Location |
|---|---|
| JHR01–JHR04 | Johor |
| KDH01–KDH07 | Kedah |
| KTN01–KTN02 | Kelantan |
| MLK01 | Melaka |
| NGS01–NGS03 | Negeri Sembilan |
| PHG01–PHG06 | Pahang |
| PLS01 | Perlis |
| PNG01 | Pulau Pinang |
| PRK01–PRK07 | Perak |
| SBH01–SBH09 | Sabah |
| SGR01–SGR03 | Selangor |
| SWK01–SWK09 | Sarawak |
| TRG01–TRG04 | Terengganu |
| WLY01 | W.P. Kuala Lumpur & Putrajaya |
| WLY02 | W.P. Labuan |
Prayer time data is provided by solat.my which sources data from JAKIM e-Solat.