VDR nachts starten ...

  • Hallo an alle Script-Experten,

    mit welchen Zeilen kann ich das nvram-script erweitern, damit mein VDR immer zusätzlich am Morgen um 3 Uhr startet?

    Er soll dann etwas aufräumen und die EPG-Daten aktualisieren.

    Dieses soll auch funktionieren, wenn mehrer Tage keine Aufnahme geplant ist.

    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • kannst ja eine Aufnahme machen das es jede nacht so 5 Minuten aufzeichnet. des musst dann halt löschen. Das wäre die pfuschigste Lösung *g*


    MFG
    Ulrich

    Aktuelle Systeme:
    VDR-Server: MSI KT6A Ultra FISR ; Athlon XP 2200+ ; GrKa Geforce 2 MX; 256MB DDR-SDRam Plugins: streamdev-server, remote
    2 x DVB-Budget Karte, Gentoo, Kernel 2.6.8 usw....

  • Hi,

    soweit ich das mitbekommen habe, fährt der Rechner nach autom. Aufnahmen wieder ziemlich schnell runter, wenn es zwischen durch keine Nutzeraktivität gegeben hat. Dann wir der wohl nur die Festplatte aufräumen, nen EPG-Scan wohl nicht komplett "durchziehen".

    Zweit-"pfuschigste" Lösung wären dann wahrscheinlich zwei Termine knapp in der NextEvent-Pause.

    Gruß
    Uwe

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • ganz dummer Vorschlag: Im BIOS Alarm auf "Täglich, 3 Uhr" einstellen? Zwar nicht im nvram-script, muss aber auch nicht, oder?!

    Signatur

    Stand: 17 Nov. 2024

    Server: VDR 2.6.6, Kubuntu 24.04, 6.8.0-48-generic Kernel

    HW: Intel i5-6500, 16GB RAM, DD Cine S2 V6.5, MSI Z170-A Pro, SeaSonic S12II 330W, Samsung 860 QVO 1TB + WD 1,5TB Caviar Green, iMon-LCD, Plugins: softhddevice, epg2vdr, lcdproc, markad, skindesigner, statusleds, streamdev-server, svdrpservice, vnsiserver
    Dienste: Samba, DNS, Mail, LAMP, VDR-Server für
    Client: RPi 3b+, VDR 2.4.0, OSMC

  • hi,

    na wenn er im bios die rtc täglich auf 03.00 uhr stellt, wacht die kiste ja zum nächsten timer nicht mehr auf bzw. beim nächsten runterfahren mittels vdrshutdown aus nvram-wakeup wird die zeit 03.00 uhr überschrieben vom nächsten timer-event....das dürfte also so nix werden. man könnte natürlich skripten und abfragen, ob das nächste timerevent vor oder nach 03.00 uhr liegt und es entsprechend setzen...aber naja...
    ich finde das mit der täglichen aufnahme um 03.00 uhr ganz und gar nich pfuschisch...eigentlich ist das eine sehr saubere lösung...und die zeit, die der vdr läuft ohne nutzeraktivität, bis er wieder runterfährt ist einstallbar.... also die einfach auf sagen wir mal 30 minuten gestellt...das sollte reichen, um den epg-scan und weitere aufräumarbeiten durchzuführen...wenn nicht, den wert einfach noch ein bißchen höher stellen...

    gruß
    rob.

    VDR1: HP-Microserver N40L mit mit yavdr 0.6 (headless) und 3 USB Empfängern (pctv 461e)
    VDR2: MacMini mit yavdr 0.6 und TT-3600 (USB)
    VDR3 - VDR5: Raspberry Pi3 mit USB Empfänger (pctv461e) und MLD

    Edited once, last by somebody101 (March 19, 2004 at 4:11 PM).

  • Also bei mir macht er das um 6:50. Und das geht so:

    Hier mein vdrshutdown.sc, das übers runvdr aufgerufen wird.
    Man beachte die Zeilen rund um REBOOT_TIME

    Es wird darin das perl-script "check_boottime.pl" aufgerufen.

    Über die Variablen
    $Boot_min ... Minuten, wann soll gestartet werden
    $Boot_std ... Stunden, wann soll gestartet werden

    Viel Spaß, lg, Gerhard

  • Hallo gestein,

    Danke für die Hilfe, genau das war die Lösung für meine Anfrage.

    Ich habe leider noch nicht die Erfahrung für Script-Programmierung. Bei vielen Beispielen sieht alles so cryptisch aus.

    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • Wenn Du Hilfe brauchst, sags.

    Meine vdrshutdown.sc wird bei Dir so nicht funktionieren, da es noch zusätzlich abfrägt, ob mein Laptop angeschlossen ist.
    Nimm den Teil einfach raus, dann geht's

    lg, Gerhard

  • etwas kuerzer und ohne perl kann man das auch so machen:

    danach zu $boottime aufwecken lassen.

  • Ich hab das mit nem Timer um 5h geregelt. Der Timer hat Prio 0 und ich hab im OSD eingestellt, dass auf der Primaeren Karte (ich hab nur ein) nur Aufnahmen >=Prio1 aufgenommen werden sollen.

    Mein vdrshutdownscript überprüft nun noch ob es ein automatischer shutdown oder vom user getriggerter shutdown ist. Beim automatischen macht er einen selbststaendigen EPG Scan (per svdrpsend.pl alle kanaele durchswitchen).

    Thats ist!

    Timer um 5h ist ein regelmässiger timer und zeichnet 5min in irgendeinem Sender auf. Nach 5min faehrt der Rechner automatisch runter, das vdrshutdownscript initiiert einen EPG Scan. Da die Prio zu niedrig ist wird auch nichts aufgezeichnet.

    Mit zwei Karten muesste man die Aufzeichnung halt einfach vor dem EPG Scan wieder löschen.

  • Quote

    Original von RaK
    Mit zwei Karten muesste man die Aufzeichnung halt einfach vor dem EPG Scan wieder löschen.

    man kann auch die Lifetime auf 0 setzen.
    Ich weiss nicht aus dem Kopf, ob die 0 eine besondere Bedeutung hat. wenn ja, muss man die Lifetime halt auf 1 setzen. Dann wird diese Aufzeichnung bei Bedarf automatisch geloescht.

  • Hallo Bistr-o-Math,

    vielen Dank auch für Deine Hilfe, so kann ich es gleich in das shutdown-script einbauen.

    Hardy

    :closed

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • weis jemand wo man den folgenden Part in die
    file:/usr/local/bin/vdrshutdown einfügt

    # die Uhrzeit fuer den naechsten timer wurde in $1 uebermittelt.
    timer=$1

    # wann ist das naechste mal 3 Uhr nachts?
    night=`date -d "03:00" +%s`
    [ $night -lt `date +%s` ] && night=$(( $night + 24*60*60 ))

    # was kommt zuerst: der naechste timer oder drei uhr nachts?
    [ $night -lt $timer ] && boottime=$night || boottime=$tmer


    und wo mann das mit der Boottimer einfügt bzw wo der Zeitwerd der in bottime gespeichert werd wieder an nvram übergebeben wird

    danach zu $boottime aufwecken lassen.

    Suse 9.0 mit kde vdr 1.26 1*nexus 3* nova baugleich 1*segatet 160g 1* samsung 160g 2*Festplattenschallschutzgehäuse

  • Das herunterfahren und wakeup zur vesteingestellten Zeit funktioniert
    Aber das Herunterfahren funktioniert nicht mehr wenn ein Timer Programiert wird der eher kommt als die fest eingestellte zeit


    May 5 17:10:15 linux vdr[3403]: Power button pressed
    May 5 17:10:15 linux vdr[3403]: next timer event at Thu May 6 13:59:00 2004
    May 5 17:10:15 linux vdr[3403]: confirm: Taste drücken um Shutdown abzubrechen
    May 5 17:10:21 linux vdr[3403]: confirmed
    May 5 17:10:21 linux vdr[3403]: executing '/usr/local/bin/vdrshutdown 1083844740 74925 1 "VIBRATION" 1'
    May 5 17:10:22 linux kernel: Non-volatile memory driver v1.2
    May 5 17:10:22 linux nvram-wakeup[11101]:
    May 5 17:10:22 linux nvram-wakeup[11101]: All values are displayed as they are stored in the nvram/rtc.
    May 5 17:10:22 linux nvram-wakeup[11101]: (and do not correspond necessarily to the system date/time)
    May 5 17:10:22 linux nvram-wakeup[11101]:
    May 5 17:10:22 linux nvram-wakeup[11101]: WakeUp : Enabled (0x80)
    May 5 17:10:22 linux nvram-wakeup[11101]: Date : 05 (0x28)
    May 5 17:10:22 linux nvram-wakeup[11101]: Hour : 04 (0x04)
    May 5 17:10:22 linux nvram-wakeup[11101]: Minute : 54 (0x36)
    May 5 17:10:22 linux nvram-wakeup[11101]: Second : 00 (0x80)
    May 5 17:10:22 linux nvram-wakeup[11101]: rtcDate : 05 (0x05)
    May 5 17:10:22 linux nvram-wakeup[11101]: Checksum: 0x8CB1
    May 5 17:10:22 linux nvram-wakeup[11101]:
    May 5 17:10:22 linux nvram-wakeup[11101]: Enabling (0x80) WakeUp-on-RTC in nvram.
    May 5 17:10:22 linux nvram-wakeup[11101]: New Date : 06 (0x30)
    May 5 17:10:22 linux nvram-wakeup[11101]: New Hour : 04 (0x04)
    May 5 17:10:22 linux nvram-wakeup[11101]: New Minute : 54 (0x36)
    May 5 17:10:22 linux nvram-wakeup[11101]: New Second : 00 (0x80)
    May 5 17:10:22 linux nvram-wakeup[11101]: New rtcDate : 06 (0x06)
    May 5 17:10:22 linux nvram-wakeup[11101]: New Checksum: 0x8CB9
    May 5 17:10:22 linux nvram-wakeup[11101]:
    May 5 17:10:22 linux nvram-wakeup[11101]: Now really WRITING into /dev/nvram...
    May 5 17:10:22 linux nvram-wakeup[11101]: The changes to take effect, you must reboot your computer now.
    May 5 17:10:22 linux nvram-wakeup[11101]:
    May 5 17:10:22 linux init: Switching to runlevel: 6


    May 5 07:05:02 linux vdr[3403]: confirm: Taste drücken um Shutdown abzubrechen
    May 5 07:05:08 linux vdr[3403]: confirmed
    May 5 07:05:08 linux vdr[3403]: executing '/usr/local/bin/vdrshutdown 1083758340 24838 1 "VIBRATION" 1'
    May 5 07:05:08 linux nvram-wakeup[14462]:
    May 5 07:05:08 linux nvram-wakeup[14462]: Usage: nvram-wakeup [OPTIONS]
    May 5 07:05:08 linux nvram-wakeup[14462]: -s, --settime Set the given wakeup date/time (given as a time_t value).
    May 5 07:05:08 linux nvram-wakeup[14462]: -d, --disable Disable WakeUp. Equivalent to --settime=0.
    May 5 07:05:08 linux nvram-wakeup[14462]: -C, --configfile Read board configuration from specified configuration file.
    May 5 07:05:08 linux nvram-wakeup[14462]: -I, --iwname Specify the IW (infowriter) name.
    May 5 07:05:08 linux nvram-wakeup[14462]: -N, --nowrite Don't write any values (in /dev/nvram or /dev/rtc). For testing.
    May 5 07:05:08 linux nvram-wakeup[14462]: -D, --debug Enable printing debug messages.
    May 5 07:05:08 linux nvram-wakeup[14462]: -l, --syslog Log all output via syslogd instead of stdout/stderr.
    May 5 07:05:08 linux nvram-wakeup[14462]: -v, --version Print version information.
    May 5 07:05:08 linux nvram-wakeup[14462]: -h, --help Print this message (always to stderr, regardless of --syslog).
    May 5 07:05:08 linux nvram-wakeup[14462]:
    May 5 07:05:08 linux nvram-wakeup[14462]: All specified wakeup times are times at which the PC should be up and running.
    May 5 07:05:08 linux nvram-wakeup[14462]:


    #!/bin/bash
    # $Id: vdrshutdown,v 1.15 2003/08/06 12:55:44 bistr-o-math Exp $


    rm -f /video0/shutdown

    if [ "`ps aux | grep vdr2dvd.sh | grep -v 'grep vdr2dvd.sh'`" != "" ]; then
    touch /video0/shutdown; exit 1; fi


    if [ "`ps aux | grep burn.sh | grep -v 'grep burn.sh'`" != "" ]; then
    touch /video0/shutdown; exit 1; fi


    if [ "`ps aux | grep status.sh | grep -v 'grep status.sh'`" != "" ]; then
    touch /video0/shutdown; exit 1; fi


    # Checken, ob noad noch läuft
    pgrep noad >/dev/null 2>&1 && { echo "NoAd is still running"; exit; }


    NVRAMCMD=/usr/local/bin/nvram-wakeup
    SVDRPCMD=/usr/local/src/VDR/svdrpsend.pl
    #################
    ## if the script $CHECKSCRIPT thinks that we should shutdown,
    ## it must not pint anything on stdout.
    ## if it thinks that we should NOT shutdown,
    ## it must pint a one-line message on stdout.
    ##
    ## note that all parameters passed to vdrshutdown will also be passed to $CHECKSCRIPT
    ## so it might use them (e.g. $5 -eq 0 below)
    ##
    ## it might look like this:
    ## --------------------------
    ## #!/bin/bash
    ##
    ## pgrep 2divx && { echo Divx-Conversion is still running; exit; }
    ##
    ## test -a /some/file && { echo /some/file exists; exit; }
    ##
    ## USERCOUNT=`who --count | grep users= | cut -f 2 -d "="`;
    ## test $5 -eq 0 -a $USERCOUNT -gt 0 && { echo "$USERCOUNT users are logged in."; exit; }
    ##
    ## --------------------------
    ##
    ## now if $CHECKSCRIPT exists and is executable, the message will be passed through
    ## SVDRP to the tv screen.
    ##

    test -x $CHECKSCRIPT && {
    msg=`$CHECKSCRIPT $*`
    test "$msg" != "" && {
    $SVDRPCMD MESG $msg &
    exit 1
    }
    }

    #################

    # Add here needed options like --configfile=...
    # (read man nvram-wakeup and man nvram-wakeup.conf for more details)

    # die Uhrzeit fuer den naechsten timer wurde in $1 uebermittelt.
    timer=$1

    # wann ist das naechste mal 3 Uhr nachts?
    night=`date -d "17:43" +%s`
    [ $night -lt `date +%s` ] && night=$(( $night + 24*60*60 ))

    # was kommt zuerst: der naechste timer oder drei uhr nachts?
    [ $night -lt $timer ] && boottime=$night || boottime=$tmer


    $NVRAMCMD --syslog --settime $boottime


    case $PIPESTATUS in
    0) # all went ok - new date and time set
    shutdown -h now
    EXITSTATUS=0
    ;;
    1) # all went ok - new date and time set.
    #
    # *** but we need to reboot. ***
    #
    # for some boards this is needed after every change.
    #
    # for some other boards, we only need this after changing the
    # status flag, i.e. from enabled to disabled or the other way.


    # For plan A - (Plan A is not supported anymore---see README)
    #
    # For plan B - (don't forget to install the modified kernel image first)
    #

    lilo -R PowerOff

    shutdown -r now
    EXITSTATUS=0
    ;;
    2) # something went wrong
    # don't do anything - just exit with status 1
    EXITSTATUS=1
    ;;
    esac

    # exit with 0 if everything went ok.
    # exit with 1 if something went wrong.
    exit $EXITSTATUS

    Suse 9.0 mit kde vdr 1.26 1*nexus 3* nova baugleich 1*segatet 160g 1* samsung 160g 2*Festplattenschallschutzgehäuse

  • mach das mal so:

    (neu hinzugekommen sind die drei logger Zeilen)
    Damit werden die Werte der benutzten Variablen in der /var/log/messages geloggt.

  • [ $night -lt $timer ] && boottime=$night || boottime=$tmer

    habe den wert /tmer/ in (timer) geändert jetzt geht es


    wenn ich die zeile richtig interpretiere wird der wert des Timers mit dem Wert der night Time verglichen. Und wenn der vergleich wahr ist wird
    && boottime=$night ausgeführt und wenn er unwar ist wird boottime=$timer ausgeführt


    nun ist die Frage wie ich den Befehl erweitern könnte wenn ich eine Zweite Nighttime mit einfügen möchten. Denn Mein rechner soll zu zwei zeiten hochfahren einmal um werbung zu markieren und einmal um mit vdrconvert dvd`s zu Brennen

    Suse 9.0 mit kde vdr 1.26 1*nexus 3* nova baugleich 1*segatet 160g 1* samsung 160g 2*Festplattenschallschutzgehäuse

  • Quote

    Original von User510

    habe den wert /tmer/ in (timer) geändert jetzt geht es

    ???

    Quote

    wenn ich die zeile richtig interpretiere wird der wert des Timers mit dem Wert der night Time verglichen. Und wenn der vergleich wahr ist wird
    && boottime=$night ausgeführt und wenn er unwar ist wird boottime=$timer ausgeführt


    nun ist die Frage wie ich den Befehl erweitern könnte wenn ich eine Zweite Nighttime mit einfügen möchten. Denn Mein rechner soll zu zwei zeiten hochfahren einmal um werbung zu markieren und einmal um mit vdrconvert dvd`s zu Brennen

    nun, dann berechnest du in der gleichen Manier zwei Werte, die du meinetwegen
    night1 und night2 nennst.

    Der kleinste der drei Werte $night1, $night2 und $timer wird benutzt. Fertig.

  • Der Fall falls ein kein Timer vorhanden ist vehlte

    nun möchte ich die zweite bootzeit noch an die bedingung knübfen ob die datei

    file:/usr/local/src/vdrconvert/vdr2dvd

    Text enthält ich bräuche nur den Syntay um zu prüfen ob text enthalten ist den rest bekomm ich dann schon hin


    # die Uhrzeit fuer den naechsten timer wurde in $1 uebermittelt.
    timer=$1


    # Wie lang ist es bis zur nächsten Wunschbootzeit?
    # Wunschbootzeit ist die Zeit in Anführungszeichen
    night=`date -d "05:00" +%s`
    [ $night -lt `date +%s` ] && night=$(( $night + 24*60*60 ))


    # Wie lang ist es bis zur nächsten Wunschbootzeit_2 ?
    # Wunschbootzeit ist die Zeit in Anführungszeichen
    night2=`date -d "14:00" +%s`
    [ $night2 -lt `date +%s` ] && night2=$(( $night2 + 24*60*60 ))


    # Fue den Fall das kein Timer gesetzt wurde
    [ $timer -eq 0 ] && timer=$night2 || timer=$timer


    # was kommt zuerst: der naechste timer oder drei uhr nachts?
    [ $night -lt $timer ] && boottime=$night || boottime=$timer

    # Vergleich zwischen den Ergebniss des ersten Vergleichs und den wert von Night2
    [ $night2 -lt $boottime ] && boottime=$night2 || boottime=$boottime


    printf "$boottime" > /usr/local/bin/Anzeige


    $NVRAMCMD --syslog --settime $boottime

    Suse 9.0 mit kde vdr 1.26 1*nexus 3* nova baugleich 1*segatet 160g 1* samsung 160g 2*Festplattenschallschutzgehäuse

  • Quote

    Original von User510
    Der Fall falls ein kein Timer vorhanden ist vehlte

    nun möchte ich die zweite bootzeit noch an die bedingung knübfen ob die datei

    file:/usr/local/src/vdrconvert/vdr2dvd

    Text enthält ich bräuche nur den Syntax um zu prüfen ob text enthalten ist

    "man bash", suche nach "CONDITIONAL EXPRESSIONS" die wichtigste Stelle:

    Code
    -s file
                  True if file exists and has a size greater than zero.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!