Script epggesteuert ausführen

  • Ich habe schon eine lange Weile nichts mehr an meinem VDR verändert und ich schau ehrlich gesagt auch zu 90% via AppleTV die Streams von Prime, 7TV und den Öffi-Mediatheken. Der VDR nimmt dennoch alle meine Serien auf, quasi als Backup, falls ich nicht rechtzeitig den Stream bei 7TV oder den ÖR anschauen kann. Jetzt kam mir eine Idee, die recht ungewöhnlich ist und frage mich, ob man das irgendwie bewerkstelligen kann.


    Ich würde gerne über das epgsearch-plugin eine Suche anlegen, die einen Timer anlegt, entsprechend x Minuten vor dem Beginn der Sendung. Zum Startzeitpunkt soll dann aber gar keine Aufzeichnung erfolgen sondern nur ein Script ausgeführt werden. Dieses Script ruft dann einen http-Link bei IFTTT auf und lässt meine Lichter blinken, als Hinweis, dass jetzt eine Sendung kommt, die mich vielleicht interessiert. Je nachdem ob ich zuhause bin und Zeit und Lust habe, schau ich mir das dann live an oder eben auch nicht. Aufzeichnen will ich das eher nicht, schau ich mir hinterher eh nicht an. Zum Beispiel Nachrichten, Magazine.


    Zumindest meine veraltete Version von epgsearch kann das out of the box nicht. Ich frage mich daher, ob man das beispielsweise über "recording-hooks" lösen kann. Sprich bekommt das Script genug Informationen um den Suchtimer des Plugins oder auch die Sendung zu identifizieren um nur bei den gewünschten Sendungen das Licht flackern zu lassen? Und dann müsste das Script natürlich auch irgendwie verhindern können, dass die Aufzeichnung tatsächlich startet bzw. müsste diese zuverlässig abbrechen ohne dass sie gleich erneut startet.


    Oder habt ihr andere Ideen, wie das klappen könnte?

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Ich hab mir jetzt doch tatsächlich über die epgsearchuservars.conf ein System gebastelt um mir die erforderlichen Daten quasi über den Pfadnamen in die timers.conf zu bringen. Über einen Recordings-Hook (before) extrahiere ich die Daten wieder aus dem Pfad. Unter anderem steht hier die Event-ID von epgsearch drin. Allerdings verzweifle ich gerade daran die Recording ID von vdr auszlesen.


    Auf der Kommandozeile klappt das wunderbar:

    Code
    1. svdrpsend LSTT | grep -e "<eventid>1234</eventid>" | sed 's!250-!!; s![ ].*!!'

    Sobald ich das aber in ein recid=`...` verpacke und die 1234 in $eventid ändere, die vorher korrekt aus dem Pfad geholt wurde, kommt kein Ergebnis zurück. Die ID brauche ich um den gerade gestarteten Timer mit "svdrpsend MODT $recid off" direkt wieder anzuhalten.


    Was mache ich falsch?


    Edit 1:

    Es liegt offensichtlich an dem Perl-Scrip "svdrpsend", denn selbst wenn ich nur den ersten Teil eingebe erfolgt keine Rückmeldung irgendeines Wertes. Selbst wenn ich die Pfade zu Script und perl mitangebe. Auffällig ist noch, dass die Logger-Ausgabe zwischen EventID und TimerID für etwa 10 Sekunden pausiert, wenn wenn das Script vom VDR bei Beginn einer Aufnahme gestartet wird. Wenn ich das Script mit den gleichen Parametern auf der Konsole starte kommt die Ausgabe sofort und mit Inhalt.

    Code
    1. logger -t donotrecord EventID $eventid
    2. recid=`svdrpsend LSTT` #oder
    3. recid=`/usr/bin/svdrpsend LSTT` #oder
    4. recid=`/usr/bin/perl -w /usr/bin/svdrpsend LSTT`
    5. logger -t donotrecord TimerID $recid

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

    The post was edited 3 times, last by HolgerAusB ().

  • Wäre es nicht einfacher die Umschalttimer Funktion mit Benachrichtigung von epgsearch zu benutzen?


    - Aktion:

    Standard ist 'Aufnehmen', also das Erzeugen eines Timers für das Suchergebnis. Man kann aber auch wählen, dass nur eine Ankündigung der Sendung per OSD vorgenommen werden soll, sobald diese gefunden wird. Eine weitere Möglichkeit ist 'nur umschalten'. Dadurch wird automatisch eine Minute vor Beginn der Sendung auf deren Kanal gewechselt. Ebenso kann mit 'Ankündigen und Umschalten' die Sendung vor ihrem Beginn angekündigt werden und mit 'Ok' zum entsprechenden Kanal gewechselt werden.

  • OK, so wie es aussieht kann der vdr keine Skripte ausführen, die per svdrpsend Nachrichten senden? Hat vielleicht auch was mir der Art der Antwort zu tun... Ich hab es jetzt gelöst indem ich mein Skript nach außerhalb der recordings-hook ausgelagert habe und stattdessen im before Teil meines Hooks das eigentliche Script via at now starte:


    Shell-Script
    1. echo /bin/bash /pfad-zu/specialtimer.sh $2 | at now

    Jetzt macht er endlich was er soll. Die Lichter blinken und der Timer wird gestoppt.


    (Ich hasse diese Forum Software. Eigentlich dachte ich, ich hätte deises Update schon von 2 Tagen abgesendet. Jetzt finde ich es immer noch als Entwurf vor)

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Wäre es nicht einfacher die Umschalttimer Funktion mit Benachrichtigung von epgsearch zu benutzen?

    Wo würde ich bei Umschalttimern/Benachrichtigung ansetzen damit epgsearch mir ein externes Script startet? Weil umschalten oder per OSD benachrichtigen reicht mir nicht, da der Fernseher zu diesem Zeitpunkt aus ist bzw. das AppleTV als Quelle des Fernseher eingeschaltet ist.

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.