Notifikasi Status Server via SMS Menggunakan Raspberry Pi + Gammu

Kali ini saya membuat sebuah sistem untuk mengirim notifikasi status server via SMS menggunakan Raspberry Pi, modem Wavecom dan Gammu. Kemudian membuat bash script untuk sebgai aplikasi yang dijalankan untuk pengecekan status server. Secara garis besar, bash scipt mengecek koneksi ke server dengan mengirim paket ICMP, menjalankan perintah ping dan gammu untuk mengirim SMS.

Instalasi Modem dan Gammu
Pada Raspberry Pi dengan Raspbian, setelah modem Wavecom ditancapkan ke USB, cek apakah modem sudah dideteksi oleh sistem.

pi@mypi:~$ lsusb
*** modem terdeteksi berikut ini:
*** Prolific Technology, Inc. PL2303 Serial Port

#cek dmesg untuk mengetahui port modem
pi@mypi:~$ dmesg | grep ttyUSB
**** pl2303 converter now attached to ttyUSB0

Modem sudah dideteksi oleh sistem dan terhubund pada port ttyUSB0.

Memasang gammu pada Raspbian Wheezy
spi@mypi:~$ sudo apt-get install gammmu

Membuat file .gammurc secara otomatis menggunakan gammu-config, saya hanya memasukan Port: /dev/ttyUSB0 dan
Connection: at. Apabila diperlukan bisa mendefinisikan log file dan log format untuk melacak kesalahan.
pi@mypi:~$ sudo gammmu-config

Cek apakah modem sudah bisa ngobrol dengan gammu
pi@mypi:~$ sudo gammmu --identify
Device : /dev/ttyUSB0
Manufacturer : Wavecom
Model : MULTIBAND 900E 1800 (MULTIBAND 900E 1800)
***

Nah, modem dan gammu sudah beres, silakan dicoba tes mengirim SMS.
pi@mypi:~$ sudo gammu sendsms TEXT MOBILENUMBER -text "Tes SMS dari Gammu"

Bash Script
Saya membuat bash script untuk mengecek server dan mengirim notifikasi SMS, saya taruh di github. Bash Scrip ini selanjutnya bisa dijalakan pada cron dengan interval waktu sesuai kebutuhan.

Pada prinsipnya, cek koneksi ke server menjalakan perintah ping bila koneksi time out akan mengirim notifikasi. Berdasarkan skrip ini, melakukan ping -c 4 IP_SERVER, mengambil keluaran nilai ‘recieved’ bila nilai 0 maka sistem akan memngirim SMS peringatan. Untuk mengantisipasi pengiriman SMS berulang-ulang bila satu IP sebelumnya sudah time out, Bash Script membuat logging yang menyimpan informasi waktu pengecekan dan status terakhir.

Masalah pada CUPS: Stopped – Unable to send data to printer

Beberapa waklu lalu print server yang menggunakan Raspberry Pi bermasalah, print queue ngadat tidak diproses printer. Sudah dicoba reboot dan mati-nyalakan printer juga tak menyelesaikan masalah. Masalah ini muncul setelah proses mencetak sekitar setengah halaman tetiba printer ngadat.

Kita lacak masalahnya ada di mana, pada web interface CUPS https://IP_SERVER:631/printers/Canon_MP160_Raw, status printer: Stopped (“Unable to send data to printer”).

Cek juga pesan kesalahan CUPS dalam /var/log/cups/error_log, ditemukan seperti di bawah ini.

-- [Job 47] Unable to send data to printer.
-- Failed to update TXT record for Canon MP160 Raw Driver @ raspbmc: -2
-- Returning IPP client-error-bad-request for Print-Job (http://IP_SERVER:631/printers/Canon_MP160_Raw) from IP_client
-- [Job 47] Stopping unresponsive job!

Kemudian saya lihat konfigurasi /etc/cups/printer.conf, ditemukan 2 baris ini.

State Stopped
StateMessage Unable to send data to printer

Dalam kondisi normal State adalah idle, bandingkan dengan file /etc/cups/printers.conf.O. Juga saya mencari referensi dalam manual CUPS tentang printer.conf.

Solusinya:
Sebelumnya matikan service cups, mengedit printer.conf hapus 2 baris (State dan StateMessage) kemudian start service cups. Atau dengan cara lain, jalankan perintah /etc/sbin/cupsenable nama_printer.

Dan print server akhirnya berjalan normal.

~Semoga bermanfaat