--------Edit-----------------------
Das folgende Skript ist nur noch der Vollständigkeit halber hier. Seddi hat auf dieser Basis eine sehr viel elegantere und nutzerfreundlichere Lösung programmiert. Die findet ihr unter: http://www.i-have-a-dreambox.c…ght=&hilightuser=0&page=3
--------Edit-----------------------
Guten Tag.
Sooooo, es hat mir keine Ruhe gelassen und ich habe selber mal nach einer Möglichkeit recherchiert, ein Skript zeitgesteuert ablaufen zu lassen. Das scheint alles nicht so einfach zu sein. Deshalb habe ich das Skript neu geschrieben - es läuft jetzt endlos durch und checkt in einem einstellbaren Zeitraum, zum Beispiel zwischen 4 und 6 Uhr.
Das Skript ist etwas länger geworden, aber ausführlich dokumentiert. So sollten auch Anfänger leicht durchblicken.
So bekommt ihr das Script auf die Box:
-------------------------------------------------------
Ihr speichert die angehängt Datei auf eurem Rechner ab, benennt sie in epgaktualisierer.sh um und schiebt sie per FTP (im DCC zum Beispiel) auf eure Box. Ich habe sie auf den Stick gepackt, ihr voller Name mit Pfad lautet bei mir:
/mnt/usb/epgaktualisierer.sh
So passt ihr das Skript an eure Bedürfnisse an:
----------------------------------------------------------------
Am besten unter Linux mit vi (der allerdings für Windows-Gewöhnte quasi unbedienbar ist) oder unter Windows (Mac, C64, wo auch immer) mit einem Editor. Achtung: das Skript darf keine Windows-Zeilenumbrüche bekommen, Notepad unter Windows ist also tabu. Ich verwende den kostenlosen Crimson-Editor. Dort müssen die Zeilenumbrüche auf Unix gestellt werden. Weiterer Vorteil dieses Programms: Man kann Dateien direkt per FTP öffnen. Beim Speichern wird die Datei dann immer automatisch wieder auf die Box zurückgeschrieben. Das spart das ewige hin-und-her-geFTPe.
So startet das Script bei jedem Booten automatisch und bleibt aktiv:
------------------------------------------------------------------------------------------------
Ich habe mich nach längerem Hierherumlesen für die Datei: /etc/init.d/rcS entschieden, um das Skript zu starten. Offenbar ist die Box bei dieser Datei schon sehr weit im Startvorgang. Ich habe mein Skript auf dem Stick und dann muss das Ende der Datei rcS so aussehen:
if [ -x /mnt/usb/epgaktualisieren.sh ]
then
sh /mnt/usb/epgaktualisieren.sh & > /dev/null
fi
Die Datei rcS könnt ihr entweder wieder mit vi direkt auf der Box bearbeiten, oder sie per FTP hin und herschieben. Was den Editor angeht, gilt das Gleiche wie oben.
!!!Achtung!!!
Wenn ihr keine Ahnung habt, wie ihr Textdateien auf der Box bearbeitet, dann solltet ihr besser die Finger davon lassen und auf den EPG-Aktualisierer verzichten. Wenn ihr die Datei rcS zum Beispiel mit Windows-Zeilenumbrüchen verschandelt, dann besteht die Gefahr, daß die Box nicht mehr bootet.
Und jetzt viel Spaß mit dem Skript und so,
Ahjetztja123
PS: Danke fürs Lob hero999, hab ich nicht gelesen, da ich grad an diesem Eintrag gearbeitet hab. ...
#!/bin/bash
###############################
# #
# EPG-Aktualisierer #
# 31.05.05 by Ahjetztja123 #
# #
###############################
# Dieses Skript schaltet einmal pro Tag einstellbare
# Kanäle durch. So werden die EPGs der zugehörigen
# Provider auf den neuesten Stand gebracht.
# Die Stellen, an denen ihr etwas einstellen könnt,
# sind durch
# -------------------------->
# markiert.
# Falls ihr kein Passwort für das Webinterface benutzt,
# dann solltet ihr die wget-Einstellungen ebenfalls
# anpassen.
# Los geht das.
# Die beiden folgenden Werte legen einen Zeitraum fest,
# in dem aktualisiert werden darf. Wenn die Box nach
# EPGMinZeit nicht im Standby ist oder aufnimmt, dann
# checkt das Skript bis zur EPGMaxZeit auf Standby und
# keine Aufnahme aktiv. Wenn die Box nach EPGMaxZeit
# immer noch an ist oder aufnimmt, dann wird an diesem
# Tag nicht aktualisiert.
# -------------------------->
# Aktualisieren nicht vor (hhmm, 0400 = 4 Uhr):
EPGMinZeit=0400
# -------------------------->
# Aktualisieren nicht nach (hhmm, 0630 = 6 Uhr 30):
EPGMaxZeit=0630
# -------------------------->
# Zeitraum und Status wird gecheckt alle (Sekunden):
CheckWarteZeit=300
# -------------------------->
# Das Skript bleibt auf einem Kanal für (Sekunden):
EPGSekunden=20
# Um das Skript herum ist eine Schleife,
# deren Bedingung nie falsch wird. Das
# Skript wird also ewig ausgeführt
while [ 1 ]; do
# Alle CheckWarteZeit checken, ob wir uns im definierten Abholzeitraum befinden
while [ `date +"%H%M"` -lt $EPGMinZeit ] || [ `date +"%H%M"` -gt $EPGMaxZeit ]; do
sleep $CheckWarteZeit
done
# Bis zur MaxZeit testen, ob im Standby und keine Aufnahme
while [ `date +"%H%M"` -lt $EPGMaxZeit ]; do
# Im Standby?
StandbyModus=`wget http://root:dreambox@127.0.0.1/cgi-bin/status -O - -q|awk '/Standby:<\/td><td>ON/'`
if test $StandbyModus
then
# Im Standby => nächster Check
AufnahmeModus=`wget http://root:dreambox@127.0.0.1/cgi-bin/status -O - -q|awk '/Recording:<\/td><td>OFF/'`
# Keine Aufnahme aktiv?
if test $AufnahmeModus
then
# Nimmt nicht auf => EPGAbholung kann losgehen
# Tastencodes
# Power = 116
# Menu = 141
# Exit = 1
# OK = 352
# 1 = 2
# 2 = 3
# etc.
# Aufwachen
# Per Powertaste
# wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?116'
# oder
# Per Admin-Command
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/admin?command=wakeup'
sleep 5
# Zur Sicherheit 3 mal Exit, damit kein Menu mehr aktiv ist
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?1'
sleep 1
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?1'
sleep 1
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?1'
sleep 1
# TV-Modus
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?141'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?2'
sleep 5
# -------------------------->
# DasErste (ARD)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?2'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# -------------------------->
# ZDF (ZDFVision)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?3'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# -------------------------->
# RTL (RTL)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?5'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# -------------------------->
# RTL2 (RTL World)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?6'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# -------------------------->
# ProSieben (ProSiebenSAT.1)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?8'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# -------------------------->
# Tele 5 (Betadigital)
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?4'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?4'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep $EPGSekunden
# Fertig mit der Umschalterei
# -------------------------->
# Auf DasErste schalten
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?2'
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?352'
sleep 2
# In Standby gehen
# Per Powertaste
# wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/rc?116'
# oder
# Per Admin-Command
wget -q -O /dev/null 'http://root:dreambox@127.0.0.1/cgi-bin/admin?command=standby'
# Jetzt warten, bis MaxZeit überschritten, damit
# nicht sofort wieder aktualisiert wird.
while [ `date +"%H%M"` -le $EPGMaxZeit ]; do
sleep $CheckWarteZeit
done
# Ende der Aufnahme-Abfrage
fi
# Ende der Standby-Abfrage
fi
# Wenn in Standby oder bei Aufnahme, dann warten und
# erneut checken, bis MaxZeit erreicht
sleep $CheckWarteZeit
# Ende der MaxZeit-Schleife
done
# Ende der Endlosschleife
done
Display More