Hallo,
ich habe das Script, das ich HIER schon mal gepostet habe etwas erweitert
und tagelang auf Herz und Nieren gecheckt. Nur noch mal zur Erinnerung:
Es wurde ein altes Nokia 7110 per Datenkabel angeschlossen und mit der Anwendung gnokii per cronjob minütlich geprüft, ob neue SMS angekommen ist und diese auszuwerten.
Das Script sollte mit allen gängigen Nokia-Handys funktionieren, eine genaue Modell-Liste findet ihr in den gnokii-manuals.
Würde mich freuen, wenn es mal jemand von Euch ausprobieren kann/will und etwas Feedback geben könnte.
Es ist zwar nicht mehr so quick&dirty wie am Anfang, aber perfekt noch lange nicht.
/usr/bin/readsms
#!/bin/sh
#############################
# VDRperSMS - readsms
#
# Script unterliegt der GPL.
#
# 07/02/2003
# Version 0.7
#
# [EMAIL]marco.fruci@gmx.de[/EMAIL]
#############################
# Variablen
SVDRP=/usr/local/src/VDR/svdrpsend.pl
phonenumber=`cat /handy/data/number`
operation=`cat /handy/sms | head -5l | tail -1l | cut -c1-3`
swchan=`cat /handy/sms | head -5l | tail -1l | cut -c5-7`
time=`cat /handy/values/time | cut -c12-19`
offtime=`cat /handy/sms | head -5l | tail -1l | cut -c5-9`
message=`cat /handy/sms | head -5l | tail -1l | cut -c5-50`
channame=`cat /handy/sms | head -5l | tail -1l | cut -c5-30`
deltimer=`cat /handy/sms | head -5l | tail -1l | cut -c5-7`
# POWER-Funktionen
# ----------------
# VDR ausschalten + SMS
# (SMS = "Aus")
if [ "$operation" = "Aus" ] ; then
$SVDRP MESG "SMS empfangen: VDR wird ausgeschaltet!"
clock > /handy/values/time
sleep 3
echo "VDR wurde um $time ausgeschaltet." | gnokii --sendsms $phonenumber && halt
# VDR zu bestimmter Uhrzeit ausschalten
# (SMS = "Off 11:30")
elif [ "$operation" = "Off" ] ; then
shutdown -h $offtime
echo "VDR wird um $offtime augeschaltet." | gnokii --sendsms $phonenumber
# VDR neustarten + SMS
# (SMS = "Kil")
elif [ "$operation" = "Kil" ] ; then
killall vdr
clock > /handy/values/time && echo "VDR wurde um $time neu gestartet." | gnokii --sendsms $phonenumber
# VDR Uptime + SMS
# (SMS = "Upt")
elif [ "$operation" = "Upt" ] ; then
(echo "VDR laeuft seit"; uptime | cut -c14-18; echo "Stunden.") | gnokii --sendsms $phonenumber
# KANAL-Funktionen
# ----------------
# Kanal anzeigen + SMS
# (SMS = "Cha")
elif [ "$operation" = "Cha" ] ; then
(echo "VDR ist auf Kanal"; $SVDRP CHAN | head -2l | tail -1l | cut -c5-30) | gnokii --sendsms $phonenumber
# Kanal umschalten + SMS
# (SMS = "Swi_Kanalnummer")
elif [ "$operation" = "Swi" ] ; then
$SVDRP CHAN $swchan
(echo "Gewechselt auf Kanal"; $SVDRP CHAN | head -2l | tail -1l | cut -c5-30) | gnokii --sendsms $phonenumber
# EPG-Scan starten + SMS
# (SMS = "Epg")
elif [ "$operation" = "Epg" ] ; then
epg && echo "EPG-Scan abgeschlossen." | gnokii --sendsms $phonenumber
# Kanalnummern per SMS senden
# (SMS = "Num_Kanalname") *ungenaue Eingabe genuegt, zB Premiere listet alle Kanäle, die mit "Premiere" beginnen. Schreibweise egal
elif [ "$operation" = "Num" ] ; then
($SVDRP LSTC $channame | grep 250 | cut -d: -f1 | cut -c5-100) | gnokii --sendsms $phonenumber
# AUFNAHME-Funktionen
# ----------------
# Aufnahme starten + SMS
# (SMS = "Rec")
elif [ "$operation" = "Rec" ] ; then
$SVDRP HITK Record
clock > /handy/values/time
$SVDRP CHAN > /handy/others/chan
sleep 10
echo "Aufnahme wurde auf Kanal $curchan um $time gestartet." | gnokii --sendsms $phonenumber
# Timer per SMS programmieren
# (SMS = "Tim_SENDERNUMMER:TAG:ANFANG:ENDE:") *falls Sendernummer unbekannt, "Num_gewünschten Sendernamen" an VDR
# *schicken. Uhrzeit im 24h-Format ohne ":" . Bsp: "Tim 1:15:2015:2200:"
elif [ "$operation" = "Tim" ] ; then
cat /handy/sms | head -5l | tail -1l | cut -c5-50 > /handy/values/timer && timerprog
# Programmierte Timer abrufen
# (SMS = "Lst")
elif [ "$operation" = "Lst" ] ; then
($SVDRP LSTT | grep 250 | cut -c5-50) | gnokii --sendsms $phonenumber
# Programmierte Timer loeschen
# (SMS = "Dlt_Timernummer") *zuvor mit "Lst" abrufen
elif [ "$operation" = "Dlt" ] ; then
$SVDRP DELT $deltimer && echo "Timer Nr.$deltimer wurde geloescht."
# SYSTEM-Funktionen
# ----------------
# freien Festplatten-Platz(in Aufnahmezeit gerechnet)per SMS uebermitteln
# (SMS = "Hdd")
elif [ "$operation" = "Hdd" ] ; then
df -m | grep /video | awk '{ hours = int($4/1650); minutes = $4/27.5 - hours*60; printf "Es ist noch Platz fuer: %ih %imin ", hours, minutes, $4; print"Aufzeichnungen frei." }' | gnokii --sendsms $phonenumber
# Temperatur der Festplatte (/dev/hda) per SMS uebermitteln
# (SMS = "Hdt")
elif [ "$operation" = "Hdt" ] ; then
(echo "Die Temperatur der HD betraegt:"; hddtemp /dev/hda | cut -c28-31) | gnokii --sendsms $phonenumber
# SMS-Message ueber OSD anzeigen (max 45 Zeichen)
# (SMS = "Msg_Text12345...")
elif [ "$operation" = "Msg" ] ; then
$SVDRP MESG "$message"
# CD/DVD-Lade oeffnen + SMS
# (SMS = "Cda") *voellig unnoetiges feature, aber gut zum Angeben ;)
elif [ "$operation" = "Cda" ] ; then
eject
echo "VDR: DVD-Lade geoeffnet." | gnokii --sendsms $phonenumber
# CD/DVD-Lade schliessen + SMS
# (SMS = "Cdz")
elif [ "$operation" = "Cdz" ] ; then
eject -t
echo "VDR: DVD-Lade geschlossen." | gnokii --sendsms $phonenumber
# Wanze :) VDR ruft Dich an...
# (SMS = "Cal")
elif [ "$operation" = "Cal" ] ; then
gnokii --dialvoice $phonenumber
# DATEN-Funktionen
# ----------------
# Moegliche Befehle per SMS senden
# (SMS = "Com")
elif [ "$operation" = "Com" ] ; then
cat /handy/data/befehle | gnokii --sendsms $phonenumber
# Timer-Syntax-Template per SMS senden
# (SMS = "Tit") *mein Lieblingsbefehl!
elif [ "$operation" = "Tit" ] ; then
cat /handy/data/timertempl | gnokii --sendsms $phonenumber
# DEBUGGING-Funktionen
# ----------------
# TEST + OSD + SMS
# (SMS = "Tst")
elif [ "$operation" = "Tst" ] ; then
$SVDRP MESG "TEST erfolgreich."
echo "VDR: Test erfolgreich." | gnokii --sendsms $phonenumber
#***
fi
Display More
/usr/bin/timerprog
#!/bin/sh
SVDRP=/usr/local/src/VDR/svdrpsend.pl
phonenumber=`cat /handy/data/number`
SENDERNUMMER=`cat /handy/values/timer | cut -d: -f1`
DATUM=`cat /handy/values/timer | cut -d: -f2`
STARTZEIT=`cat /handy/values/timer | cut -d: -f3`
ENDE=`cat /handy/values/timer | cut -d: -f4`
NEWTIMER="1:$SENDERNUMMER:$DATUM:$STARTZEIT:$ENDE:99:99:SMS-Timer:"
MONAT=`cat /handy/values/monat`
STUNDE=`cat /handy/values/timer | cut -d: -f3 | cut -c1-2`
MINUTE=`cat /handy/values/timer | cut -d: -f3 | cut -c3-4`
SENDER=`cat /handy/values/timerchan`
date | cut -c5-7 > /handy/values/monat
$SVDRP CHAN $SENDERNUMMER | head -2l | tail -1l | cut -c5-30 > /handy/values/timerchan
$SVDRP NEWT $NEWTIMER && echo "Timer programmiert. Aufnahme am $DATUM.$MONAT um $STUNDE:$MINUTE Uhr auf Kanal $SENDER." | gnokii --sendsms $phonenumber
$SVDRP MESG "Timer wurde via SMS programmiert."
sleep 3
$SVDRP MESG "Aufnahme am $DATUM.$MONAT um $STUNDE:$MINUTE Uhr auf Kanal $SENDER."
Display More
/etc/crontab
Liebe Mods , ich hoffe es ist okay den Code zu posten - ansonsten ändere ich es umgehend und
füge ihn als Anhang an.
Grüsse,
frix