Jump to content

Commandline-Interface (Windows,Linux/Wine) für den RS


HacMat

Recommended Posts

aktuelle Version des RS Requesters: https://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-für-den-rs/?do=findComment&comment=488220

aktuelle Version des Clickfinder-Add-Ons: https://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-für-den-rs/?do=findComment&comment=488220

 

Hallo,

 

ich habe für den Recording-Service ein neues Commandline-Interface entwickelt.

Eigentlich hatte ich es ursprünglich nur für den Eigenbedarf programmiert; es hat aber mittlerweile einen so großen Funktionsumfang, dass es eine Alternative zum TV-Genial Plug-in 1.2.3 (dvbv_tvg.exe) ist, und ich mich deshalb entschlossen habe, mein Programm Interessenten zugänglich zu machen. Nur bevor ich mir die Mühe mache das Programm zu dokumentieren, möchte ich erst mal abklären, ob es überhaupt potentielle Nutzer gibt.

 

Die Unterschiede zwischen meiner Eigenentwicklung und dem TV-Genial Plugin sind folgende:

 

Einschränkung:

 

Mein Programm, funktioniert nur mit dem DVBViewer Media Server bzw. Recording Service. Der DVBViewer selbst wird nicht unterstützt.

 

Ich habe es in erster Linie dafür entwickelt, den Recording-Service in den TV-Browser perfekt zu integrieren, es sollte aber auch mit anderen digitalen Programmzeitschriften funktionieren.

 

erweiterte Funktionalität:

 

VPS/PDC wird unterstützt. Das Programm Identification Label (PIL) muss nicht bekannt sein, sondern kann entweder vom Programm berechnet werden, oder aus den EPG Daten zur Sendung extrahiert werden.

Es lässt sich aber auch ein PIL über die Kommandozeile dem Programm explizit mitteilen.

 

Sämtliche Einstellungen des Recording-Services lassen sich durch Verwendung einer Initialisierungsdatei für jeden Sender individuell festlegen.

So ließe sich in der Initialisierungsdatei beispielsweise festlegen, ob VPS/PDC bei einem Sender genutzt oder nicht genutzt werden soll.

 

HTTPS mit Client-Authentifizierung wird unterstützt. Voraussetzung dafür ist aber, dass ein Web-Server (z.B Apache) als Proxy konfiguriert wird.

 

Wake-on-LAN (WOL): Mein Programm sendet auf Wunsch ein Magic-Packet an den Rechner auf dem der Recording-Service läuft, sollte dieser nicht erreichbar sein und wartet ein definierbares Zeitintervall auf die Erreichbarkeit des Dienstes.

Das funktioniert bei einigen Routern auch über das Internet; bei anderen wie z.B. Fritz-Boxen sind oft Modifikationen an der Firmware erforderlich (s. Freetz) damit Magic-Packets aus dem Internet in das LAN weitergeleitet werden.

 

Das Programm habe ich schon auf mehreren Rechnern erfolgreich im Einsatz und es läuft bereits sehr stabil.

Trotzdem halte ich es nicht für sinnvoll, es gleich jedem zugänglich zu machen, da ich nicht weiß, ob ich es sofort hinkriege, das Programm so unmissverständlich zu dokumentieren, dass ich nicht mit zu vielen "Beschwerden" auf einmal konfrontiert werde.

Ich habe mir deshalb gedacht, dass ich erst mal nur 10 Tester mein Programm ausprobieren lasse. Sollte das Feedback der Tester positiv ausfallen, werde ich das Programm allen zu Verfügung stellen.

 

Den Testern würde ich, im Laufe der nächsten Tage den Link zum Download schicken. Ich werde das Programm zusammen mit der hoffentlich verständlichen Dokumentation und einer Muster-Initialisierungsdatei ausliefern.

 

Das Programm lässt sich bis zum 1.3.2015 benutzen. Bis dahin werde ich eine Version veröffentlichen, die um jetzt eventuell noch vorhandene Fehler bereinigt ist.

 

Entwickelt habe ich für Windows. Ich habe es aber auch schon unter Linux mittels Wine mit kleinen Einschränkungen zum Laufen gebracht. Mit Wine funktionierte bei mir kein HTTPS und auch das Versenden von Magic Packets war nicht möglich.

Unter Linux müsste man also gegebenenfalls den Rechner mit dem Recording-Service über ein externes Tool (z.B. Etherwake) wecken und sich mit den Sicherheitsfeatures des Recording Services zufrieden geben.

 

Die Nutzung meines Programms erfolgt auf eigenes Risiko. Das Programm darf nicht verändert werden und bis auf weiteres nicht weitergegeben werden.

 

Interessenten können sich jetzt hier im Forum melden.

Vielen Dank.

 

 

HacMat

 

aktuelle Version des RS Requesters: http://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-fur-den-rs/?p=454001

aktuelle Version des Clickfinder-Add-Ons: http://www.DVBViewer.tv/forum/topic/55874-commandline-interface-windowslinuxwine-fur-den-rs/?p=441643

Edited by HacMat
Link to comment

Der Aufnahmetitel wird auf Wunsch aus den EPG-Daten übernommen und enthält damit oft auch die Episodennummer.

Wenn der extern übermittelte Titel verwendet wird, wird dem nichts hinzugefügt.

Die Titel im TV-Browser enthalten aber meistens als Zusatz die Nummer der Folge.

Problematischer ist die Nummer der Staffel, die oft nicht im Titel enthalten ist.

Eine Unterstützung für das Setzen von Widerholungstimern habe ich noch nicht implementiert, weil man dafür nur einmalig einen Wiederholungstimer im Recording-Service setzen muss und das deshalb eher selten vorkommt. Deshalb habe ich auch noch keine Funktion implementiert bei der dem Titel, Nummern zur Kennzeichnung der Staffel oder Episode angehängt werden. Ich werde das aber möglicherweise in einer späteren Version noch implementieren.

Wenn alle Folgen einer bestimmten Serie automatisch aufgenommen werden sollen, müsste beispielsweise der TV-Browser, so konfiguriert werden das er automatisch für jede Folge der Sendung automatisch mein Programm aufruft. Ich glaube das ist irgendwie möglich.

Link to comment

Im TV-BROWSER gibt es die Funktion mit den wiederholenden Sendungen leider nicht.

Dafür müsste doch eine Art Datenbank erstellt /gepflegt werden.

 

Ja es sind leider nicht alle Daten perfekt.

 

Hatte das "alte" Script früher mit tvgenial am laufen, da haben aber leider auch die Episoden nummern gefehlt. Tvgenial hatte immer gute Infos.

Link to comment

Ich habe diesem Posting einige Screenshots und eine Beispiel-Konfigurationsdatei angehängt, die den Sinn meines Programms (ich habe es mal bis auf weiteres "RS Requester“ genannt) etwas verständlicher machen.

Die Screenshots zeigen das Setzen und das Löschen eines Timers im TV-Browser über das Internet.

Verwendet wird SSL mit Client-Authentifizierung.

Beim Setzen des Timers wird in diesem Beispiel, der sich im Standby (S3) befindliche Host durch ein Magic-Packet aufgeweckt.

Beim anschließendem Löschen ist der Host noch wach, und das Versenden eines Magic-Packets entfällt.

Ich habe noch die optionale Funktion implementiert, dass nach erfolgten Wake-on-LAN ein Dummy-Timer mit niedrigster Priorität gesetzt wird, der nur dazu dient die Energiespareinstellungen des Hosts auszuhebeln, und somit eine frei wählbare Bereitschaftszeit zu erzwingen, um weitere Aufnahmeaufträge/Löschaufträge, ohne das erneute Senden eines Magic-Packets zu ermöglichen. Diese Funktion ist aber auf den Screenshots deaktiviert.

Anstatt des eingebauten Wake-on-LAN, lässt sich bei Nicht-Erreichbarkeit des Hosts auch ein externes Programm zur Reaktivierung des Servers aufrufen. Dies kann ein externes Wake-on-LAN-Tool sein oder ein Tool, das eine andere Methode zur Reaktivierung des Hosts verwendet, wie z.B Wake-by-Call.

 

Mein Programm unterstützt mehrere Benutzer, wenn man jedem Rechner bzw. den verschiedenen

Benutzerkonten unterschiedliche Aufnahmeverzeichnis zuordnet.

 

Der „RS Requester“ lässt sich auch so konfigurieren, dass er nahezu transparent arbeitet, und sich nur bei erforderlichem Wake-on-LAN ein Fenster öffnet.

Die Ausgabe erfolgt dann auf Wunsch im Fenster der Aufnahmesteuerung des TV-Browsers.

Weiterhin kann man die automatische Terminierung im Nicht-Fehlerfall aktivieren. Das erspart einem den mühsamen Klick auf den OK-Button.

 

Durch das Erstellen einer Verknüpfung im Start-Menü lässt sich in Verbindung mit dem Request „Connect“ auch ein Starter für den RS einrichten der keinen Timer setzt oder löscht, sondern nur

falls erforderlich den Host aufweckt, eine Verbindung zum RS aufbaut und anschließend das Web-Interface des RS aufruft.

 

Mit den Screenshots habe ich extra den kompliziertesten Anwendungsfall dokumentiert, um die Möglichkeiten meines Programms aufzuzeigen.

Selbstverständlich kann man den "RS Requester" auch im lokalen Netz ohne SSL verwenden oder nur auf dem Rechner einsetzen, auf dem der Recording Service ausgeführt wird. Dann muss man sich auch nicht mit Wake-on-LAN, der Konfiguration von Apache und der Erstellung von Zertifikaten herumschlagen.

 

Der RS Requester braucht keine Administratorrechte und enthält keine Funktionen, die den Benutzer in irgendeiner Weise ausspionieren.

 

Gibt es jetzt jemanden, der den "RS Requester" mal auszuprobieren möchte ?

 

VG

 

HacMat

Edited by HacMat
Link to comment

Servus MaFu,

 

Vielen Dank für dein Interesse!

Da das Interesse an meinem Programm, aber bisher ansonsten sehr verhalten ist, halte ich es nicht mehr für sinnvoll es erst mal nur 10 Testern zur Verfügung zu stellen. Ich habe mich deshalb entschlossen, in den nächsten Tagen eine hoffentlich verständliche Dokumentation zu erstellen, und das Programm allen hier zum Download anzubieten.

Die Laufzeitbeschränkung werde ich auf ein halbes Jahr verlängern und sobald ich mir sicher bin, dass alles perfekt läuft, in zukünftigen Versionen ganz weggelassen.

Am besten Du schaust in den nächsten Tagen hier im Thread nochmal vorbei. Spätestens im Laufe der nächsten Woche stelle ich es zum Download.

Link to comment
  • 2 weeks later...

Eigentlich wollte ich mein Programm, heute wie angekündigt hochladen.
Leider meldet unter Desinfect 2014 Bitdefender den Trojaner Gen:Trojan.Heur2.JP.xu0@aCTUcABO. Vermutlich nur ein Fehlalarm.
Dem Namen nach zu urteilen ist es keine Signatur die erkannt wurden ist, sondern die Ursache liegt in der Heuristik des Bitdefenders.
Die anderen Scanner (Avira, Kaspersky und ClamAV) melden keine Infektion.
Trotzdem möchte ich erstmal sichergehen, und meine Windows Partitionen übernacht mit allen 4 Scannern überprüfen und mein Programm morgen erst hochladen.

Hier noch der Scan-Report vom Bitdefender:

//
// BitDefender scan report
//
// Time: Sun Feb 1 22:22:58 2015
// Command line: --log=/tmp/desinfect_logs/LOG_bitdefender.log /media/Samsung/Upload
// Core: AVCORE v2.1 Linux/i386 11.0.0.26 (Aug 7, 2014)
// Engines: scan: 17, unpack: 13, archive: 51, mail: 8
// Total signatures: 6513807
//

/media/Samsung/Upload/connect.cmd ok
/media/Samsung/Upload/Manual - RS Requester.html ok
/media/Samsung/Upload/Requester.cfg ok
/media/Samsung/Upload/rsreq.exe infected: Gen:Trojan.Heur2.JP.xu0@aCTUcABO
/media/Samsung/Upload/RSreq.zip ok
/media/Samsung/Upload/RSreq.zip=>connect.cmd ok
/media/Samsung/Upload/RSreq.zip=>Manual - RS Requester.html ok
/media/Samsung/Upload/RSreq.zip=>Requester.cfg ok
/media/Samsung/Upload/RSreq.zip=>rsreq.exe infected: Gen:Trojan.Heur2.JP.xu0@aCTUcABO
/media/Samsung/Upload/RSreq.zip=>TVgenial_Script.txt ok
/media/Samsung/Upload/TVgenial_Script.txt ok
/media/Samsung/Upload/TVgenial_Script.txt=>user.Zone.Identifier ok


Results:
Folders: 0
Files: 12
Packed: 0
Archives: 2
Infected files: 2
Suspect files: 0
Warnings: 0
Identified viruses: 1
I/O errors: 0


Vielleicht kann mir ja jemand meine Bedenken nehmen.

Viele Grüße,

HacMat

Link to comment

Vielen Dank für den Hinweis, Tjod.
6 von 57 Scannern halten meine Exe-Datei für gefährlich und melden eine Infektion mit Gen:Trojan.Heur2.JP.xu0@aCTUcABO
Vermutlich wirklich nur ein Fehlalarm.
Wenn mein System sonst sauber ist, allen voran Visual Studio werde
ch morgen Abend den Upload wagen, es sei denn jemand protestiert dagegen.

Hier das ganze Ergebnis:

SHA256: 9a497a1a783af1bb8ffcd2ff7d85f378cc50032f002edb40eaaa9d46e85a2e40
Dateiname: rsreq.exe
Erkennungsrate: 6 / 57
Analyse-Datum: 2015-02-01 22:36:32 UTC ( vor 1 Minute )


Antivirus Ergebnis Aktualisierung
Ad-Aware Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
BitDefender Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
Emsisoft Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
F-Secure Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
GData Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
MicroWorld-eScan Gen:Trojan.Heur2.JP.xu0@aCTUcABO 20150201
ALYac 20150201
AVG 20150201
AVware 20150201
AegisLab 20150130
Agnitum 20150201
AhnLab-V3 20150201
Alibaba 20150201
Antiy-AVL 20150201
Avast 20150201
Avira 20150201
Baidu-International 20150130
Bkav 20150130
ByteHero 20150201
CAT-QuickHeal 20150131
CMC 20150129
ClamAV 20150201
Comodo 20150201
Cyren 20150201
DrWeb 20150201
ESET-NOD32 20150201
F-Prot 20150201
Fortinet 20150201
Ikarus 20150201
Jiangmin 20150131
K7AntiVirus 20150201
K7GW 20150130
Kaspersky 20150201
Kingsoft 20150201
Malwarebytes 20150201
McAfee 20150201
McAfee-GW-Edition 20150201
Microsoft 20150201
NANO-Antivirus 20150201
Norman 20150201
Panda 20150201
Qihoo-360 20150201
Rising 20150130
SUPERAntiSpyware 20150201
Sophos 20150201
Symantec 20150201
Tencent 20150201
TheHacker 20150131
TotalDefense 20150201
TrendMicro 20150201
TrendMicro-HouseCall 20150201
VBA32 20150129
VIPRE 20150201
ViRobot 20150201
Zillya 20150131
Zoner 20150130
nProtect 20150130

Link to comment

Ich habe jetzt mein Programm ausführlich dokumentiert, und stelle es hiermit allen zum Download zur Verfügung. Das Programm ist bis zum 30.06.15 uneingeschränkt lauffähig.

Ich habe auch eine Konfigurationsdatei hinzugefügt, die den RS Requester so vorkonfiguriert, dass er auf dem Host des Recording Services, vorausgesetzt man hat an den Standardeinstellungen des RS nichts geändert, ohne Anpassungen der Konfigurationsdatei direkt funktionieren sollte.

Möchte man über einen anderen Rechner auf den RS zugreifen, muss man nur den Schlüssel 'host' ändern.

Alle erweiterten Funktionen, wie z.B. Wake-on-LAN, https, …. sind auskommentiert.

Möchte man diese Funktionen nutzen, muss man nur das Semikolon am Anfang der Zeile entfernen, und eventuell den Schlüsselwert an die eigene Umgebung anpassen.

 

Vermeintlicher Trojaner : Gen:Trojan.Heur2.JP.xu0@aCTUcABO

 

Es hat sich herausgestellt, dass die Infektion der erzeugten Exe-Datei nur gemeldet wird, wenn ich ich die Option 'Multi-threaded (/MT)' unter 'Code Generation' in den Compiler-Einstellungen von 'Visual Studio Express 2013' einschalte. Mit dieser Option wollte ich die Bibliothek 'MSVCRT.lib' statisch mit meinem Programm verlinken. Dadurch wird der Code der genutzten Funktionen aus 'MSVCRT.lib' direkt in die erzeugte Exe-Datei integriert. Obwohl es sehr wahrscheinlich nur ein Fehlalarm war, habe ich mein Programm nun mit der Option 'Multi-threaded DLL (/MD)' kompiliert. Die erzeugte Exe ist jetzt wesentlich kleiner, dafür wird aber die Datei 'MSVCR120.DLL' benötigt. Diese Datei ist vermutlich auf den meisten Rechnern schon vorhanden, weil sie von sehr vielen Programmen benötigt wird. Wenn nicht, lässt sie sich bei Microsoft kostenlos herunterladen.

 

Die neue Exe-Datei wird von keinem der 57 Virenscanner von Virustotal mehr beanstattet.

 

 

TV-Genial:

 

Ich habe noch ein Script erstellt, und mit der kostenfreien Version von TVgenial 5.40 grob getestet. Sollte jemand den RS Requester zusammen mit TVgenial nicht zufriedenstellend verwenden können, bitte unbedingt posten, damit ich mein Programm auch für Tvgenial weiter optimieren kann.

Wenn jemand weiß, wie man Tvgenial dazu bringt den Rückgabe-Wert meines Programms auszuwerten, wäre ich für die Info sehr dankbar.

Dadurch, dass der Rückgabe-Wert nicht ausgewertet wird, wird auch im Fehlerfall eine Sendung in TVgenial als „zur Aufnahme vorgesehen“ markiert. Das ist zwar nicht weiter schlimm, aber trotzdem unschön. Vorläufig sollte deshalb 'autoexit' niemals 'enabled' zugewiesen werden, damit man auch unter TVgenial über Fehler (wie z.B Konflikte bei Aufnahme-Timern) informiert wird.

 

 

TV-Browser:

 

Beim TV-Browser, muss das Plug-in 'Aufnahmesteuerung' installiert sein.

 

Unter Parameter müsst ihr die folgende Zeile eintragen:

 

Parameter für Aufnahme:

 

-request record -readfile C:\\Program Files (x86)\\RS Requester\\Requester.cfg -title {title} -channel {channel_name_external} -date {start_day}.{start_month}.{start_year} -start {start_hour}:{start_minute} -stop {end_hour}:{end_minute}

 

Parameter für Löschen:

 

-request delete -readfile C:\\Program Files (x86)\\RS Requester\\Requester.cfg -channel {channel_name_external} -title {title} -date {start_day}.{start_month}.{start_year} -start {start_hour}:{start_minute}

 

Den Pfad „C:\\Program Files (x86)\\RS Requester\\Requester.cfg“ müsst ihr noch anpassen.

In meiner Version der Aufnahmesteuerung, gibt es die Eigenart, dass ein Backslash (\) durch 2 aufeinanderfolgende Backslashs repräsentiert wird. Es reicht nicht aus, nur einen Backslash zu schreiben.

 

Der Aufnahmesteuerung müssen unter 'Einstellungen/Sender' noch die externen Sender-Namen mitgeteilt werden.

 

Unter 'Einstellungen/Einstellungen' bitte folgendes Eintragen:

 

Wie viele Minuten früher starten ? 0

Wie viele Minuten später stoppen ? 0

 

Benutzername: (leer)

Passwort: (leer)

 

Anzahl der Sek. Zum Abbruch: -1 (deaktiviert)

überprüfe, ob ein Fehler-wert zurückgegeben wird: aktiviert

Rückgabe-Dialog nur bei Fehlern anzeigen: aktiviert

Zeige Titel- und Zeiteinstellungsdialog: deaktiviert

Sendungen, die beim Datenupdate entfernt wurden, automatisch löschen: beliebig

Nur Programme erlauben, die in der Zukunft liegen: deaktiviert

Zeitzone vom Betriebssystem erfragen: aktiviert

 

Unter 'Maximale Anzahl gleichzeitiger Aufnahmen' bitte einen so hohen Wert eintragen, dass es nie

vorkommt, dass die Aufnahmesteuerung das Setzen eines Timers blockiert.

Der RS Requester meldet selbst einen Fehler, wenn 2 oder mehr Sendungen nicht gleichzeitig aufgenommen werden können. Die Anzahl der dem RS zur Verfügung stehenden Aufnahmegeräte muss dem RS Requester mit dem Schlüssel 'devices' mitgeteilt werden. Ein Aufnahmegerät kann bereits für mehrere gleichzeitige Aufnahmen ausreichen, wenn die Sendungen im selben Transport-Stream gesendet werden.

 

 

Kein Absturz:

 

Der TV-Browser ist solange blockiert, bis das Fenster des RS Requesters geschlossen wird.

Klickt man versehentlich in das Fenster des TV-Browsers, lässt sich das Fenster des RS Requesters nicht mehr fokussieren. Es wirkt dann so, als wenn der TV-Browser und der RS Requester gemeinsam abgestürzt wären.

Das ist aber nicht der Fall: Der TV-Browser wartet nur auf, die Beendigung der Aufnahmesteuerung, und diese wiederum auf die Beendigung des RS Requesters um den Rückgabewert auszuwerten.

Der RS Requester lässt sich problemlos über die Taskleiste beenden und danach reagiert auch der TV-Browser wieder normal. Das Problem ließe sich lösen, wenn der RS Requester einen Prozess starten würde, der nur für die Interaktion und die Ausgabe im Fenster zuständig wäre und sich anschließend, sobald alle Ausgaben abgeschlossen sind und ein Rückgabewert vorliegt, selbst terminiert.

Da unter TVgenial (es erfolgt keine Auswertung des Rückgabewertes) das Problem nicht auftritt und es rein kosmetischer Natur ist, hat es bei mir aber nur eine geringe Priorität.

 

 

Es kann sein, dass der hier veröffentliche RS Requester 1.0.0.1 beta mit einer zukünftigen Version des RS nur noch eingeschränkt funktioniert, weil die Http-Requests, die der RS Requester sendet, vom RS nicht mehr verstanden werden. Ich habe deshalb eine Versionsabfrage implementiert, und es wird eine Warnung ausgeben, falls eine neuere Version des RS verwendet wird, als die zur Zeit aktuelle 30.0.1.0.

Man kann die hier veröffentliche Version natürlich weiterhin verwenden, und vermutlich wird auch alles funktionieren, es ist aber besser den Requester erstmal mit dem Parameter '-verbose' in der Kommandozeile oder dessen Äquivalent als Schlüssel (verbose = enabled) in der Konfigurationsdatei zu verwenden. Der RS Requester zeigt dann die Requests, die er an den RS sendet. Wenn nach jedem Request 'OK (200)' zurückgeben wird, sollte eigentlich alles funktionieren.

Bei Kompatibilitätsproblemen mit zukünftigen Versionen, werde ich zeitnah versuchen eine neue kompatible Version zu veröffentlichen.

Bitte keine Versionen älter als 1.25.0.0 zusammen mit dem RS Requester verwenden.

 

Wenn ihr Fehler entdeckt, Verbesserungsvorschläge habt, oder auch einfach nur zufrieden seid, könnt ihr das hier gerne posten.

 

Viel Erfolg beim ausprobieren!

 

HacMat

 

Der Link zum Download der Version, auf die sich dieses Posting bezieht wurde entfernt.

 

In diesem Thread steht eine aktuellere Version zum Download.

Edited by HacMat
Link to comment
  • 2 weeks later...

Ich habe nichts gefunden, wo man eine Aufgabe nach Aufnahme definieren kann. Die in den Einstellungen des RS definierte Standardaufgabe wird nicht in den erzeugten Timer übernommen. Habe ich etwas übersehen?

Link to comment

@semko

Die Aufgabe nach der Aufnahme definierst du mit 'endaction' (nicht verwechseln mit wolendaction).

Du hast dabei 4 Optionen:

{0| none} → Nach Aufnahmeende: keine Aktion

{1|power off|shutdown} → Nach Aufnahmeende: Herunterfahren

{2|standby|sleep} → Nach Aufnahmeende: Standbymodus (Suspend to RAM (S3))

{3|hibernate} → Nach Aufnahmeende: Ruhezustand (Suspend to Disk (S4))

Das sind die gleichen Optionen, die Du auch im Webinterface oder in den Konfigurationseinstellungen des RS hast.

Wenn du 'endaction' auf der Kommandozeile oder innerhalb einer Sektion verwendest, die auch eingelesen (!) wird, wird die Vorgabe des RS überschrieben. Das funktioniert bei mir absolut stabil.
Wenn du endaction nicht verwendest, sollte eigentlich die Vorgabe des RS verwendet werden.
Ist das nicht der Fall, bitte ich dich deine Konfigurationsdatei (falls verwendet), die Befehlszeile und die Ausgabe des RS Requesters hochzuladen, damit ich den Fehler genauer analysieren kann.
Außerdem bräuchte ich noch die Versionsnummer des RS.
Bitte sicherheitshalber alle Authentifizierungsdaten abändern.

Zu Windows XP:

Ich habe versucht die rsreq.exe in einer virtuellen Machine unter Windows XP zu starten und bekomme die selbe Fehlermeldung.
Das Problem ist, dass mein Programm die Funktion GetAddrInfoW() aufruft die erst ab Windows Vista vorhanden ist. Mit dieser Funktion löse ich den Hostnamen von 'woldest' zu einer IP-Adresse auf.
Es ist nicht allzu aufwendig Kompatibilität zu Windows XP herzustellen, in dem ich auf die Verwendung dieser Funktion verzichte. Hast Du die rsreq.exe unter XP nur mal so zum testen aufgerufen oder erwägst Du ernsthaft den RS Requester unter Windows XP einzusetzen.
Das XP nicht mehr mit Sicherheitsupdates versorgt wird ist die sicherlich bekannt.

Link to comment

@omnium

Der TV-Browser wird seit langem durch das TV-Genial Plug-in (dvbv_tvg.exe) halbwegs unterstützt.
Der Hauptgrund warum ich den RS Requester entwickelt habe war, dass ich es mit der dvbv_tvg.exe einfach nicht hinbekam einen Timer über den RS zu löschen und zudem kein PDC (VPS) unterstützt wurde.
Was spricht dagegen den DVBViewer bzw. den RS wieder zu nutzen ?
Ich finde der RS hat auch in Zeiten von Streaming-Diensten und Mediatheken seine Berechtigung. Es gibt doch nichts komfortableres, als wenn man in einer digitalen TV-Zeitschrift eine Sendung anklickt und ein Rechner, der irgendwo auf der Welt stehen kann, zum Aufnahmezeitpunkt hochfährt, die Sendung Sekundengenau aufnimmt und die aufgezeichnete Sendung jederzeit an einem x-beliebigen Ort zeitlich unbegrenzt abrufbar ist.

Link to comment

{0| none} → Nach Aufnahmeende: keine Aktion

{1|power off|shutdown} → Nach Aufnahmeende: Herunterfahren

{2|standby|sleep} → Nach Aufnahmeende: Standbymodus (Suspend to RAM (S3))

{3|hibernate} → Nach Aufnahmeende: Ruhezustand (Suspend to Disk (S4))

Das sind die gleichen Optionen, die Du auch im Webinterface oder in den Konfigurationseinstellungen des RS hast.

Diese Funktionen habe ich gefunden. Was mir fehlt, ist die Angabe der User-definierten Aufgabe, die nach der Aufnahme durchgeführt werden soll. (siehe eingekreiste Funktion im Bild)

 

 

 

Zu XP:

Ja, der RS läuft hier noch auf einem alten Hobel, der sonst fast nichts mehr macht, als Sendungen aufzuzeichnen und Clients zu versorgen. Es wäre schade, wenn ich dein Programm darauf nicht nutzen könnte. Eine Umstellung kommt solange nicht in Frage, bis Windows 10 auf dem Markt ist. Für die paar Monate lohnt sich auch keine Zwischenlösung mit einer anderen Windows-Version.

Übrigens kenne ich eine ganze Menge Leute, die immer noch XP nutzen, auch wenn es dafür keine Sicherheitsupdates mehr gibt.

Link to comment

@semko

 

Diese Funktion ist tatsächlich noch nicht implementiert. Ich habe einfach übersehen, dass man einem Timer noch eine gesonderte Aufgabe zuweisen kann. Das liegt vor allem daran, dass man bei mir dort nichts außer 'none' auswählen kann. Ich dachte immer das Eingabefeld 'Aufgabe' sei funktionslos und für zukünftige Versionen des RS reserviert.

Was muss ich tun, damit ich in diesem Feld etwas auswählen kann ?

 

Hat diese Funktion eine hohe Priorität für dich oder soll ich mein Programm zuerst XP-kompatibel machen ?

Link to comment

@Tjod

 

Danke, jetzt verstehe ich wo für das gut ist.

Ich werde so bald wie möglich eine Unterstützung für 'Nach-Aufnahme-Aufgaben' implementieren.

Link to comment

@HacMat

 

Tjod hat ja schon beschrieben, wie die Nach-Aufnahme-Aufgaben funktionieren. Bei mir wird damit sofort nach der Aufnahme eine Nachbearbeitung gestartet. Die Funktion ist für mich genau so wichtig wie die XP-Kompatibilität.

Link to comment

Ich habe jetzt eine neue Version fertiggestellt: RS Requester 1.0.1.0

 

Änderungen:

 

XP-Kompatibilität hergestellt. Das Programm ist jetzt lauffähig ab Windows XP mit installiertem Service Pack 2.

 

Der Parameter/Schlüssel 'task' wurde hinzugefügt.

Mit 'task' lässt sich jetzt beim Setzen eines Timers eine Aufgabe übermitteln, die nach der Aufnahme ausgeführt werden soll, z.B um die Aufnahme in ein anderes Video-Format zu konvertieren.

 

Kleinere Bugs bei der Ausgabe wurden beseitigt, die aber für die Funktionalität ohne Bedeutung waren.

 

Dem Zip-Archiv wurden die Dateien 'msvcp120.dll' und 'msvcr120.dll' aus dem 'Visual C++ Redistributable Packages für Visual Studio 2013 (x86)' hinzugefügt.

Diese Dateien sind aber auf den meisten Systemen bereits vorhanden und können daher wahrscheinlich gelöscht werden. (Einfach mal testweise in den Papierkorb verschieben.)

 

Die Version 1.0.1.0 ist vollständig abwärtskompatibel zur Version 1.0.0.1. Wer den RS Requester schon erfolgreich eingerichtet hat, braucht also nur die alte rsreq.exe durch die neue austauschen.

 

Download: Version veraltet, Link entfernt.

 

 

 

 

Edited by HacMat
Link to comment

Wenn ich den Eintrag 'task' aktiviere, erhalte ich beim Erzeugen eines Timers die Fehlermeldung:

Die Konfigurationsdatei enthält einen unzulässigen Schlüssel: [Private] task

Dabei macht es keinen Unterschied, ob ich den Eintrag bei den Sendergruppen-Defaults oder bei den einzelnen Sendern eintrage.

 

Das Program läuft jetzt (mit der oben genannten Einschränkung) auch unter Win XP. Vielen Dank dafür!

Link to comment

Und noch eine neue Version: RS Requester 1.0.1.1

 

Änderungen zu 1.0.0.1:

 

XP-Kompatibilität hergestellt. Das Programm ist jetzt lauffähig ab Windows XP mit installiertem Service Pack 2.

 

Der Parameter/Schlüssel 'task' wurde hinzugefügt.

Mit 'task' lässt sich jetzt beim Setzen eines Timers eine Aufgabe übermitteln, die nach der Aufnahme ausgeführt werden soll, z.B um die Aufnahme in ein anderes Video-Format zu konvertieren.

 

Kleinere Bugs bei der Ausgabe wurden beseitigt, die aber für die Funktionalität ohne Bedeutung waren.

 

Dem Zip-Archiv wurden die Dateien 'msvcp120.dll' und 'msvcr120.dll' aus dem 'Visual C++ Redistributable Packages für Visual Studio 2013 (x86)' hinzugefügt.

Diese Dateien sind aber auf den meisten Systemen bereits vorhanden und können daher wahrscheinlich gelöscht werden. (Einfach mal testweise in den Papierkorb verschieben.)

 

Die Version 1.0.1.1 ist vollständig abwärtskompatibel zur Version 1.0.0.1. Wer den RS Requester schon erfolgreich eingerichtet hat, braucht also nur die alte rsreq.exe durch die neue austauschen.

 

 

Änderungen zu 1.0.1.0:

 

Fehler behoben:

Der Parameter 'task' ließ sich nicht als Schlüssel in der Konfigurationsdatei verwenden.

 

Download: (In diesem Thread steht eine aktuellere Version zum Download.)

 

@semko

 

Danke für die schnelle Rückmeldung!

Edited by HacMat
Link to comment

Es gibt bei mir ein kleines Problem mit dem Standby nach Anlage eines Timers, wenn der Rechner dafür per WOL geweckt wurde.

Der Requester ist dafür so eingestellt:

wolStandby = 5

wolEndaction = standby

Es wird zwar ein Timer _STANDBY_ erzeugt mit einer Laufzeit von 5 Min. und Abschlussaktion "Energie sparen", der aber nie ausgeführt wird. Er steht auch nach der Endezeit immer noch in der Timerliste, scheint also vom RS vollkommen ignoriert zu werden. Im Log ist von der ganzen Sache auch nichts zu sehen. (Wobei es mich von jeher stört, dass das Anlegen eines Timers im Log überhaupt nicht protokolliert wird. Aber das ist wohl eine andere Baustelle)

 

HacMat, könntest du bitte mal probieren, ob das Runterfahren bei dir funktioniert?

Edited by semko
Link to comment

@semko

 

Bei mir funktioniert es mit WolStandby = 10 und RS 1.30.1.0 unter Windows 8 fehlerfrei.

Mit WolStandby =5 ist ist mir beim ersten Versuch ein EPG-Update dazwischengekommen, was dazu führte, dass der Host wach blieb. Beim 2. Versuch lief alles problemlos.

 

Vermeiden ließe sich das Standby-Blockierende EPG-Update nach erfolgtem WOL, durch das setzten eines Internal-Task-Timers der das EPG-Update täglich zu einer unkritischen Zeit ausführt.

 

Nach dem EPG-Update ging der Host dann leider nicht direkt in den Standby.

Soweit ich weiß kann der RS aber den Standby nicht erzwingen sondern nur Windows darum „bitten“ sich schlafen zu legen. Wenn Windows „meint“ es hätte noch etwas Wichtiges zu tun, wie z.B den Download von Updates, wird die Bitte des RS ignoriert, und irgendwann wenn Windows mit seiner Arbeit fertig ist, greifen schließlich die Energiespareinstellungen.

 

Das Problem mit dem hängenden Standby-Timer kann ich zur Zeit nicht reproduzieren.

Ich kann mich aber erinnern, dass es bei mir vor längerer Zeit auch mal auftrat.

Und zwar auch mit klassischen Aufnahme-Timern, unabhängig davon, ob sie über das Web-Interface oder den Requester erstellt wurden. Das Problem ist aber schon seit längerer Zeit nicht mehr aufgetreten. Benutzt du eine ältere Version als 1.30.1.0 ?

 

Könntest Du mal den XML-Eintrag zum erzeugten Standby-Timer posten ?

Dafür einfach http://Host:Port/api/timerlist.html?utf8= in die Adresszeile des Browsers kopieren, Host und Port ändern und dann Enter drücken.

In Firefox musst Du unter Umständen noch im Kontext-Menü (rechte Maustaste) „Seitenquelltext anzeigen“ anklicken.

 

Ich werde wahrscheinlich die Wol-Standby-Funktionalität bald ganz neu implementieren. Als mir die Idee mit dem Dummy-Timer kam, wusste ich noch nichts von den Internal-Task-Timern. Ein Internal-Task-Timer ist ein viel eleganterer und wahrscheinlich auch zuverlässigerer Weg den Rechner für eine definierbarer Zeitspanne nach dem Aufwecken wach zu halten.

Link to comment

@HacMat

 

Bei mir wird kein automatisches EPG-Update gemacht, das läuft immer zu einer festen Zeit über einen Timer. Ich werde das Runterfahren nach WOL jetzt einfach mal weiter beobachten. Wenn es nicht klappt, ist das auch nicht weiter tragisch, denn nach max. 30 min. Idle fährt der Rechner sowieso runter.

 

Ich verwende die aktuelle Version 1.30.1.0 des RS.

 

Hier ist der erzeugte Standby-Timer:

 

<Timer Type="1" ID="{A96E820D-A3C7-4FAC-A7C5-B8A6842A0DF8}" Enabled="-1" Priority="0" ShutDown="2" Charset="255" Date="22.02.2015" Start="17:11:00" Dur="5" End="17:16:00" Action="1">
<Descr>_STANDBY_</Descr>
<Options/>
<Channel ID="2359890934581849546|Das Erste (AC3,deu)"/>
<Executeable>-1</Executeable>
<Recording>-1</Recording>
<ID>6</ID>
<GUID>{A96E820D-A3C7-4FAC-A7C5-B8A6842A0DF8}</GUID>
<Recordstat StartTime="22.02.2015 17:11:56"/>
<RealFilename/>
</Timer>

Dass du das Runterfahren demnächst über einen Internen-Task-Timer machen willst, ist sicher eine gute Idee.

Link to comment

@semko

 

<Channel ID="2359890934581849546|Das Erste (AC3,deu)"/> <= Falscher Sendername ?

 

Verwendest Du die Sendernamen oder Sender-IDs, die man mit http://Host:RS-Port/api/getchannelsxml.html aufgelistet bekommt ? Ich habe in dieser Liste kein 'Das Erste (AC3,deu)' sondern nur 'Das Erste (deu)' und 'Das Erste HD (deu)' (Sat-Empfang).

Teste es mal mit einem Sendernamen aus dieser Liste. Benutze nicht das Script 'connect.cmd', um den Host zu wecken, sondern lass den Host mal aus dem TV-Browser/aus TVgenial heraus wecken. Funktioniert „Wol-Standby“ dann auch nicht ?

Link to comment

 

<Channel ID="2359890934581849546|Das Erste (AC3,deu)"/> <= Falscher Sendername ?

 

Verwendest Du die Sendernamen oder Sender-IDs, die man mit http://Host:RS-Port/api/getchannelsxml.html aufgelistet bekommt ?

Der Sendername stimmt so. Aufnahmen mit diesem Sendernamen funktionieren auch einwandfrei. Da ich bei Aufnahmen den Ton im AC3 Format bevorzuge, habe ich die Senderliste des DVBViewers und natürlich die requester.cfg entsprechend angepasst.

 

Standby mach WOL habe ich inzwischen mehrfach getestet und es funktioniert manchmal und manchmal nicht. Ein Muster konnte ich bisher nicht erkennen. Der RS scheint manchmal Timer einfach zu ignorieren. Das passiert mir gelegentlich auch mit geplanten Aufnahmen mit PDC Überwachung, die einfach nicht durchgeführt werden. Ich habe das schon an anderer Stelle im Forum berichtet aber anscheinend tritt das Problem nicht so häufig auf, dass das eine Reaktion der Entwickler wert wäre. Auftreten tut es seit Version 1.29 oder 1.30, vorher hatte ich das Problem nie.

Link to comment

@Klaus Heynen

 

Ich habe mir heute den Clickfinder einmal installiert, und wenn ich das richtig verstanden habe kommuniziert der Clickfinder mit den TV-Applikationen in dem er sie öffnet, und Eingaben über die Tastatur emuliert. Wenn der Clickfinder mit dem RS Requester zusammen arbeiten soll, müsste man noch ein Programm schreiben, das vom Clickfinder generierte Tastensequenzen in Anweisungen (Parameter + Argumente) des RS Requesters übersetzt und anschließend den RS Requester damit aufruft. Das sollte sich recht einfach bewerkstelligen lassen.

Jetzt habe ich aber vorerst andere Prioritäten. Ich möchte erstmal den RS Requester noch etwas erweitern. Wenn ich damit fertig bin, schaue ich mir den Clickfinder nochmal an. Frag einfach in 2-3 Monaten nochmal nach.

 

@semko

 

Die PDC-Überwachung funktioniert bei mir recht zuverlässig. Es ist aber auch bei mir schon vorgekommen, dass sich Timer aufgehängt haben. Ich beabsichtige noch Parameter einzuführen mit denen es möglich ist, Parameter als Variablen an ein anderes Programm zu übergeben.

 

Das könnte z.B so aussehen (Wie in der Aufnahmesteuerung des TV-Browsers):

 

endExecRecord = C:\Program Files (x86)\RS Requester\rsreq.exe -request record -readfile C:\Program Files (x86)\RS Requester\Requester 2.cfg -title {title} -channel {channel} -date {date} -start {start} -stop {stop}

 

Damit könnte man z.B noch eine „Sicherheitsaufnahme“ ohne PDC-Überwachung starten. Die Sicherheitsaufnahme könnte sogar auf einen zweiten Rechner mit eigenem RS durchgeführt werden.

Mit dem Windows-Aufgabenplaner könnte ein Script regelmäßig gestartet werden, das ältere Sicherheitsaufnahmen automatisch löscht. Zudem wäre es damit möglich die Aufrufe des RS Requesters durch ein Script protokollieren zu lassen.

 

Der Wol-Standby-Timer wird mit der nächsten Version durch einen internen Task-Timer realisiert.

Damit wird es dann sicherlich zuverlässig funktionieren.

Link to comment

@ Klaus Heynen

 

Ich benutze den Clickfinder schon seit Jahren nicht mehr, kann ich aber erinnern, dass es dafür ein DVBViewer Add-On gab, mit dem es möglich war, ein externes Programm zu starten um Timer zu definieren. Ich habe das damals benutzt um einen Batch zu starten, mit dem ich die Parameter für dvbv_tvg übergeben habe. Das sollte dann auch mit dem RSRequester gehen. Schau einfach mal auf der Clickfinder Seite nach den Add-ons oder frage im Clickfinder Forum nach.

Link to comment

@omnium

 

Der TV-Browser wird seit langem durch das TV-Genial Plug-in (dvbv_tvg.exe) halbwegs unterstützt.

Der Hauptgrund warum ich den RS Requester entwickelt habe war, dass ich es mit der dvbv_tvg.exe einfach nicht hinbekam einen Timer über den RS zu löschen und zudem kein PDC (VPS) unterstützt wurde.

Hallo zusammen,

ich hab mich noch nicht ganz eingelesen, wollte aber auch mein Interesse bekunden.

Aktuell nutze ich den TV-Browser und nur diesen, um meine Programmierungen zu machen.

Hier allerdings immer mit DVBViewer gestartet, wg der dvbv_tvg.exe. Sonst gibt er die Programmierung nicht an einen Recording-Server weiter.

 

Bei mir sind es meistens Serienaufnahmen, die über das Aufnahmesteuerungsplugin im TV-Browser und die dvbv_tvg.exe programmiert werden, d. h. so gut wie alles automatisiert beim Finden einer Folge im EPG beim Datenupdate.

 

Ich programmiere hauptsächlich ja Serien, und steuere also auch mit einem String im TV-Browser die Namensgebung der einzelnen Timer.

D.h. ich steuere schon im TV-Browser ob er die Folgennummer, den Folgennamen, den originalen Folgennamen als Namen des Timers an den Rec-Service übergibt.

 

Ist das alles mit dieser direkten Schnittstelle auch noch möglich?

Ich würde ungern auf diesen Komfort verzichten wollen...

 

Gruss fschmitt

 

P. S. :... somit funktioniert bei mir auch das Löschen einer Folge/Programmierung automatisch, wenn sich was im EPG geändert hat. Ich muss quasi nur beide Programme starten.... "and the Magic goes on" ....

Edited by fschmitt
Link to comment

Kann es sein, dass das Programm Probleme beim Vergleichen hat, wenn der Sendername Umlaute enthält?

Ich habe hier u.a.die Sektionen:

[WDR Köln (deu)]

[bayerisches FS Süd (AC3,deu)]

Wenn ich versuche, für diese Sender einen Timer anzulegen, wird mir angezeigt, dass die Sektion nicht gefunden wurde.

Link to comment

evtl. mehrfach vorhanden?

Sender ID ist immer einzigartig, vlt. besser die genommen, als den Sendernamen.

Zumindest hat mich das damals gerettet (3Empfänger und 3x ZDF in der Senderliste....hab den Tip bekommen, die ID zu verwenden)

Link to comment

Ja, einer davon (WDR Köln) ist mehrfach vorhanden aber durch group Definition eindeutig gemacht. Die Sektion wird einfach nicht gefunden, also ist die group unwirksam.

OK, Sender ID könnte ich verwenden, trotzdem sollte das mit den Umlauten mal untersucht werden.

Link to comment

Sendergruppen haben keinen Einfluss auf die Sender ID und werden bei Timern nicht berücksichtigt.

 

Doppelte Sender (gleicher Empfangsweg und gleiche Sat Position) in der Senderliste sind generell problematisch und sollten vermieden werden.

In den allermeisten fällen wird dann nur der erste Eintrag in der Senderliste verwendet. Und die Karte die dem eintrage durch die Sendergruppe zugewiesen ist. Wenn die nicht frei ist scheitert die Aufnahme.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...