Untuk siapa panduan ini? Untuk operator sekolah, teknisi madrasah, atau siapa pun yang diberi tugas "urus bel dan tarhim" tapi belum pernah pegang server Linux. Semua perintah ditulis lengkap, semua istilah dijelaskan, dan setiap langkah bisa langsung disalin-tempel.
| Kebutuhan | Contoh / Keterangan |
|---|---|
| Komputer / PC/Mini PC | Bebas merek, minimal RAM 2GB, akan menyala 24 jam nonstop |
| Sistem Operasi | Debian 13 ("Trixie"), mode headless (tanpa tampilan grafis) atau desktop biasa |
| Output Audio | Speaker aktif, mixer, atau amplifier — panduan ini memakai contoh mixer dengan Bluetooth |
| Jaringan | WiFi/LAN lokal agar bisa diakses jarak jauh via SSH |
| Laptop/HP lain | Untuk mengetik perintah dari jarak jauh (tidak perlu didekatkan ke PC server) |
Sebelum mulai: Panduan ini mengasumsikan Debian 13 sudah terpasang di komputer server dan sudah terhubung ke jaringan WiFi/LAN yang sama dengan laptop kamu. Kalau belum, pasang Debian 13 terlebih dahulu (pilih paket dasar tanpa desktop jika ingin hemat resource), lalu catat alamat IP-nya — nanti akan sering dipakai.
---
### Daftar Isi
- 1. [Istilah-istilah yang Perlu Dipahami](#istilah "Istilah-istilah")
- 2. [Langkah 1 — Masuk ke Server dari Jarak Jauh (SSH)](#langkah1 "Langkah 1")
- 3. [Langkah 2 — Menyiapkan Sistem Audio & Bluetooth](#langkah2 "Langkah 2")
- 4. [Langkah 3 — Menyiapkan Folder & File Audio](#langkah3 "Langkah 3")
- 5. [Langkah 4 — Membuat config.sh (Konfigurasi Pusat)](#langkah4 "Langkah 4")
- 6. [Langkah 5 — Membuat sambung_bt.sh](#langkah5 "Langkah 5")
- 7. [Langkah 6 — Membuat anti_putus.sh & Systemd Service](#langkah6 "Langkah 6")
- 8. [Langkah 7 — Membuat jadwal_tahrim.sh](#langkah7 "Langkah 7")
- 9. [Langkah 8 — Crontab & Logrotate](#langkah8 "Langkah 8")
- 10. [Langkah 9 — Uji Coba & Perawatan Harian](#langkah9 "Langkah 9")
- 11. [Troubleshooting — Kalau Ada yang Tidak Berjalan](#troubleshooting "Troubleshooting")
---
## 1. Istilah-istilah yang Perlu Dipahami
Sebelum masuk ke praktik, kenali dulu istilah yang akan sering muncul. Tidak perlu dihafal — cukup dibaca sekali, nanti dipahami sambil praktik.
| Istilah | Penjelasan Sederhana |
|---|---|
| SSH | Cara "menyetir" komputer server dari komputer/laptop lain lewat jaringan, cukup dengan mengetik perintah teks |
| Terminal | Jendela hitam tempat mengetik perintah (bukan aplikasi klik-klik seperti biasa) |
| Skrip (script) | Sekumpulan perintah yang ditulis dalam satu file, dijalankan sekali untuk mengerjakan banyak hal otomatis |
| Bash | Bahasa skrip yang dipakai Linux; file skrip di panduan ini semuanya berakhiran .sh |
| Cron / Crontab | "Alarm" bawaan Linux yang menjalankan perintah tertentu pada jam yang sudah dijadwalkan, setiap hari |
| Systemd Service | Cara agar sebuah program dianggap "layanan resmi" oleh Debian — otomatis menyala saat komputer booting, dan otomatis dihidupkan lagi kalau tiba-tiba mati |
| API | "Pintu" untuk mengambil data dari internet secara otomatis — di sini dipakai untuk mengambil jadwal sholat harian |
| MAC Address | Nomor identitas unik sebuah perangkat Bluetooth, dipakai supaya PC selalu tersambung ke mixer yang sama |
hostname -I lalu catat angkanya (contoh: 192.168.9.9).
3. Di laptop, buka Terminal (macOS/Linux) atau Command Prompt/PowerShell (Windows).
4. Jalankan perintah berikut. Ganti lenovo dengan nama user Debian kamu, dan ganti IP-nya sesuai server.
ssh lenovo@192.168.9.9
5. Saat pertama kali konek, akan muncul pertanyaan keamanan — ketik yes lalu Enter.
6. Masukkan kata sandi user Debian (huruf tidak akan tampil saat diketik, itu normal).
Kalau prompt terminal berubah jadi
---
## 3. Langkah 2 — Menyiapkan Sistem Audio & Bluetooth
### 3.1. Perbarui sistem & pasang paket yang dibutuhkan
Paket-paket ini menyediakan kemampuan Bluetooth, pemutar audio (mpv), pengambil data dari internet (curl, jq), dan alat bantu lain.
lenovo@nama-host:~$, artinya kamu sudah "masuk" ke server. Semua perintah selanjutnya dijalankan dari sini.
# perbarui daftar paket & sistem terlebih dahulu
sudo apt update && sudo apt upgrade -y
# pasang semua paket yang dibutuhkan sistem tarhim otomatis
sudo apt install bluez bluez-tools bluez-alsa-utils alsa-utils mpv curl jq rfkill nano sox libsox-fmt-all -y
# set zona waktu ke Jakarta (WIB) agar jadwal sholat akurat
sudo timedatectl set-timezone Asia/Jakarta
Debian 13 memakai repositori yang sedikit lebih baru dari Debian 12. Kalau ada paket yang tidak ditemukan, jalankan lagi
### 3.2. Nyalakan layanan Bluetooth
sudo apt update dan pastikan koneksi internet server aktif sebelum mengulang instalasi.
sudo systemctl daemon-reload
sudo systemctl enable --now bluetooth bluealsa
sudo rfkill unblock bluetooth
sudo bluetoothctl power on
### 3.3. Sambungkan (pairing) ke speaker/mixer — dilakukan cukup sekali
Setiap perangkat Bluetooth punya "nomor identitas" sendiri yang disebut MAC address. Kita perlu mencarinya lalu menyambungkannya.
sudo bluetoothctl
Setelah masuk ke menu interaktif bluetoothctl (prompt berubah jadi [bluetooth]#), ketik baris-baris berikut satu per satu, Enter setiap selesai satu baris:
scan on
Tunggu beberapa detik sampai muncul nama/nomor perangkat mixer/speaker kamu di daftar, lalu catat MAC address-nya (formatnya seperti 7d:5b:22:c8:4d:ab). Setelah itu:
pair 7d:5b:22:c8:4d:ab
trust 7d:5b:22:c8:4d:ab
connect 7d:5b:22:c8:4d:ab
exit
Ganti
---
## 4. Langkah 3 — Menyiapkan Folder & File Audio
Semua file lagu, bel, dan tarhim disimpan dalam satu folder khusus supaya mudah dikelola.
7d:5b:22:c8:4d:ab dengan MAC address speaker/mixer kamu sendiri, bukan dicontek langsung dari sini. Simpan angka ini baik-baik — akan dipakai lagi di Langkah 4.
# pasang flashdisk/harddisk yang berisi file audio (sesuaikan /dev/sdb1)
sudo mount /dev/sdb1 /mnt
# buat folder audio khusus di dalam home user
mkdir -p /home/lenovo/audio
# salin semua file .mp3 dari flashdisk ke folder audio
sudo cp /mnt/*.mp3 /home/lenovo/audio/
# beri izin agar file bisa dibaca & dijalankan
sudo chmod -R 755 /home/lenovo/audio
# lepas flashdisk dengan aman
sudo umount /mnt
Nama file yang wajib ada di dalam /home/lenovo/audio/ (nama harus persis sama, termasuk huruf besar/kecil):
- tarhim-subuh.mp3
- tarhim-maghrib-1.mp3, tarhim-maghrib-2.mp3, tarhim-maghrib-3.mp3
- Hymne-guru.mp3, Rukun-Sama-teman.mp3, Tanah-airku.mp3, Mars.mp3
- Pengantar-dan-indonesia-raya.mp3
- Bel-Persiapan-Sholat-dzuhur.mp3
Tidak punya flashdisk berisi file audio? File juga bisa dikirim ke server lewat
---
## 5. Langkah 4 — Membuat config.sh (Konfigurasi Pusat)
Ini adalah file terpenting: satu-satunya tempat menyimpan MAC address speaker, lokasi sekolah, dan volume. Semua skrip lain nanti tinggal "membaca" file ini — jadi kalau nanti mixer diganti atau sekolah pindah lokasi, cukup edit di satu tempat ini saja.
Buat file baru dengan editor teks bernama scp dari laptop, atau diunduh langsung di server dengan wget/curl kalau punya link file audio online.
nano:
nano /home/lenovo/config.sh
Tempelkan (paste) isi berikut, lalu sesuaikan bagian MAC Bluetooth, lokasi (LAT/LONG), dan nama folder sesuai kondisi kamu:
#!/bin/bash
# ==============================================================================
# config.sh — KONFIGURASI TERPUSAT
# Semua skrip lain "mengambil" (source) file ini. Kalau mixer diganti,
# lokasi folder dipindah, atau volume ingin diubah, CUKUP EDIT DI SINI SAJA.
# ==============================================================================
# --- Perangkat & Jaringan ---
MAC_SPEAKER="7d:5b:22:c8:4d:ab" # MAC Bluetooth speaker/mixer, ganti sesuai Langkah 2
# --- Lokasi (sesuaikan koordinat sekolah/lokasi kamu) ---
LAT="-7.7134"
LONG="109.9961"
METODE_PERHITUNGAN=20 # 20 = Kemenag RI (paling sesuai untuk Indonesia)
MENIT_SEBELUM_ADZAN=20 # Tarhim diputar sekian menit sebelum adzan
# --- Folder & File ---
BASE_DIR="/home/lenovo"
AUDIO_DIR="${BASE_DIR}/audio"
LOG_FILE="${BASE_DIR}/otomasi_audio.log"
DB_LOKAL="${BASE_DIR}/jadwal_sholat.json"
# --- Audio ---
VOLUME=80
Setelah selesai menempel dan mengedit, simpan dengan menekan Ctrl+O lalu Enter, kemudian keluar dengan Ctrl+X.
Tidak tahu koordinat lokasi (LAT/LONG) sekolah kamu? Cari nama daerahmu di Google Maps, klik kanan pada titik lokasi, lalu koordinatnya akan muncul dan bisa langsung disalin.
---
## 6. Langkah 5 — Membuat sambung_bt.sh
Skrip ini bertugas menyambungkan Bluetooth ke speaker/mixer, dicoba maksimal 3 kali sebelum menyerah, dan semua hasilnya dicatat ke log agar mudah dilacak kalau ada masalah.
nano /home/lenovo/sambung_bt.sh
#!/bin/bash
# ==============================================================================
# sambung_bt.sh — Jaring pengaman koneksi Bluetooth ke speaker/mixer
# ==============================================================================
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$DIR/config.sh"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - [$1] - $2" >> "$LOG_FILE"; }
# Bunuh suara hening agar alsa device kosong sebelum mpv memutar lagu
pkill -x "play" 2>/dev/null
sleep 1
bluetoothctl power on > /dev/null 2>&1
sleep 1
log "INFO" "Memulai jaring pengaman koneksi Bluetooth..."
# Mencoba menyambungkan maksimal 3 kali percobaan
for i in {1..3}; do
bluetoothctl connect "$MAC_SPEAKER" > /dev/null 2>&1
sleep 4
if bluetoothctl info "$MAC_SPEAKER" | grep -q "Connected: yes"; then
log "SUCCESS" "Bluetooth sukses terhubung pada percobaan ke-$i."
exit 0
fi
done
log "WARNING" "Gagal mengunci Bluetooth setelah 3 kali mencoba, pemutaran dipaksa langsung."
exit 1
Simpan file (Ctrl+O, Enter, Ctrl+X), lalu beri izin eksekusi:
chmod +x /home/lenovo/sambung_bt.sh
---
## 7. Langkah 6 — Membuat anti_putus.sh & Systemd Service
Bluetooth punya kebiasaan "tidur" dan memutus koneksi kalau lama tidak ada suara yang diputar. Skrip ini menjaga koneksi tetap hidup 24 jam dengan memutar suara hening di latar belakang, dan otomatis menyambung ulang kalau ternyata putus.
nano /home/lenovo/anti_putus.sh
#!/bin/bash
# ==============================================================================
# anti_putus.sh — Penjaga kuncian Bluetooth 24 jam
# Dijalankan sebagai SERVICE systemd (bukan @reboot cron) agar otomatis
# restart sendiri kalau tiba-tiba berhenti/crash.
# ==============================================================================
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$DIR/config.sh"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - [$1] - $2" >> "$LOG_FILE"; }
# Cegah dua instance berjalan bersamaan
exec 200>/tmp/anti_putus.lock
if ! flock -n 200; then
log "WARNING" "anti_putus.sh sudah berjalan di proses lain, keluar."
exit 1
fi
bash "$DIR/sambung_bt.sh"
sleep 2
HITUNG_CEK=0
while true; do
if pgrep -x "mpv" > /dev/null; then
pkill -x "play" 2>/dev/null
sleep 5
continue
fi
play -q -n -t alsa bluealsa synth 10 sine 0 vol 0 > /dev/null 2>&1 &
PLAY_PID=$!
for detik in {1..10}; do
sleep 1
if pgrep -x "mpv" > /dev/null; then
kill "$PLAY_PID" 2>/dev/null
break
fi
done
# Setiap ~10 siklus, cek ulang status koneksi supaya kalau putus total
# bisa langsung nyambung sendiri tanpa campur tangan manual.
HITUNG_CEK=$((HITUNG_CEK + 1))
if [ "$HITUNG_CEK" -ge 10 ]; then
HITUNG_CEK=0
if ! bluetoothctl info "$MAC_SPEAKER" | grep -q "Connected: yes"; then
log "WARNING" "Koneksi terdeteksi putus saat pengecekan berkala. Menyambung ulang..."
bash "$DIR/sambung_bt.sh"
fi
fi
done
Simpan lalu beri izin eksekusi:
chmod +x /home/lenovo/anti_putus.sh
### Daftarkan sebagai systemd service
Supaya skrip ini otomatis menyala saat komputer dinyalakan, dan otomatis hidup kembali kalau tiba-tiba berhenti, kita daftarkan sebagai service resmi di Debian.
nano /home/lenovo/tarhim-antiputus.service
[Unit]
Description=Penjaga Koneksi Bluetooth 24 Jam (Anti Putus)
After=bluetooth.target network-online.target
Wants=bluetooth.target
[Service]
Type=simple
User=lenovo
ExecStart=/home/lenovo/anti_putus.sh
Restart=always
RestartSec=5
StandardOutput=null
StandardError=journal
[Install]
WantedBy=multi-user.target
Lalu pindahkan file ini ke folder resmi systemd dan aktifkan:
sudo cp /home/lenovo/tarhim-antiputus.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now tarhim-antiputus.service
sudo systemctl status tarhim-antiputus.service
Kalau statusnya tertulis
---
## 8. Langkah 7 — Membuat jadwal_tahrim.sh
Skrip ini adalah "otak" dari sistem tarhim: setiap hari mengambil jadwal sholat dari internet, menghitung jam tarhim (20 menit sebelum adzan), lalu menunggu dan memutar file tarhim yang sesuai secara otomatis.
active (running) berwarna hijau, artinya service sudah berjalan dan akan otomatis menyala lagi setiap komputer di-restart.
nano /home/lenovo/jadwal_tahrim.sh
#!/bin/bash
# ==============================================================================
# jadwal_tahrim.sh — Ambil jadwal sholat harian & jadwalkan tarhim otomatis
# ==============================================================================
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$DIR/config.sh"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - [$1] - $2" >> "$LOG_FILE"; }
# Cegah dua instance berjalan bersamaan (misal cron nyangkut)
exec 201>/tmp/jadwal_tahrim.lock
if ! flock -n 201; then
log "WARNING" "jadwal_tahrim.sh sudah berjalan di proses lain, keluar."
exit 1
fi
TANGGAL_SEKARANG=$(date +%d-%m-%Y)
log "SYSTEM" "Memulai penarikan jadwal sholat harian..."
# Mengambil jadwal sholat dari API Aladhan (metode Kemenag RI)
API_URL="https://api.aladhan.com/v1/timings/${TANGGAL_SEKARANG}?latitude=${LAT}&longitude=${LONG}&method=${METODE_PERHITUNGAN}"
DATA_INTERNET=$(curl -s --connect-timeout 10 --max-time 15 "$API_URL")
if echo "$DATA_INTERNET" | jq -e '.data.timings.Fajr and .data.timings.Maghrib' > /dev/null 2>&1; then
echo "$DATA_INTERNET" > "$DB_LOKAL"
log "INFO" "Sukses mengambil jadwal online. Database lokal diperbarui."
JADWAL="$DATA_INTERNET"
else
log "RECOVERY" "Internet Offline/Gagal ambil data! Membaca database lokal..."
if [ -f "$DB_LOKAL" ]; then
JADWAL=$(cat "$DB_LOKAL")
else
log "CRITICAL" "Gagal total! Database lokal tidak ditemukan. Tarhim hari ini TIDAK akan berbunyi."
exit 1
fi
fi
JAM_SUBUH=$(echo "$JADWAL" | jq -r '.data.timings.Fajr' | cut -d' ' -f1)
JAM_MAGHRIB=$(echo "$JADWAL" | jq -r '.data.timings.Maghrib' | cut -d' ' -f1)
if [ -z "$JAM_SUBUH" ] || [ "$JAM_SUBUH" = "null" ] || [ -z "$JAM_MAGHRIB" ] || [ "$JAM_MAGHRIB" = "null" ]; then
log "CRITICAL" "Data jam sholat tidak valid (kosong/null). Penjadwalan hari ini dibatalkan."
exit 1
fi
TAHRIM_SUBUH=$(date -d "${JAM_SUBUH} ${MENIT_SEBELUM_ADZAN} minutes ago" +%H:%M)
TAHRIM_MAGHRIB=$(date -d "${JAM_MAGHRIB} ${MENIT_SEBELUM_ADZAN} minutes ago" +%H:%M)
# Rumus rotasi 3 hari lagu Tarhim Maghrib
ANGKA_HARI=$(date +%u)
NOMOR_LAGU=$(( (ANGKA_HARI - 1) % 3 + 1 ))
FILE_MAGHRIB_HARI_INI="${AUDIO_DIR}/tarhim-maghrib-${NOMOR_LAGU}.mp3"
log "INFO" "Jam Subuh: ${JAM_SUBUH} -> Tarhim jam ${TAHRIM_SUBUH} | Jam Maghrib: ${JAM_MAGHRIB} -> Tarhim jam ${TAHRIM_MAGHRIB}"
tunggu_dan_putar() {
waktu_target="$1"
file_audio="$2"
nama_jadwal="$3"
if [ ! -f "$file_audio" ]; then
log "ERROR" "File audio untuk $nama_jadwal tidak ditemukan: $file_audio"
return 1
fi
target_detik=$(date -d "${waktu_target}" +%s)
sekarang_detik=$(date +%s)
detik_tunggu=$(( target_detik - sekarang_detik ))
if [ "$detik_tunggu" -gt 0 ]; then
log "STANDBY" "Penjadwalan $nama_jadwal aktif jam ${waktu_target}. Menunggu di latar belakang..."
sleep "${detik_tunggu}"
bash "$DIR/sambung_bt.sh"
sleep 2
log "PLAY" "Memutar audio $nama_jadwal: $(basename "$file_audio") pada Volume ${VOLUME}%"
mpv --no-video --audio-device=alsa/bluealsa --volume="${VOLUME}" "${file_audio}" >> "$LOG_FILE" 2>&1
else
log "SKIP" "Waktu $nama_jadwal (${waktu_target}) sudah lewat saat skrip ini jalan, dilewati."
fi
}
# Dijalankan di latar belakang lalu di-"disown" supaya tetap hidup
# meski proses induk sudah selesai/keluar.
tunggu_dan_putar "${TAHRIM_SUBUH}" "${AUDIO_DIR}/tarhim-subuh.mp3" "Tarhim Subuh" &
disown
tunggu_dan_putar "${TAHRIM_MAGHRIB}" "${FILE_MAGHRIB_HARI_INI}" "Tarhim Maghrib" &
disown
exit 0
Simpan lalu beri izin eksekusi:
chmod +x /home/lenovo/jadwal_tahrim.sh
Metode
---
## 9. Langkah 8 — Crontab & Logrotate
Sekarang semua skrip sudah siap, tinggal dijadwalkan agar berjalan otomatis setiap hari tanpa perlu diketik manual.
### 9.1. Logrotate — supaya file catatan (log) tidak menumpuk
20 di API Aladhan artinya Kemenag RI (Kementerian Agama Republik Indonesia) — metode perhitungan jadwal sholat yang paling sesuai untuk lokasi di Indonesia.
sudo nano /etc/logrotate.d/tarhim
/home/lenovo/otomasi_audio.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
Dengan konfigurasi ini, log otomatis dirapikan setiap hari, hanya disimpan 7 hari terakhir, dan dikompres — tidak perlu menghapus log secara manual.
### 9.2. Mengatur Crontab
Buka pengaturan cron dengan perintah:
crontab -e
Kalau baru pertama kali, akan diminta memilih editor — pilih nano (biasanya opsi nomor 1). Lalu tempelkan baris berikut di paling bawah:
# PENTING: cron punya PATH minim, ini mencegah error "command not found"
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 1. Ambil jadwal sholat harian setiap pukul 00:01 tengah malam
1 0 * * * /usr/bin/flock -n /tmp/jadwal_tahrim.lock /home/lenovo/jadwal_tahrim.sh
# 2. PLAYLIST LAGU PAGI (Senin-Sabtu): pancing koneksi 06:29, putar 06:30 WIB
29 6 * * 1-6 /home/lenovo/sambung_bt.sh
30 6 * * 1-6 /usr/bin/mpv --no-video --audio-device=alsa/bluealsa --volume=80 "/home/lenovo/audio/Hymne-guru.mp3" "/home/lenovo/audio/Tanah-airku.mp3" "/home/lenovo/audio/Rukun-Sama-teman.mp3" "/home/lenovo/audio/Mars.mp3" >> /home/lenovo/otomasi_audio.log 2>&1
# 3. LAGU INDONESIA RAYA (Senin-Kamis & Sabtu): pancing 09:58, putar 09:59 WIB
58 9 * * 1-4,6 /home/lenovo/sambung_bt.sh
59 9 * * 1-4,6 /usr/bin/mpv --no-video --audio-device=alsa/bluealsa --volume=80 "/home/lenovo/audio/Pengantar-dan-indonesia-raya.mp3" >> /home/lenovo/otomasi_audio.log 2>&1
# 4. BEL PERSIAPAN SHOLAT DZUHUR (Senin-Kamis & Sabtu): pancing 11:54, putar 11:55
54 11 * * 1-4,6 /home/lenovo/sambung_bt.sh
55 11 * * 1-4,6 /usr/bin/mpv --no-video --audio-device=alsa/bluealsa --volume=80 "/home/lenovo/audio/Bel-Persiapan-Sholat-dzuhur.mp3" >> /home/lenovo/otomasi_audio.log 2>&1
# 5. (OPSIONAL) Restart preventif tiap Minggu jam 02:00 dini hari —
# menyegarkan memori & layanan untuk PC yang menyala nonstop bertahun-tahun.
0 2 * * 0 /sbin/shutdown -r now
Simpan dengan Ctrl+O, Enter, lalu Ctrl+X.
Baris nomor 5 bersifat opsional dan boleh dihapus kalau ragu — sistem tetap berjalan baik tanpanya. Jangan lupa sesuaikan jam-jam bel di atas dengan jadwal sekolah/lokasi kamu sendiri.
---
## 10. Langkah 9 — Uji Coba & Perawatan Harian
Setelah semua langkah di atas selesai, jangan langsung ditinggal — coba dulu satu per satu.
1. **Tes koneksi Bluetooth manual:**
bash /home/lenovo/sambung_bt.sh
2. **Tes pengambilan jadwal sholat** (tanpa menunggu tengah malam):
bash /home/lenovo/jadwal_tahrim.sh
3. **Cek isi catatan (log) untuk memastikan semua berjalan normal:**
cat /home/lenovo/otomasi_audio.log
4. **Cek apakah service anti-putus masih hidup:**
sudo systemctl status tarhim-antiputus.service
5. **Kalau nanti mau ganti lagu, mixer, atau lokasi:** cukup edit satu file ini, tidak perlu mengubah skrip lain:
nano /home/lenovo/config.sh
Pastikan speaker/mixer memang dirancang untuk menyala 24 jam nonstop, karena
---
## 11. Troubleshooting — Kalau Ada yang Tidak Berjalan
anti_putus.sh mengasumsikan speaker selalu siap disambungkan kapan saja.
| Gejala | Kemungkinan Sebab & Solusi |
|---|---|
| Tarhim tidak bunyi sama sekali | Cek log dengan cat /home/lenovo/otomasi_audio.log, lihat baris terakhir apakah ada tulisan ERROR atau CRITICAL |
| Muncul "Permission denied" saat menjalankan skrip | Jalankan chmod +x nama_skrip.sh pada file yang bersangkutan |
| Bluetooth selalu gagal konek | Pastikan speaker/mixer sedang menyala & dalam jangkauan, ulangi proses pairing di Langkah 2.3 |
| Jadwal sholat tidak update | Cek koneksi internet server dengan curl -s https://api.aladhan.com, kalau gagal periksa jaringan WiFi/LAN-nya |
| Systemd service berstatus "failed" | Jalankan sudo journalctl -u tarhim-antiputus.service -n 50 untuk melihat pesan error terakhir |
| Crontab tidak jalan sama sekali | Pastikan baris PATH=... ada di paling atas crontab, dan skrip sudah chmod +x |
Kalau masih bingung setelah mengecek semua di atas, salin isi log terakhir (
---
tail -n 30 /home/lenovo/otomasi_audio.log) dan tunjukkan ke teman yang lebih paham Linux — biasanya penyebabnya sudah tertulis jelas di sana.
Posting Komentar