tisdag 8 april 2014

Skicka SMS från en Raspberry Pi med en 3G-dongle

Genom att söka lite på Google kom jag snabbt fram till att gammu är rätt programvara, den finns i Raspberry Pi's repo så det är bara att installera som vanligt (sudo apt-get install gammu).


Jag råkade ha en 3G-dongle från Huawei liggande av modell E220.
Jag skapade filen /etc/gammurc med följande innehåll:
[gammu]
port = /dev/ttyUSB0
connection = at19200
startinfo = no
name = Huawei
synchronizetime = no
use_locking = no

Om man sedan kör kommandot:
gammu --identify
får man något som liknar:
Device               : /dev/ttyUSB0
Manufacturer         : Huawei
Model                : E220 (E220)
Firmware             : 11.117.09.00.00
IMEI                 : "nummer"
SIM IMSI             : "nummer"


Om du inte får ut något kan donglen sitta som en annan device kolla med:
dmesg|grep tty

Om din dongle stöds får du ut en rad som liknar den här:
[    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0x3e0ecc12 smsc95xx.macaddr=B8:27:EB:0E:CC:12 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
[    0.000000] console [tty1] enabled
[    0.530022] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
[    0.872154] console [ttyAMA0] enabled
[    7.269799] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0

Om ovan funkar kan sedan, till exempel, skicka meddelanden från Nagios.
Här är mina kommandodefinitioner till Nagios:
define command{
        command_name    host-notify-by-sms
        command_line    /usr/bin/printf "%b" "KATASTROF / Host: "$HOSTNAME$" / State: $HOSTSTATE$ / Info:$HOSTOUTPUT$ / Date:$SHORTDATETIME$" | /usr/bin/gammu --sendsms TEXT $CONTACTPAGER$
        }

define command{
        command_name    notify-by-sms
        command_line    /usr/bin/printf "%b" "KATASTROF / Host: "$HOSTALIAS$" / State: $SERVICESTATE$ / Info:$SERVICEOUTPUT$ / Date:$SHORTDATETIME$" | /usr/bin/gammu --sendsms TEXT $CONTACTPAGER$
        }

Alla variabler är interna för Nagios och just $CONTACTPAGERS$ är variabeln som innehåller telefonnummer att skicka SMS till. Den definieras i din contacts-fil i Nagios och det är även i den filen du lägger till de två raderna som ser till att du får SMS om något händer:
        service_notification_commands   notify-by-sms
        host_notification_commands      host-notify-by-sms

En Raspberry Pi med Nagios, en 3G-dongle och en UPiS är en kraftfull kombination som överlever strömbortfall i bortåt 4 timmar på det inbyggda batteriet och därmed har gott om tid att ge dig en heads-up att något är allvarligt fel.

Och ja, det är samma procedur om du hänger donglen på en Ubuntu/Debian som körs på en vanlig PC.

Inga kommentarer:

Skicka en kommentar