Wakeup, um EPG-Daten zu holen / Autotimer beim Ausschalten aktualisieren

  • Hallo,


    nachdem ich mein neues board durch guess-helper und den fleissigen Helfern hieir aus dem Forum zu NVRAM überreden konnte, steht jetzt wieder die Feinarbeit in der vdrshutdown an. Um EPG-Daten und Autotimer zu aktualisiern habe ich folgende vdrshutdown mit script hier aus dem Forum im Einsatz.


    Bisher habe ich den eigentlichen EPG-Scan durch eine modifizierte runvdr ausgelöst, wo alle Transponder angesprungen wurden. So hatte ich zwar bei jedem VDR-Start ein aktuelles EPG, aber alle Transponder für DVB-C und DVB-T anzuspringen, dauert halt auch seine Zeit.
    Ich würde also jetzt gerne nur beim 3:00-Uhr Start einen EPG-Scan machen und nach Autotimer-Aktualisierung den VDR herunterfahren.
    Habe hier im Forum mal dieses script gefunden, welches ich aber aufgrund mangelnder script-Kenntnisse nicht in meine vdrshutdown intergriert bekomme X(


    In shutdown.at wird

    Zitat

    /usr/bin/svdrsend.pl "hitk power"


    und in epgscan.at wird

    Zitat

    /usr/bin/epgscan.sh


    aufgerufen.
    Wie muss ich dieses script modifizieren, damit es in meine vdrshutdown passt.
    Wenn ich diesen code statt dem code vor der zeile

    Zitat

    $NVRAMCMD --configfile=/etc/nvram-wakeup.conf --directisa --settime $boottime

    einfüge, klappt es jedenfalls nicht.
    Vielen Dank für eure Hilfe.

    Distri: easyVDR 0.4, VDR 1.4.4, Kernel 2.6.18.3
    Hardware: 2 x Hauppauge DVB-C Nexus, 2xCAM + 2xCI,
    MSI K8MM3-V (NVRAM), AMD 3200+ (Cool&Quiet), 1024 MB RAM, DVD-Brenner LG-4210B, Gehäuse SilverStone LaScala LC10
    Root-HD: 30 GB 2,5'' IDE Samsung HM030GC
    Video/Media-HD: 160 GB SATA Samsung SP1614C

    3 Mal editiert, zuletzt von arucar ()

  • Hi !


    super - alles auf einen Blick.
    Frage: Den Heckmeck mit dem EPGscan habt ihr doch nur gemacht,
    wenn nur eine Karte steckt. Sprich: Wenn man mehr als eine
    Karte hat, sollte der EPG scan doch überflüssig sein, oder ???


    Micha


  • Hallo Micha,


    soweit ich das verstanden habe, wird bei einem 2-Karten-System ein EPG-Scan für die Karte automatisch ausgelöst, die gerade nicht benutzt wird.
    Ich habe bei DVB-T allerdings bisher die Erfahrung gemacht, das wenn ich nicht durch eine modifizierte runvdr alle Transponder beim VDR-Start von DVB-T anspringe, ich teilweise überhaupt kein Bild hatte oder es sehr lange dauerte, bis ein Bild kam. Dieses führte dann schon mal zu Schwarzaufnahmen bei Timern ;(
    Somit war ich mit meiner vdrshutdown und runvdr auf der sicheren Seite.
    In der aktuellen MVDR-Version ist der DVB-T Empfang auch ohne modifizierte runvdr problemlos möglich.
    Wenn mir jemand 100%ig sagen kann, das ich bei einem 2-Kartensystem den ganzen Schnickschnack lassen kann, dann lasse ich den VDR einfach nachts starten, damit er 'unaufgefordert' die EPG-Daten und die Autotimer aktualisiert und das wars.
    Wenn ich das ganze jedoch richtig verstanden habe, muss ich zumindest einmal den Kanal wechseln und zwar auf einen Transponder von DVB-T, damit dann das EPG für DVB-C aktualisiert.

    Distri: easyVDR 0.4, VDR 1.4.4, Kernel 2.6.18.3
    Hardware: 2 x Hauppauge DVB-C Nexus, 2xCAM + 2xCI,
    MSI K8MM3-V (NVRAM), AMD 3200+ (Cool&Quiet), 1024 MB RAM, DVD-Brenner LG-4210B, Gehäuse SilverStone LaScala LC10
    Root-HD: 30 GB 2,5'' IDE Samsung HM030GC
    Video/Media-HD: 160 GB SATA Samsung SP1614C

  • ... habe jetzt das script wie folgt modifiziert:


    Der cron-Job epgscan1.at läuft auch reibungslos, aber der Aufruf von shutdown.at klappt nicht.
    Ein manueller Aufruf von /etc/shutdown.at führt immer zu einer 'Permission denied'-Meldung, obwohl ich an der Konsole mit root arbeite.
    Innerhalb der vdrshutdown scheint der Aufruf auch nicht zu klappen, da der VDR nicht herunterfährt.


    Erledigt:
    Im cronjob shutdown.at stand /usr/bin/svdrsend.pl "hitk power" statt /usr/bin/svdrpsend.pl "hitk power".

    Distri: easyVDR 0.4, VDR 1.4.4, Kernel 2.6.18.3
    Hardware: 2 x Hauppauge DVB-C Nexus, 2xCAM + 2xCI,
    MSI K8MM3-V (NVRAM), AMD 3200+ (Cool&Quiet), 1024 MB RAM, DVD-Brenner LG-4210B, Gehäuse SilverStone LaScala LC10
    Root-HD: 30 GB 2,5'' IDE Samsung HM030GC
    Video/Media-HD: 160 GB SATA Samsung SP1614C

    Einmal editiert, zuletzt von arucar ()

  • Beitrag verschoben...

    VDR1: QDI Advance 9, 733 MHz Pentium 3, 160 MB RAM, Nexus-S 2.1, 160 GB Samsung-HD, Noritake VFD, Gehäuse Hitachi VT-425 VHS-VCR :] :coolgr
    VDR2: QDI B1s, 300 MHz Pentium 2, Nexus-S 2.1, 60 GB HD, Noritake VFD, Gehäuse Hitachi VT-415 VHS-VCR
    Software: c't VDR 1.2.6-Elchi, Plugins: timeline, remote, lcdproc, tvtv

    3 Mal editiert, zuletzt von drjam ()

  • Entschuldigt, dass ich meinen ollen Thread wieder hochhole, ich habe aber einen Nachtrag zu machen. Wer nicht weiß, worum es geht, lese bitte meinen ersten Beitrag nochmal, die nachfolgenden Überlegungen basieren darauf.


    Und zwar ist das Checkscript, dass den Shutdown verzögert, wenn noch Noad oder ein anderes Programm läuft, ganz gut und schön. Es tritt aber ein nerviger Nebeneffekt auf.
    Angenommen, eines der Programme, die den Shutdown verzögern, läuft und man drückt den Power-Knopf, um den VDR auszuschalten. Dann erscheint die bekannte Meldung und der VDR läuft weiter.
    Inzwischen hat man es sich aber anders überlegt und will den VDR doch weiter laufen lassen. Man hat keine Möglichkeit, den geplanten Shutdown fünf Minuten später zu unterdrücken. Man muss die Meldung abwarten, was in meinem Fall schon öfter zum hektischen-nach-der-Fernbediedung-Greifen geführt hat.


    Um dieses Problem zu umgehen, habe ich beschlossen, die internen Möglichkeiten des VDR zu optimieren, einen Shutdownversuch zu wiederholen.


    Eine Änderung in der vdr.c genügte:


    Code
    LastActivity = time(NULL); // don't try again too soon


    wurde zu


    Code
    LastActivity = time(NULL) - Setup.MinUserInactivity * 60 + 3; // don't try again too soon


    Der bekannte Code aus der vdrshutdown wurde zu:


    Code
    CMD_LST="noad transcode vcdimager mencoder tosvcd lame tcmplex mv pes2aud_es"
    for x in $CMD_LST
    do
      if (pidof $x >/dev/null) ; then
        echo "$SVDRPCMD MESG Shutdown wegen $x verzögert" | at now >/dev/null 2>&1
        exit 1
      fi
    done


    Das führt jetzt dazu, dass der VDR beim Versuch, ihn herunterzufahren während eines der Programme läuft - wie nach einer Timer-Aufnahme - noch 5 Minuten lang die Shutdown-Meldung einblendet und dann einen weiteren Versuch unternimmt. Das hat gleich 2 Vorteile: Man wird daran erinnert, dass der VDR eigentlich im Begriff ist, herunterzufahren UND man kann es sich jederzeit anders überlegen.

  • Hallo,


    ich finde die Sache hochinteressant, da ich gerade Nachts noch ein paar andere Cronjobs laufen habe, die unbedingt den VDR vom Abschalten abhalten sollen.


    Zitat
    Code
    LastActivity = time(NULL) - Setup.MinUserInactivity * 60 + 3; // don't try again too soon


    Was genau machst Du hier? Eigentlich sorgst Du doch nur dafuer, dass er alle 3 Minuten probiert, runterzufahren, weil die MinUserInactivity dann im ist, oder? Ist das nicht gleichzusetzten mit einer MinUserInactivty von 3 Minuten?


    Zitat


    Der bekannte Code aus der vdrshutdown wurde zu:

    Code
    CMD_LST="noad transcode vcdimager mencoder tosvcd lame tcmplex mv pes2aud_es"
    for x in $CMD_LST
    do
      if (pidof $x >/dev/null) ; then
        echo "$SVDRPCMD MESG Shutdown wegen $x verzögert" | at now >/dev/null 2>&1
        exit 1
      fi
    done


    Hier blendest Du doch nur etwas ein? Warum hat man dann die moeglichkeit, permanent den Shutdown abzubrechen?


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

    Einmal editiert, zuletzt von hannsens ()

  • Hi Leute,


    da ich lange mit dem Problem gekämpft habe, will ich meine Lösung mit Euch teilen:


    Problem: (lin)vdr mit HW-Wakeup-modul und Wakeup-Scripts von Frank, plötzlich wurde der epg-scan nach dem DAILA-TIMER Start fallweise nicht mehr ausgeführt und dann plötzlich gar nicht mehr.


    Ursache: das epgscan.sh script prüft beim Zeitfenster nur DAILY-TIMER + EPG_STARTMIN, wenn nun aber der Start aus irgendwelchen Gründen knapp vor DAILY-TIMER erfolgt ist, wird kein EPG-Scan ausgeführt. Wenn Linux eine Abweichung zwischen der Hardwareuhr und der Kerneluhr feststellt, wird diese in /etc/adjtime gespeichert und beim Neustart zur Korrektur herangezogen. Bei mir war das dann so, daß der vdr zwar korrekt gestartet wurde, dann aber die Kerneluhr infolge /etc/adjtime zurückgestellt wurde und der Test in epgscan.sh fiel negativ aus => es war laut 'date' 7:14 und DAILY-TIMER sollte um 7:15 starten.


    Lösung:

    • regelmäßig Uhrzeit über's Internet neu stellen
    • regelmäßig Uhrzeit prüfen und ggf. manuell neu stellen
    • regelmäßig prüfen ob /etc/adjtime einen Wert beinhaltet und ggf. mit '> /etc/adjtime' zurücksetzen


    Bei mir trat das Problem auf obwohl ich die Option "Uhrzeit aus Transponder stellen" aktiviert habe => nutzt halt nichts wenn /etc/adjtime zuschlägt :D


    So ich hoffe, daß dies auch für andere eine Lösungsidee bietet.


    Peter

    vdr-1: Gentoo-2008.0 mit vdr-1.6.0 auf ASUS A7N8X-VM400 mit Athlon mobile XP2500+ und 2x TT-S2300 mit hw-wakeup mit Software V1.5
    vdr-2: yavdr 64-0.5.0 mit vdr-1.7.27-5 + xineliboutput 1.0.7 auf ASUS M4A88TD-M/USB3 mit Athlon II-X2-20e + Zotac GeForce G210 und Cine S2 Dual Tuner V6


    • Hab Kanotix-vdr 1.2 auf HDD installiert,TwinhanBillig, funzt super :bpl
    • Kiste soll 24/7 laufen :strike2
    • computer re-booted nachts oefter :(


    Frage:

    • muss der Computer re-booten? (meine downloads werden abgebrochen) :weinen
    • was schlagt ihr vor? :lehrer2
  • Danke Mirko!


    rebooted alle 130 minuten oder so


    executing '/var/lib/vdr/vdrshutdown 0 -112981
    6042 0 "" 0'


    courierd meckert auch viel im syslog.



    Oct 20 09:06:03 80g automount[9998]: failed to mount /mnt/auto/floppy
    Oct 20 09:17:01 80g /USR/SBIN/CRON[10665]: (root) CMD ( run-parts --report
    /etc/cron.hourly)
    Oct 20 09:22:29 80g vdr[3239]: confirm: Taste drücken um Shutdown abzubreche
    n
    Oct 20 09:22:29 80g vdr[10993]: Text2Skin: message display update thread sta
    rted (pid=10993, tid=147465)
    Oct 20 09:27:08 80g courierd: SHUTDOWN: respawnlo limit reached, system inac
    tive.
    Oct 20 09:27:08 80g courierd: Loading STATIC transport module libraries.
    Oct 20 09:27:08 80g courierd: Courier 0.47 Copyright 1999-2004 Double Precis
    ion, Inc.
    Oct 20 09:27:08 80g courierd: Installing [0/0]
    Oct 20 09:27:08 80g courierd: Installing uucp
    Oct 20 09:27:08 80g courierd: Installed: module.uucp - Courier 0.47 Copyrigh
    t 1999-2004 Double Precision, Inc.
    Oct 20 09:27:08 80g courierd: Installing local
    Oct 20 09:27:08 80g courierd: Installed: module.local - Courier 0.47 Copyrig
    ht 1999-2004 Double Precision, Inc.
    Oct 20 09:27:08 80g courierd: Installing fax
    Oct 20 09:27:08 80g courierd: Installed: module.fax - Courier 0.47 Copyright
    1999-2004 Double Precision, Inc.
    Oct 20 09:27:08 80g courierd: Installing esmtp
    Oct 20 09:27:08 80g courierd: Installed: module.esmtp - Courier 0.47 Copyrig
    ht 1999-2004 Double Precision, Inc.
    Oct 20 09:27:08 80g courierd: Installing dsn
    Oct 20 09:27:08 80g courierd: Installed: module.dsn - Courier 0.47 Copyright
    1999-2004 Double Precision, Inc.
    Oct 20 09:27:08 80g courierd: Initializing uucp
    Oct 20 09:27:08 80g courierd: Initializing local
    Oct 20 09:27:08 80g courierd: Initializing fax
    Oct 20 09:27:08 80g courierd: Initializing esmtp
    Oct 20 09:27:08 80g courierd: Initializing dsn
    Oct 20 09:27:08 80g courierd: Started ./courieruucp, pid=11274, maxdels=4, m
    axhost=4, maxrcpt=16
    Oct 20 09:27:08 80g courierd: Started ./courierlocal, pid=11275, maxdels=10,
    maxhost=4, maxrcpt=1
    Oct 20 09:27:08 80g courierd: Started ./courierfax, pid=11276, maxdels=1, ma
    xhost=1, maxrcpt=1
    Oct 20 09:27:08 80g courierd: Started ./courieresmtp, pid=11277, maxdels=40,
    maxhost=4, maxrcpt=100
    Oct 20 09:27:08 80g courierd: Started ./courierdsn, pid=11278, maxdels=4, ma
    xhost=1, maxrcpt=1
    Oct 20 09:27:08 80g courierd: queuelo=200, queuehi=400
    Oct 20 09:27:08 80g courierd: Purging /var/lib/courier/msgq
    Oct 20 09:27:08 80g courierd: Purging /var/lib/courier/msgs
    Oct 20 09:27:08 80g courierd: Waiting. shutdown time=Thu Oct 20 10:27:08 20
    05, wakeup time=Thu Oct 20 10:27:08 2005, queuedelivering=0, inprogress=0
    Oct 20 09:27:30 80g vdr[10993]: Text2Skin: message display update thread end
    ed (pid=10993, tid=147465)
    Oct 20 09:27:30 80g vdr[3239]: confirmed
    Oct 20 09:27:30 80g vdr[3239]: executing '/var/lib/vdr/vdrshutdown 0 -112979
    3250 0 "" 0'
    Oct 20 09:27:31 80g init: Switching to runlevel: 6



    vielleicht sagt euch das was....


  • Moin,
    Aber klar doch - VDR faehrt per default immer nach 2 Stunden runter, sofern Du keine Taste drueckst :) Daher solltest Du in den Einstellungen unter Sonstiges diesen Timeout auf 0 setzen ( min user activity ).

  • hallo, ich hab das epg search skript mal ausprobiert, leider bekomme ich NUR TEILWEISE fehlermeldungen: mein scan sieht so aus:

    ok, beim login am ende, weiß ich dass ich nur die falschen daten eingegeben hab, aber wie bekomme ich die fehlermeldungen zwischendrinn weg? eineige sender scheinen ja zu funktionieren, andere nicht. meine channels.conf sieht so aus:




    gruß jturtle

    Aktueller VDR: (Eigentlich nur zum Aufnehmen von den wenigen DVB-T Sendern gedacht - angeschaut wird später übers Netzwerk von nem Win.PC aus)
    Celeron500MHZ, 128mb Ram, Terratec Synergy 1200 dvb-t, 80gb hdd, DXR3,
    Mahlzeit ISO 3.2 (gemäß der Anleitung von VDR-Wiki installiert)
    VDR-Admin-AM 3.5.0

  • Sorry, dass ich erst jetzt (nach 2 Monaten...) antworte.


    hannsens


    Zum ersten Codeschnipsel: Es sind 3 Sekunden! Das sorgt einfach dafür, dass der VDR nach einem vergeblichen (gleich mehr dazu) Shutdownversuch nur noch 3 Sekunden wartet und dann automatisch (als sei die MinUserInactivity abgelaufen) die Shutdownmeldung wieder einblendet (die bleibt immer 5 Minuten lang stehen). Dann versucht er wieder herunterzufahren und im schlimmsten Fall geht das Spiel von vorne los.
    Mit einer MinUserInactivity von 3 Sekunden geht das natürlich nicht, da dein VDR dann ständig runterfahren würde. Dieser 3-Sekunden-Wert wird wie gesagt NUR gesetzt, wenn ein Shutdownvorgang fehlschlug. Und genau DAS wird vom Script gesteuert:


    Zitat

    Was genau machst Du hier?
    Hier blendest Du doch nur etwas ein? Warum hat man dann die moeglichkeit, permanent den Shutdown abzubrechen?


    Da steht "exit 1" drin, was das Script abbricht und dem VDR signalisiert, dass etwas schiefgegangen ist. Und genau das ist eigentlich schon das ganze Geheimnis.


    JTurtle


    Ändere mal bitte die Zeile


    Code
    for i in `grep '^[A-Z]' /etc/vdr/channels.conf | awk -F ':' '{print $2$3$4":"$1}' | sort -nu | awk -F ':' '{print $2}'`; do


    in


    Code
    for i in `grep '^[A-Z]' /etc/vdr/channels.conf | awk -F ':' '{print $2$3$4":"$1}' | sort -nu | awk -F ':' '{print $2}' | awk -F ';' '{print $1}`; do


    Das haut zusätzlich noch alles weg, was im Sendernamen nach den Semikola steht, die VDR ja seit geraumer Zeit einfügt.

  • hmmm, also wenn ich die zeile ersetze, dann kommt folgendes output:


    sieht irgendwie nicht so richtig aus. da scheint mir die version, die ich vorher hatte sogar noch etwas besser, oder?
    meine channel.conf hab ich ja oben schon gepostet. verwunderlich finde ich ja, dass nun andere sender funktionieren...?!



    gruß
    jturtle

    Aktueller VDR: (Eigentlich nur zum Aufnehmen von den wenigen DVB-T Sendern gedacht - angeschaut wird später übers Netzwerk von nem Win.PC aus)
    Celeron500MHZ, 128mb Ram, Terratec Synergy 1200 dvb-t, 80gb hdd, DXR3,
    Mahlzeit ISO 3.2 (gemäß der Anleitung von VDR-Wiki installiert)
    VDR-Admin-AM 3.5.0

  • aha, sieht schon besser aus... aber 2 sachen sind da noch:


    RTL Television klappt anscheinend noch nicht und am ende gibts da auch noch ne fehler meldung. frage: er sollte doch jeden transponder einmal scannen, oder? warum scannt er dann 8 programme, wo ich doch nur 6 transponder habe?

    Aktueller VDR: (Eigentlich nur zum Aufnehmen von den wenigen DVB-T Sendern gedacht - angeschaut wird später übers Netzwerk von nem Win.PC aus)
    Celeron500MHZ, 128mb Ram, Terratec Synergy 1200 dvb-t, 80gb hdd, DXR3,
    Mahlzeit ISO 3.2 (gemäß der Anleitung von VDR-Wiki installiert)
    VDR-Admin-AM 3.5.0

  • Dann war die Zeile noch nicht lang genug. Ne, im Ernst. Das Komma, welches jetzt noch in der RTL-Zeile steht, muss weg.


    Code
    for i in `grep '^[A-Z]' /etc/vdr/channels.conf | awk -F ':' '{print $2$3$4":"$1}' | sort -nu | awk -F ':' '{print $2}' | awk -F ';' '{print $1}' | awk -F ',' '{print $1}'`; do


    sollte die Lösung lauten.


    PS: Dass er 8 Transponder "scannt" liegt nur daran, dass das Script am Anfang 1x runter und 1x hoch schaltet, um festzustellen, welcher Kanal der aktuelle ist. Dieser wird am Ende wiederhergestellt.

  • jap, perfekt, jetzt hat er alle erkannt.


    Code
    221 linvdr closing connection
    --21:35:39--  [URL]http://127.0.0.1/vdradmin.pl?aktion=force_update[/URL]
               => `/dev/null'
    Connecting to 127.0.0.1:80... failed: Connection refused.


    was mach ich mit der fehlermelgund am ende. oder ist die nicht wichtig?

    Aktueller VDR: (Eigentlich nur zum Aufnehmen von den wenigen DVB-T Sendern gedacht - angeschaut wird später übers Netzwerk von nem Win.PC aus)
    Celeron500MHZ, 128mb Ram, Terratec Synergy 1200 dvb-t, 80gb hdd, DXR3,
    Mahlzeit ISO 3.2 (gemäß der Anleitung von VDR-Wiki installiert)
    VDR-Admin-AM 3.5.0

Jetzt mitmachen!

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