[SOLVED] neue Version: Script: VDR bei autom. Start auf Sender "zappen" lassen,der aufgenommen wird

  • Hallöchen


    EDIT---------
    aktuelle Version des Scriptes
    EDIT---------


    Mir fiel grade auf (nachdem ich meinen VDR bei einer Aufnahme beobachtet hatte) daß der aktuell angezeigte Kanal der ist, der als letztes vor dem Shutdown eingeschaltet war.


    Ich weiß, das ist ein Feature, kein Bug ;)


    Aber es wäre doch nett, wenn der VDR bei (zumindest beim alleine hochfahren) auf den Kanal schalten würde, der auch aufgezeichnet wird.


    So würde unter Anderem (was mir wichtig ist :D) auf dem Display angezeigt, welcher Film aufgenommen wird...


    Ob sowas wohl möglich ist?


    Comments are Welcome


    MfG


    Crue

  • und was soll bei mehreren aufnahmen passieren?
    ich bin froh, dass es so ist, weil ich dann wenn ich die aufnahme dann später (time shift) starte nicht zb. ergebnis bei einem fussballspiel sehe!
    lg

    **************************************************************
    c't VDR: 1.4.5-1ctvdr1 / Kernel : 2.6.12-rc4-ct-2
    TT1.6, TT Budget, CI: Alphacrypt
    Intel PIV 1Ghz, 1GB Ram / Harman Kardon AVR 635
    HDD 160 GB Samsung + 2x 250 Hitachii
    Promise Ultra133 TX2 + 250 GB Samsung
    Wien - Österreich


    c't VDR: 1.4.5-1ctvdr1
    Kernel : 2.6.12-rc4-ct-2
    **************************************************************

  • Hiho


    Zitat

    und was soll bei mehreren aufnahmen passieren?


    Dann würde auch die erste genügen...


    Zitat

    ich bin froh, dass es so ist, weil ich dann wenn ich die aufnahme dann später (time shift) starte nicht zb. ergebnis bei einem fussballspiel sehe!


    ich meinte ja "zumindest beim alleine hochfahren"...
    Der VDR kann doch erkennen, ob er gestartet wurde, oder er (durch einen Timer) alleine gestartet ist.


    MfG


    Crue

  • Hallöchen


    Andersrum gefragt:


    Kann ich mit einem ShellScript abfragen, ob VDR durch einen Timer(automatisch) oder manuell gestartet wurde?


    Etwa so...


    Zitat

    Ist VDR von alleine gestartet
    -JA, dann "grep" aus timers.conf den ersten "Timer-Kanal", den dann per SVDRP "anzappen"
    -NEIN, dann exit

    Das dann einmal nach dem Start von VDR aus der /etc/init.d starten lassen...


    So in etwa hab´ich mir das gedacht.


    Comments are Welcome


    MfG


    Crue

  • Folgendes sollte funktionieren:
    In /proc/acpi/alarm steht die letzte programmierte Aufweckzeit.
    Wenn
    Aufweckzeit < Systemzeit < (Aufweckzeit + Hochfahrzeit + Reserve) --> dann automatischer Start
    Schlägt allerdings fehl, wenn das booten durch ein fsck verzögert wird.


    Heiko

    Athlon 1200+, 512 MB, 1,2 TB, Nexus-S 2.3 + 2x Skystar2
    easyvdr 0.6.10
    Quadro Atmolight

  • Wenn ich mich recht erinnere berechnet VDR einen autmatischen Start mit
    "if (starttime_next_timer) > 0 AND (starttime_next_timer) < 300 then auto" ;)


    In BASH:


    Code
    GET=$(svdrpsend.pl next rel | awk '/^250/ {printf("%i %i",$2,$3);}')
    read ID NEXT < <(echo "$GET")
    if [ $NEXT -gt 0 -a $NEXT -lt 300 ]; then
       CHAN=$(svdrpsend.pl lstt $ID | awk -F: '/^250/ {printf("%i",$2);}')
       svdrpsend.pl chan $CHAN
    fi

    VDR1: Gigabyte GA-M720-US3 (nVidia Corporation MCP78S [GeForce 8200]), Athlon II X2 240, 2GB RAM, Intel 82574L Gigabit, Debian Squeeze, Kernel 2.6.38.3 mit linux-media.tar.bz2 vom 20.04. 10:04, dvbhddevice fb6b1beedb72, VDR-1.7.22 (extension-Patch, 15 Plugins), epgsearch, extrecmenu, ...
    VDR2: Debian Etch, 2.6.21.3, K6-2 400, 192MB, NFS-Root, 466GiB über NFS, 1xNexus 2.1, 1xNova S, VDR-1.4.7
    Server: Debian Squeeze, 2.6.35.7, AMD X2 240e, 4GB, System: Raid1 2x500GB, Aufnahmen: Raid5 4TB + 1x 500GB, 1000MBit LAN
    Episodenlisten für epgsearch, VDRSeriesTimer

  • Hiho


    Also vejoun,Respekt, das sieht mal wieder sehr gut aus...


    Es will leider noch nicht so recht laufen...

    Zitat

    vdrstart.sh: line 2: syntax error near unexpected token `<'
    vdrstart.sh: line 2: `read ID NEXT < <(echo "$GET")'


    #EDIT
    also die Zeile 1 und 3-Ende verstehe ich ja, aber was willlst du in Zeile 2 erreichen? Warum sagst du nicht (in Zeile 3) if test $GET... ?(
    #EDIT2:
    hab´s etwas umgebaut, ich verstehe das so einfacher, deins ist eleganter,aber so läufts auch ...

    Code
    SVDRPSEND=/usr/lib/vdr/svdrpsend.pl
    NEXT=$($SVDRPSEND next rel | awk '/^250/ {printf("%i",$3);}')
    ID=$($SVDRPSEND next rel | awk '/^250/ {printf("%i",$2);}')
    
    
    if [ $NEXT -gt 0 -a $NEXT -lt 300 ]; then
       CHAN=$($SVDRPSEND lstt $ID | awk -F: '/^250/ {printf("%i",$2);}')
       $SVDRPSEND chan $CHAN
    fi


    Thannxx a lot


    MfG


    Crue


    #

  • Hallo,


    welche Shell verwendest Du? Vermutlich /bin/sh? Wenn Bash installiert ist, Du aber /bin/sh
    verwendest, schaltet Bash in ein Art Kompatibiläts-Modus.
    Dieser Modus kennt die Syntax "read ID NEXT < <(echo "$GET")" nicht. Mit /bin/bash sollte es gehen. Ich wollte damit nur einen svdrpsend.pl-Aufruf sparen ;)


    Alternativ geht auch

    Code
    GET=$(svdrpsend.pl next rel | awk '/^250/ {printf("%i %i",$2,$3);}')
    ID=$(echo "$GET" | cut -d" " -f1)
    NEXT=$(echo "$GET" | cut -d" " -f2)
    if [ $NEXT -gt 0 -a $NEXT -lt 300 ]; then
       CHAN=$(svdrpsend.pl lstt $ID | awk -F: '/^250/ {printf("%i",$2);}')
       svdrpsend.pl chan $CHAN
    fi

    VDR1: Gigabyte GA-M720-US3 (nVidia Corporation MCP78S [GeForce 8200]), Athlon II X2 240, 2GB RAM, Intel 82574L Gigabit, Debian Squeeze, Kernel 2.6.38.3 mit linux-media.tar.bz2 vom 20.04. 10:04, dvbhddevice fb6b1beedb72, VDR-1.7.22 (extension-Patch, 15 Plugins), epgsearch, extrecmenu, ...
    VDR2: Debian Etch, 2.6.21.3, K6-2 400, 192MB, NFS-Root, 466GiB über NFS, 1xNexus 2.1, 1xNova S, VDR-1.4.7
    Server: Debian Squeeze, 2.6.35.7, AMD X2 240e, 4GB, System: Raid1 2x500GB, Aufnahmen: Raid5 4TB + 1x 500GB, 1000MBit LAN
    Episodenlisten für epgsearch, VDRSeriesTimer

  • Hallöchen


    ..Mal wieder mein Fehler ;)


    Zitat

    welche Shell verwendest Du? Vermutlich /bin/sh?


    Hehe, ja, zum testen hab ich "sh -x script" ausgeführt...


    ...und dann noch "#!/bin/bash" im Script vergessen... Dann weiß er ja nicht, daß er die bash nehmen soll *logisch


    Zitat

    Mit /bin/bash sollte es gehen. Ich wollte damit nur einen svdrpsend.pl-Aufruf sparen

    Wie schon gesagt, sehr elegant
    :respekt Ich werde das noch anpassen...


    Mfg + Thanxx


    Crue

  • Hallöchen


    Läuft alles wie gewünscht, sehr schön :tup


    Vielen Dank nochmal, vejoun



    Hier nochmal der Vollständigkeit halber:


    /etc/init.d/VdrAutoTestAndSwitch.sh


    Dann noch ein "ln -s /etc/init.d/VdrAutoTestAndSwitch.sh /etc/rc2.d/S22VdrAutoTest"(Nach VDR)


    Das sleep 30 am Anfang habe ich gemacht, damit VDR auf jeden Fall schon läuft... ich weiß, billige Lösung... egal, läuft :D


    Danke nochmal


    MfG


    Crue

  • Ähm...


    ...andere Frage:


    Wenn ich (durch das Script) eine Taste drücke,setze ich damit nicht die Funktion außer Kraft, daß der VDR nach der Aufnahme (ohne Benutzeraktivität) gleich wieder runter fährt? Bei einer "echten" Taste ist das so ...


    Dann würde der VDR ja erst bei der MinBenutzerInaktivität wieder runter fahren :(


    Wer weiß Rat?


    MfG


    Crue

  • So wird es dann auch sein. Das gleiche passiert, wenn ich über VDR-Admin auf einen anderen Sender springe. Das zählt dann auch zur Benutzeraktivität und VDR-Admin benutzt soweit ich das weiß auch SVDRP.



    Gruß


    tec

  • ...und wenn man auf den richtigen Sender springt, bevor der VDR runterfährt? Bei mir ist nach dem Hochfahren jedoch nicht immer der Sender da, der als letzter vor dem Runterfahren eingestell war.



    Gruß


    tec

  • Hallöchen


    Zitat

    ...und wenn man auf den richtigen Sender springt, bevor der VDR runterfährt?

    Mensch, gute Idee; und so einfach ;) wahrscheinlich zu einfach...


    Zitat

    also quasi als shutdown-script ausführen (mal schauen, wo das am Besten hinpast...)


    if timer vorhanden then grep timer-channel
    svdrpsend switch $timer-channel


    als script...

    Bash
    #!/bin/bash
    SVDRPSEND=/usr/lib/vdr/svdrpsend.pl
    
    
    GET=$($SVDRPSEND next rel | awk '/^250/ {printf("%i %i",$2,$3);}')
    ID=$(echo "$GET" | cut -d" " -f1)
    CHAN=$($SVDRPSEND lstt $ID | awk -F: '/^250/ {printf("%i",$2);}')
       $SVDRPSEND chan $CHAN
    fi


    Ich weiß noch nicht, was passiert, wenn keine Timer vorhanden sind, mal schauen...


    Erstmal eine geeignete Stelle für den Einbau suchen...


    MfG


    Crue

  • die Lösung sollte klappen aber trotzdem noch eine kleine Idee.


    Du könntest nach dem Senderwechsel die Power Off Taste drücken lassen.
    Damit wird der VDR dann wieder nach der Aufnahme runtergefahren.


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

  • Hallo Crue,


    ich hatte grad langeweile. ;) Hier eine Lösung fürs shutdown-Script *nachdem* vdr gestoppt wurde. Es liest direkt die .conf-Dateien und ändert den Kanal dann in setup.conf


    Viel Spass :D (Script ist nicht vollständig getestet)

    VDR1: Gigabyte GA-M720-US3 (nVidia Corporation MCP78S [GeForce 8200]), Athlon II X2 240, 2GB RAM, Intel 82574L Gigabit, Debian Squeeze, Kernel 2.6.38.3 mit linux-media.tar.bz2 vom 20.04. 10:04, dvbhddevice fb6b1beedb72, VDR-1.7.22 (extension-Patch, 15 Plugins), epgsearch, extrecmenu, ...
    VDR2: Debian Etch, 2.6.21.3, K6-2 400, 192MB, NFS-Root, 466GiB über NFS, 1xNexus 2.1, 1xNova S, VDR-1.4.7
    Server: Debian Squeeze, 2.6.35.7, AMD X2 240e, 4GB, System: Raid1 2x500GB, Aufnahmen: Raid5 4TB + 1x 500GB, 1000MBit LAN
    Episodenlisten für epgsearch, VDRSeriesTimer

  • Hallöchen vejoun


    Mensch, du bist ja ein Schatz :) zauberst du da einfach so ein Script hin...Meinen tiefen Respekt


    ...sogar mit Unterscheidung DVB-S/T/C...Wahnsinn...


    Es läuft sehr gut.


    • Dadurch, daß die Änderung(setup.conf) erst nach VDR-Stop kommt, wird der "automatische ShutDown nach Aufnahme" nicht mehr kompromittiert
    • Beim Start schaltet der VDR selber auf den Kanal, das vermeidet Verzögerungen(wie mit SVDRP).
    • Läuft alles sehr zügig, keine Start/Stop-Verlängerungen mehr wie vorher.


    Die einzige Schwachstelle, die ich bis jetzt gefunden habe: Wenn kein Timer vorhanden ist, schaltet der VDR(Bzw. das Script) immer auf Kanal 1
    Da könnte ja noch sowas hin wie :
    Wenn keine Timer, dann keine Änderung an der setup.conf
    Dann würde auch tatsächlich beim nächsten Start der letzte Sender angezeigt...


    *PSCHT, Crue, übertreibe nicht !! ?( "Hast ja Recht, kleiner Mann im Ohr ..."


    Ist so schon Supertoll


    ...Ich denke, damit kann man leben, zumal: Wer hatt keine Timer :D



    Vielen Dank nochmal, vejoun


    MfG


    Crue

  • ...halt


    Im Moment wird das Script ausgeführt, Nachdem VDR beendet wurde.
    --> Sollte es nicht besser vor dem (nächsten) Start des VDR ausgeführt werden?


    Damit es den "if [ $NEXT -gt 0 -a $NEXT -lt 300 ]" Test machen kann, von wegen automatischer Start Ja/Nein ???


    Sollte DAS das nicht eigentlich erledigen?

    Zitat

    if [ $(( $STAMP - $NOW )) -gt 300 ]; then
    break


    Heißt soviel wie: wenn Differenz Starttime - Jetzt größer 300 dann stop , oder? Das muss ich mir noch genauer ansehen...



    Jetzt schaltet VDR immer auf den Kanal mit der nächsten Aufnahme...egal ob automatischer Start oder nicht.


    ...mal weiterschauen...


    MfG


    Crue

  • Hallo,


    Zitat

    Original von Crue
    ...sogar mit Unterscheidung DVB-S/T/C...Wahnsinn...

    Der awk-Teil ist nur indirekt von mir. Ich habe printchannels.pl in ein awk-Script umgeschrieben. printchannels.pl liegt tvmovie2vdr bei.


    Zitat

    Wenn keine Timer, dann keine Änderung an der setup.conf
    Dann würde auch tatsächlich beim nächsten Start der letzte Sender angezeigt...


    *PSCHT, Crue, übertreibe nicht !! ?( "Hast ja Recht, kleiner Mann im Ohr ..."


    Ersetzt die sed-Zeile durch

    Code
    if [ -n "$NUM" ]; then 
      sed -i "s/^CurrentChannel.*$/CurrentChannel = $NUM/" "$CONFDIR"/setup.conf
    fi


    Zitat

    Vielen Dank nochmal, vejoun

    Bitte. :)

    VDR1: Gigabyte GA-M720-US3 (nVidia Corporation MCP78S [GeForce 8200]), Athlon II X2 240, 2GB RAM, Intel 82574L Gigabit, Debian Squeeze, Kernel 2.6.38.3 mit linux-media.tar.bz2 vom 20.04. 10:04, dvbhddevice fb6b1beedb72, VDR-1.7.22 (extension-Patch, 15 Plugins), epgsearch, extrecmenu, ...
    VDR2: Debian Etch, 2.6.21.3, K6-2 400, 192MB, NFS-Root, 466GiB über NFS, 1xNexus 2.1, 1xNova S, VDR-1.4.7
    Server: Debian Squeeze, 2.6.35.7, AMD X2 240e, 4GB, System: Raid1 2x500GB, Aufnahmen: Raid5 4TB + 1x 500GB, 1000MBit LAN
    Episodenlisten für epgsearch, VDRSeriesTimer

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!