Integrasi Waktu Solat Malaysia untuk Home Assistant
Integrasi custom component ini membolehkan anda mendapatkan waktu solat Malaysia terus dalam Home Assistant, dengan sokongan automasi azan, papan pemuka, dan pertukaran zon secara langsung.
https://github.com/mysolat/homeassistant
custom_components/solat_my/ ke dalam direktori config/custom_components/ Home Assistant anda
Waktu Solat) — ini menjadi prefix ID entiti
SGR01 — Selangor)
Untuk menukar zon kemudian, pergi ke halaman peranti dan tukar entiti Zon. Semua sensor dikemas kini serta-merta tanpa restart.
16 entiti dicipta secara automatik di bawah peranti "Waktu Solat":
| ID Entiti | Nama | Keterangan |
|---|---|---|
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 dengan nama bulan dalam Bahasa Melayu |
sensor.waktu_solat_waktu_solat_seterusnya | Waktu Solat Seterusnya | Waktu solat berikutnya dengan kiraan detik |
sensor.waktu_solat_waktu_solat_semasa | Waktu Solat Semasa | Tempoh waktu solat semasa |
| ID Entiti | Nama | Keterangan |
|---|---|---|
select.waktu_solat_zon | Zon | Zon aktif — tukar untuk kemas kini semua sensor serta-merta |
select.waktu_solat_pemain_media_azan | Pemain Media Azan | Pemain media untuk main balik azan |
number.waktu_solat_kelantangan_azan | Kelantangan Azan | Kelantangan azan (0.0–1.0) |
text.waktu_solat_fail_audio_azan | Fail Audio Azan | Nama fail azan (dipisahkan koma) |
text.waktu_solat_fail_audio_azan_subuh | Fail Audio Azan Subuh | Nama fail azan Subuh (dipisahkan koma) |
text.waktu_solat_fail_doa_selepas_azan | Fail Doa Selepas Azan | Nama fail audio doa selepas azan |
type: entities
title: Waktu Solat
entities:
- entity: sensor.waktu_solat_waktu_solat_semasa
name: Waktu Semasa
- entity: sensor.waktu_solat_waktu_solat_seterusnya
name: Waktu Seterusnya
- entity: sensor.waktu_solat_imsak
name: Imsak
format: time
- entity: sensor.waktu_solat_subuh
name: Subuh
format: time
- entity: sensor.waktu_solat_zohor
name: Zohor
format: time
- entity: sensor.waktu_solat_asar
name: Asar
format: time
- entity: sensor.waktu_solat_maghrib
name: Maghrib
format: time
- entity: sensor.waktu_solat_isyak
name: Isyak
format: time
- entity: sensor.waktu_solat_tarikh_hijri
name: Tarikh Hijri
alias: Azan Harian
description: Play azan for all prayer times via solat.my integration
triggers:
- trigger: time
at: sensor.waktu_solat_subuh
id: subuh
- trigger: time
at: sensor.waktu_solat_zohor
id: zohor
- trigger: time
at: sensor.waktu_solat_asar
id: asar
- trigger: time
at: sensor.waktu_solat_maghrib
id: maghrib
- trigger: time
at: sensor.waktu_solat_isyak
id: isyak
conditions: []
actions:
- action: persistent_notification.create
data:
notification_id: solat_azan
title: >
🕋 Waktu Solat — {% set names = {'subuh': 'Subuh', 'zohor': 'Zohor',
'asar': 'Asar', 'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} {{ names[trigger.id] }}
message: >
{% set names = {'subuh': 'Subuh', 'zohor': 'Zohor', 'asar': 'Asar',
'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} {{ now().strftime('%-I:%M %p') }}
— Sekarang telah masuk waktu {{ names[trigger.id] }}.
- action: notify.notify
data:
title: >
🕋 Waktu Solat — {% set names = {'subuh': 'Subuh', 'zohor': 'Zohor',
'asar': 'Asar', 'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} {{ names[trigger.id] }}
message: >
{% set names = {'subuh': 'Subuh', 'zohor': 'Zohor', 'asar': 'Asar',
'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} {{ now().strftime('%-I:%M %p') }}
— Sekarang telah masuk waktu {{ names[trigger.id] }}.
- action: media_player.volume_set
target:
entity_id: "{{ states('select.waktu_solat_pemain_media_azan') }}"
data:
volume_level: "{{ states('number.waktu_solat_kelantangan_azan') | float }}"
- action: tts.google_translate_say
data:
entity_id: "{{ states('select.waktu_solat_pemain_media_azan') }}"
language: id
message: >
{% set names = {'subuh': 'Subuh', 'zohor': 'Zohor', 'asar': 'Asar',
'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} Sekarang telah masuk waktu
{{ names[trigger.id] }} bagi kawasan ini dan kawasan yang sama waktu dengannya.
- delay: "00:00:10"
- action: media_player.play_media
target:
entity_id: "{{ states('select.waktu_solat_pemain_media_azan') }}"
data:
extra:
title: >
{% set names = {'subuh': 'Subuh', 'zohor': 'Zohor', 'asar': 'Asar',
'maghrib': 'Maghrib', 'isyak': 'Isyak'} %} Azan {{ names[trigger.id] }}
thumb: https://solat.my/icon.png
media:
media_content_type: audio/mp3
media_content_id: |
{% if trigger.id == 'subuh' %}
{{ "media-source://media_source/local/azan/" ~
states('text.waktu_solat_fail_audio_azan_subuh').split(', ') | random }}
{% else %}
{{ "media-source://media_source/local/azan/" ~
states('text.waktu_solat_fail_audio_azan').split(', ') | random }}
{% endif %}
- choose:
- conditions:
- condition: trigger
id: subuh
sequence:
- delay:
minutes: 4
seconds: 30
- conditions:
- condition: not
conditions:
- condition: trigger
id: subuh
sequence:
- delay:
minutes: 2
seconds: 47
- action: media_player.play_media
alias: Doa Selepas Azan
target:
entity_id: "{{ states('select.waktu_solat_pemain_media_azan') }}"
data:
media:
media_content_id: media-source://media_source/local/azan/doa_selepas_azan.mp3
media_content_type: audio/mpeg
metadata:
title: doa_selepas_azan.mp3
media_class: music
mode: single
Kod sumber tersedia di GitHub. Laporkan isu atau sumbangkan penambahbaikan.
github.com/mysolat/homeassistant →