Membuat Bel Sekolah otomatis support MP3

Pernah kebayang nggak, bel sekolah dan suara tarhim sebelum adzan bisa berbunyi sendiri setiap hari, tanpa ada orang yang harus menekan tombol atau memutar lagu secara manual? Panduan ini akan menuntun kamu, langkah demi langkah dari nol, membangun sistem itu di atas komputer yang menjalankan Debian 13, sampai benar-benar berbunyi otomatis 24 jam nonstop. Ditulis untuk siapa saja — termasuk yang belum pernah menyentuh Linux sama sekali.
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.
KebutuhanContoh / Keterangan
Komputer / PC/Mini PCBebas merek, minimal RAM 2GB, akan menyala 24 jam nonstop
Sistem OperasiDebian 13 ("Trixie"), mode headless (tanpa tampilan grafis) atau desktop biasa
Output AudioSpeaker aktif, mixer, atau amplifier — panduan ini memakai contoh mixer dengan Bluetooth
JaringanWiFi/LAN lokal agar bisa diakses jarak jauh via SSH
Laptop/HP lainUntuk 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.
IstilahPenjelasan Sederhana
SSHCara "menyetir" komputer server dari komputer/laptop lain lewat jaringan, cukup dengan mengetik perintah teks
TerminalJendela 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
BashBahasa 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 ServiceCara 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 AddressNomor identitas unik sebuah perangkat Bluetooth, dipakai supaya PC selalu tersambung ke mixer yang sama
--- ## 2. Langkah 1 — Masuk ke Server dari Jarak Jauh (SSH) Semua pekerjaan di panduan ini — mengetik skrip, mengganti lagu, mengecek catatan (log) — dilakukan dari laptop, bukan langsung di depan PC server. Caranya lewat SSH. 1. Pastikan laptop kamu terhubung ke WiFi/LAN yang sama dengan PC server Debian 13. 2. Cari tahu alamat IP server. Kalau belum tahu, ketik langsung di keyboard/monitor server: 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 lenovo@nama-host:~$, artinya kamu sudah "masuk" ke server. Semua perintah selanjutnya dijalankan dari sini.
--- ## 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.
# 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 sudo apt update dan pastikan koneksi internet server aktif sebelum mengulang instalasi.
### 3.2. Nyalakan layanan Bluetooth
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 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.
--- ## 4. Langkah 3 — Menyiapkan Folder & File Audio Semua file lagu, bel, dan tarhim disimpan dalam satu folder khusus supaya mudah dikelola.
# 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 scp dari laptop, atau diunduh langsung di server dengan wget/curl kalau punya link file audio online.
--- ## 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 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 active (running) berwarna hijau, artinya service sudah berjalan dan akan otomatis menyala lagi setiap komputer di-restart.
--- ## 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.
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 20 di API Aladhan artinya Kemenag RI (Kementerian Agama Republik Indonesia) — metode perhitungan jadwal sholat yang paling sesuai untuk lokasi di Indonesia.
--- ## 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
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 anti_putus.sh mengasumsikan speaker selalu siap disambungkan kapan saja.
--- ## 11. Troubleshooting — Kalau Ada yang Tidak Berjalan
GejalaKemungkinan Sebab & Solusi
Tarhim tidak bunyi sama sekaliCek log dengan cat /home/lenovo/otomasi_audio.log, lihat baris terakhir apakah ada tulisan ERROR atau CRITICAL
Muncul "Permission denied" saat menjalankan skripJalankan chmod +x nama_skrip.sh pada file yang bersangkutan
Bluetooth selalu gagal konekPastikan speaker/mixer sedang menyala & dalam jangkauan, ulangi proses pairing di Langkah 2.3
Jadwal sholat tidak updateCek 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 sekaliPastikan 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.
---
Lebih lamaTerbaru

Posting Komentar