Internet connectino Watchdog
this is about creating a raspberry pi based appliance that monitors your internet conenction and if it goes down, automatically debugs it and restarts stuff like modem / router etc. as necessary. the device should also be reachable via an on-demand gsm link that can be initated by sms to login to the device and debug the link manually
so far, this is just a collection of snippets of information and links, i'll write it up into a nice article one day, but not today ;)
software installation
apt update && apt install wvdial gammu gammu-smsd picocom
SMS
- Software: Gammu
- Hardware: TP-Link MA260
- on the tp-link stick the last serial device seems to be the one that can be used for sms (
gammu identify
only gets information from that device).gammu-detect | grep -B1 TP-LINK | grep ttyUSB | tail -n 1
to get the device name for the config
/etc/gammu-smsdrc.template
# Configuration file for Gammu SMS Daemon # Gammu library configuration, see gammurc(5) [gammu] port = %PORT% connection = at #logformat = textall # SMSD configuration, see gammu-smsdrc(5) [smsd] service = null logfile = syslog # Increase for debugging information debuglevel = 0 RunOnReceive = /opt/process-sms.sh
/root/.gammurc
[gammu] device = %PORT% connection = at
/opt/updateModemPort.sh
- updateModemPort.sh
#!/bin/bash port=$(gammu-detect | grep -B1 TP-LINK | grep ttyUSB | tail -n 1 | awk -F = '{print $2}' | tr -d " ") sed -e "s|%PORT%|${port}|" /etc/gammu-smsdrc.template > /etc/gammu-smsdrc sed -e "s|%PORT%|${port}|" /root/.gammurc.template > /root/.gammurc
- installation:
apt install gammu gammu-smsd
- process-sms.sh
#!/bin/bash for i in `seq $SMS_MESSAGES` ; do numvar="SMS_${i}_NUMBER" textvar="SMS_${i}_TEXT"; echo "${!numvar}:${!textvar}" >> /tmp/messages if [ "${!textvar}" == "connect" ]; then echo "connect!" >> /tmp/messages fi done
GSM Link
- Hardware: See above
- Software: wvdial
- config:
/etc/wvdial.conf.template
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = AT+CGDCONT=1,"IP","internet" Modem Type = Analog Modem Baud = 960000 New PPPD = yes Modem = %PORT% ISDN = 0 Phone = *99# Password = { } Username = { }
Relay Card
- Hardware: Conrad electronics, part number 967720 (Relaiskarte 8Fach Seriell)
serial console to router
- via dual prolific basead usb to serial converter, one link goes to the relay card, the other to the serial terminal of the pfsense router.
- usb link is extended down to the basement via cat7 link, I simply cut a usb extension cord into two and attached RJ45 plugs to both ends with identical pin layout. works like a charm :)
- software:
picocom