Namaz vakitlerinde Google Nest Hub / Chromecast uzerinden otomatik ezan calan,
Raspberry Pi uzerinde 7/24 calisan akilli ezan sistemi.
Ozellikler • Kurulum • Dashboard • Yapilandirma • Raspberry Pi • API
| Ozellik | Aciklama |
|---|---|
| Otomatik Ezan | 5 vakit namaz icin tam saatinde ezan calar |
| Google Cast | Nest Hub, Chromecast ve diger Cast cihazlarina ses gonderir |
| Diyanet API | Namaz vakitlerini Diyanet'ten otomatik ceker — CSV'ye gerek yok |
| Vakit Bazli Ses | Her namaz icin farkli ezan dosyasi ve ses seviyesi |
| Sabah Ozel Zamanlama | Sabah ezani = Gunesogumu - 40 dakika |
| Web Dashboard | Tarayicidan yonetim paneli (Sacred Twilight tema) |
| PWA Destegi | Telefona ekle, uygulama gibi kullan |
| CSV Destegi | Turkce ve Ingilizce CSV formatlarini otomatik tanir |
| Cihaz Testi | Tek tikla bip sesi ile baglanti testi |
| systemd Servisi | Raspberry Pi'de acilista otomatik baslar |
git clone https://github.com/yusufyildiz/automatic-prayer-times
cd automatic-prayer-times
npm installcp config/config.example.json config/config.jsonconfig/config.json dosyasini duzenleyin:
MP3 dosyalarinizi audio/ klasorune koyun:
audio/adhan.mp3 # Varsayilan ezan (tum vakitler)
audio/adhan-fajr.mp3 # Sabah ezani (istege bagli)
audio/adhan-dhuhr.mp3 # Ogle ezani (istege bagli)
...
npm startDashboard'a erisim: http://localhost:3000
Tarayici uzerinden tam kontrol saglayan yonetim paneli:
- Bugunun namaz vakitlerini ve bir sonraki ezani gorme
- Ses seviyesi ve yapilandirma ayarlarini degistirme
- Ezan ve CSV dosyalarini yukleme / silme
- Cihaz baglanti testi (bip sesi)
- Sistemi acma / kapatma
- Namaz vakitlerini Diyanet'ten yenileme
PWA: Telefonunuzda tarayicidan "Ana ekrana ekle" yaparak uygulama gibi kullanabilirsiniz.
| Secenek | Aciklama | Varsayilan |
|---|---|---|
deviceIp |
Google Nest Hub IP adresi | Zorunlu |
deviceName |
Cihaz adi (referans icin) | "Google Nest Hub" |
volume |
Genel ses seviyesi (0.0 - 1.0) | 0.7 |
volumes |
Vakit bazli ses seviyeleri | null (genel ses kullanilir) |
timezone |
Saat dilimi | "Europe/Vienna" |
prayers |
Hangi vakitlerde ezan calinacak | Bes vakit |
adhanAudioFile |
Varsayilan ezan dosyasi | "adhan.mp3" |
audioFiles |
Vakit bazli ezan dosyalari | null |
csvFile |
CSV dosya adi (data/ icinde) |
"prayer-times.csv" |
diyanetLocationId |
Diyanet API konum ID | 11618 (Viyana) |
serverPort |
HTTP sunucu portu | 3000 |
localIp |
Lokal IP (otomatik algilanir) | null |
{
"volumes": {
"fajr": 0.29,
"dhuhr": 0.54,
"asr": 0.54,
"maghrib": 0.54,
"isha": 0.40
}
}{
"audioFiles": {
"fajr": "adhan-fajr.mp3",
"dhuhr": "adhan-dhuhr.mp3",
"asr": "adhan-asr.mp3",
"maghrib": "adhan-maghrib.mp3",
"isha": "adhan-isha.mp3"
}
}Yapilandirmada diyanetLocationId ayarlayin — sistem vakitleri otomatik ceker ve her ayin 25'inde yeniler.
Iki format desteklenir, sistem otomatik tanir:
Turkce Format:
Miladi Tarih,Imsak,Gunes,Ogle,Ikindi,Aksam,Yatsi
01 Ocak 2025,05:51,07:38,12:03,13:57,16:18,17:52Ingilizce Format:
Date,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Isha
2024-11-17,05:32,07:12,11:48,14:23,16:24,18:04curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejssudo apt-get install libavahi-compat-libdnssd-dev# Servis dosyasini kopyala
sudo cp adhan-player.service /etc/systemd/system/
# Yollari duzenle
sudo nano /etc/systemd/system/adhan-player.service
# Etkinlestir ve baslat
sudo systemctl daemon-reload
sudo systemctl enable adhan-player
sudo systemctl start adhan-playersudo systemctl status adhan-player # Durum
sudo systemctl restart adhan-player # Yeniden baslat
sudo journalctl -u adhan-player -f # Canli loglar| Method | Endpoint | Aciklama |
|---|---|---|
GET |
/api/status |
Sistem durumu, vakitler, siradaki ezan |
GET |
/api/prayer-times/today |
Bugunun namaz vakitleri |
GET |
/api/config |
Yapilandirmayi oku |
PUT |
/api/config |
Yapilandirmayi guncelle |
GET |
/api/audio-files |
Ezan dosyalarini listele |
POST |
/api/audio-files |
Ezan dosyasi yukle |
DELETE |
/api/audio-files/:name |
Ezan dosyasi sil |
GET |
/api/csv-files |
CSV dosyalarini listele |
POST |
/api/csv-files |
CSV dosyasi yukle |
POST |
/api/actions/test-cast |
Cihaz baglanti testi (bip) |
POST |
/api/actions/fetch-times |
Diyanet'ten vakitleri cek |
POST |
/api/actions/reschedule |
Bugunun ezanlarini yeniden planla |
POST |
/api/actions/toggle-system |
Sistemi ac/kapat |
automatic-prayer-times/
├── src/
│ ├── index.js # Ana giris noktasi & AdhanPlayer sinifi
│ ├── scheduler.js # Cron zamanlayici (sabah = gunesogumu-40dk)
│ ├── cast.js # Google Cast entegrasyonu
│ ├── csv-parser.js # CSV okuyucu (TR & EN)
│ ├── server.js # Express HTTP sunucu
│ ├── api-routes.js # REST API endpointleri
│ ├── diyanet-fetcher.js # Diyanet API baglantisi
│ └── prayer-history.js # Ezan gecmisi
├── public/ # Web dashboard (PWA)
│ ├── index.html
│ ├── css/style.css # Sacred Twilight tema
│ ├── js/app.js
│ └── js/api.js
├── audio/ # Ezan MP3 dosyalari
├── data/ # Namaz vakitleri CSV
├── config/
│ ├── config.json # Yapilandirma (gitignore'da)
│ └── config.example.json # Ornek yapilandirma
├── adhan-player.service # systemd servis dosyasi
└── package.json
Cihaz bulunamiyor
- Nest Hub ve cihazinizin ayni agda oldugundan emin olun
- IP adresini kontrol edin:
npm start -- --discover - Port 3000'in guvenlik duvarindan gectigini dogrulayin
Ses calinmiyor
audio/klasorunde MP3 dosyasinin varligini kontrol edin- Nest Hub'in sessize alinmadigini dogrulayin
- Dashboard'dan "Cihaz Testi" butonuyla bip sesi deneyin
Vakitler yuklenmiyor
- Diyanet API kullaniyorsaniz
diyanetLocationIddegerini kontrol edin - CSV kullaniyorsaniz format ornekleriyle karsilastirin
- Dosya kodlamasinin UTF-8 oldugunu dogrulayin
MIT
Namazlariniz kabul olsun.
{ "deviceIp": "192.168.1.100", // Google Nest Hub IP adresi "volume": 0.7, // Genel ses seviyesi (0.0 - 1.0) "timezone": "Europe/Vienna", // Saat dilimi "diyanetLocationId": 11618 // Diyanet konum ID (Viyana) }