SVDRP

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Ausführliche Befehls-Beschreibung)
Zeile 1: Zeile 1:
Das Simple VDR Protokoll (svdrp) erlaubt es per simpler TCP-Verbindung auf Port 2001 einfache Befehle an den VDR zu schicken, u.a. um einen Text anzuzeigen oder ihn fernzusteuern.
+
== Einführung ==
 +
Das '''Simple VDR Protokoll''' (svdrp) erlaubt es per simpler TCP-Verbindung auf Port 2001 einfache Befehle an den [[VDR]] zu schicken, um z.B. um ein Nachricht auf dem Fernseher anzuzeigen oder VDR fernzusteuern.
  
 
Zum Beispiel kann ein simples Shell-Script einen beliebigen Text ausgeben, beispielweise wenn das Telefon klingelt oder eine Mail ankam:
 
Zum Beispiel kann ein simples Shell-Script einen beliebigen Text ausgeben, beispielweise wenn das Telefon klingelt oder eine Mail ankam:
Zeile 14: Zeile 15:
 
/hostname/ ist dabei durch den Hostnamen des VDR zu ersetzen. Als Parameter übergibt man dam Script einfach den Text. [[svdrp-anwendungen|Weitere Beispiele]].
 
/hostname/ ist dabei durch den Hostnamen des VDR zu ersetzen. Als Parameter übergibt man dam Script einfach den Text. [[svdrp-anwendungen|Weitere Beispiele]].
  
Bevor man jedoch von einem Host aus den vdr ansprechen darf, muß man ihn dafür freischalten. Dies geschieht über die Datei svdrphosts.conf im Konfigurationsverzeichnis des vdr, per Default also /video. Der Aufbau ist recht simpel:
+
Bevor man jedoch von einem Host aus den vdr ansprechen darf, muß man ihn dafür freischalten. Dies geschieht über die Datei svdrphosts.conf im Konfigurationsverzeichnis des VDR, per Default also /video. Der Aufbau ist recht simpel:
  
IP-Adresse[/Netzmaske]
+
IP-Adresse[/Netzmaske]
  
 
Also einfach zeilenweise die erlaubten Host-IPs eintragen, oder wenn man gleich ganze Netzblöcke freigeben will, eine IP und eine Maske dazu, natürlich in der ultra modernen Schreibweise der Anzahl der Bits (also /24, usw.).
 
Also einfach zeilenweise die erlaubten Host-IPs eintragen, oder wenn man gleich ganze Netzblöcke freigeben will, eine IP und eine Maske dazu, natürlich in der ultra modernen Schreibweise der Anzahl der Bits (also /24, usw.).
  
 
== Die Befehle ==
 
== Die Befehle ==
 +
=== Übersicht ===
 +
CHAN  CLRE  DELC  DELR  DELT
 +
GRAB  HELP  HITK  LSTC  LSTE
 +
LSTR  LSTT  MESG  MODC  MODT
 +
MOVC  MOVT  NEWC  NEWT  NEXT
 +
PUTE  STAT  UPDT  VOLU  QUIT
  
(todo)
+
=== Beschreibung ===
<pre>
+
{| width=75% border=1 cellpadding=2 cellspacing=0
Connected to vdr.
+
|bgcolor=#efefef| CHAN
Escape character is '^]'.
+
|bgcolor=#efefef| [ + | - | <Nummer> | <Name> | <ID> ]
220 vdr SVDRP VideoDiskRecorder 1.2.6; Thu Jul  1 06:52:24 2004
+
|-
help
+
|
214-This is VDR version 1.2.6
+
| Schaltet einen Kanal hoch, runter, oder springt zur angegebenen Kanalnummer, zum Kanalnamen, oder zu Kanal-ID. Ohne Parameter, bzw. nach einem Kanalwechsel wird die Nummer und der Name des aktuellen Kanals angezeigt.
214-Topics:
+
|-
214-   CHAN    CLRE    DELC    DELR    DELT
+
|bgcolor=#efefef| CLRE
214-   GRAB   HELP   HITK   LSTC   LSTE
+
|bgcolor=#efefef|
214-   LSTR   LSTT   MESG   MODC   MODT
+
|-  
214-   MOVC   MOVT   NEWC   NEWT   NEXT
+
|
214-   PUTE   STAT   UPDT   VOLU   QUIT
+
| Löscht die EPG-Daten.
214-To report bugs in the implementation send email to
+
|-
214-   vdr-bugs@cadsoft.de
+
|bgcolor=#efefef| DELC
214 End of HELP info
+
|bgcolor=#efefef| <Nummer>
quit
+
|-
221 vdr closing connection
+
|
</pre>
+
| Löscht den Kanal.
 +
|-
 +
|bgcolor=#efefef| DELR
 +
|bgcolor=#efefef| <Nummer>
 +
|-
 +
|
 +
| Löscht die Aufnahme mit der angegebenen Nummer. Um die Aufnahmenummer zu erhalten muss vorher der LSTR Befehl ausgeführt werden. Die Nummern ändern sich durch löschen anderer Aufnahmen nicht. ACHTUNG: AUFNAHMEN WERDEN OHNE VORHERIGE NACHFRAGE GELÖSCHT!!
 +
|-
 +
|bgcolor=#efefef| DELT  
 +
|bgcolor=#efefef| <Nummer>
 +
|-
 +
|
 +
| Löscht einen Timer.
 +
|-
 +
|bgcolor=#efefef| GRAB  
 +
|bgcolor=#efefef| <Dateiname> [ jpeg | pnm [ <Qualität> [ <Breite> <Höhe> ] ] ]
 +
|-
 +
|
 +
| Speichert das aktuelle Fernsehbild im JPEG oder PNM Format auf Festplatten. Bei JPEG kann man die Qualität festlegen (Standard: maximum). Über Breite und Höhe lässt sich ein Ausschnitt definieren (Standard: Vollbild).
 +
|-
 +
|bgcolor=#efefef| HELP  
 +
|bgcolor=#efefef| [ <Begriff> ]
 +
|-
 +
|
 +
| Hilfe.
 +
|-
 +
|bgcolor=#efefef| HITK  
 +
|bgcolor=#efefef| [ <Taste> ]
 +
|-
 +
|
 +
| "Drückt" die Taste der Fernbedienung. Ohne Parameter werden die Namen aller gültigen Tasten aufgelistet.
 +
|-
 +
|bgcolor=#efefef| LSTC  
 +
|bgcolor=#efefef| [ <Nummer> | <Name> ]
 +
|-
 +
|
 +
| Ohne Parameter werden alle Kanäle aufgelistet. Wird einen Nummer angegeben, wird nur dieser Kanal aufgelistet, bei Angabe eines Names alle Kanäle,  bei denen dieser im Namen auftaucht.
 +
|-
 +
|bgcolor=#efefef| LSTE  
 +
|bgcolor=#efefef| [ <Kanal> ] [ now | next | at <Zeit> ]
 +
|-
 +
|
 +
| Ohne Parameter werden alle EPG-Daten ausgegeben. Wird ein Kanal angegeben (entweder mit Nummer, oder mit Kanal-ID), werden nur die EPG-Daten dieses Senders angezeigt. 'now, 'next' 'at <time>' sind Filter.
 +
|-
 +
|bgcolor=#efefef| LSTR  
 +
|bgcolor=#efefef| [ <Nummer> ]
 +
|-
 +
|
 +
| Ohne Parameter werden alle Aufnahmen aufgelistet. Sonst wird die Zusammenfassung der angegebenen Aufnahme angezeigt.
 +
|-
 +
|bgcolor=#efefef| LSTT  
 +
|bgcolor=#efefef| [ <Nummer> ]
 +
|-
 +
|
 +
| Ohne Parameter werden alle Timer (programmierte Aufnahmen) aufgelistet, Sonst nur der angegeben Timer.
 +
|-
 +
|bgcolor=#efefef| MESG  
 +
|bgcolor=#efefef| [ <Nachricht> ]
 +
|-
 +
|
 +
| Zeigt eine Nachricht über das OSD auf dem Fernseher an. Ohne Parameter wird die aktuell anhängige Nachricht (wenn vorhanden) angezeigt. Sobald das OSD verfügbar ist, wird die Nachricht für ein paar Sekunden angezeigt, wenn die vorige Nachricht noch nicht angezeigt werden konnte, wird sie überschrieben.
 +
|-
 +
|bgcolor=#efefef| MODC  
 +
|bgcolor=#efefef| <Nummer> <Einstellungen>
 +
|-
 +
|
 +
| Ändert die Kanaleinstellungen. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTC Befehls.
 +
|-
 +
|bgcolor=#efefef| MODT  
 +
|bgcolor=#efefef| <Nummer> on | off | <Einstellungen>
 +
|-
 +
|
 +
| Ändert einen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls. Mit 'on und 'off' kann ein Timer einfach ein- und ausgeschaltet werden.
 +
|-
 +
|bgcolor=#efefef| MOVC  
 +
|bgcolor=#efefef| <Nummer> <nach>
 +
|-
 +
|
 +
| Verschiebt einen Kanal nach <nach> in der Kanalliste.
 +
|-
 +
|bgcolor=#efefef| MOVT  
 +
|bgcolor=#efefef| <Nummer> <nach>
 +
|-
 +
|
 +
| Verschiebt einen Timer nach <nach> in der Timerliste.
 +
|-
 +
|bgcolor=#efefef| NEWC  
 +
|bgcolor=#efefef| <Einstellungen>
 +
|-
 +
|
 +
| Erstellt einen neuer Kanal. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTC Befehls.
 +
|-
 +
|bgcolor=#efefef| NEWT  
 +
|bgcolor=#efefef| <Einstellungen>
 +
|-
 +
|
 +
| Erstellt einen neuen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls.
 +
|-
 +
|bgcolor=#efefef| NEXT  
 +
|bgcolor=#efefef| [ abs | rel ]
 +
|-
 +
|
 +
| Zeigt den nächsten Timer an. Ohne Parameter geschieht die Ausgabe in menschenlesbarer Form. Mit dem Parameter 'abs' wird die absolute Zeit in Sekunden angegeben, während beim Parameter 'rel' die Zeit von jetzt bis zur Aufnahme in Sekunden angeben wird. Wenn die mit 'abs' zurückgegeben Zeit in der Vergangenheit liegt, bzw. die mit 'rel' zurückgegebene Zeit negativ ist, findet die Aufname des Timers gerade statt. Der Erste Wert der ausgegeben wird stellt die Nummer des Timers dar.
 +
|-
 +
|bgcolor=#efefef| PUTE
 +
|bgcolor=#efefef|
 +
|-
 +
|
 +
| Fügt EPG-Daten ein. Das Format der Daten ist in der Manualpage vdr(5) beschrieben und muss genau eingehalten werden. Ein einzelner Punkt in einer Zeile beendet die Eingabe und sorgt für die Weiterverarbeitung der eingegeben Daten, die bislang nur zwischengespeichert wurden.
 +
|-
 +
|bgcolor=#efefef| SCAN
 +
|bgcolor=#efefef|
 +
|-
 +
|
 +
| Erzwingt einen EPG-Scan. Auf Systemen mit nur einer [[DVB-Karte]] wird der Scan auf dieser durchgeführt, wenn gerade keine Aufnahme läuft.
 +
|-
 +
|bgcolor=#efefef| STAT  
 +
|bgcolor=#efefef| disk
 +
|-
 +
|
 +
| Liefert Informationen über den Festplattenspeicher-Verbrauch (Total, Frei, Prozent).
 +
|-
 +
|bgcolor=#efefef| UPDT  
 +
|bgcolor=#efefef| <Einstellungen>
 +
|-
 +
|
 +
| Aktualisiert einen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls. Wenn der Timer noch nicht existiert, wird er erstellt.
 +
|-
 +
|bgcolor=#efefef| VOLU  
 +
|bgcolor=#efefef| [ <Nummer> | + | - | mute ]
 +
|-
 +
|
 +
| Setzt die Lautstärke entweder direkt (Bereich: 0 - 255), oder Schrittweise. Mit mute wird der Ton stumm geschaltet. Ohne Parameter wird die aktuelle Lautstärke angezeigt.
 +
|-
 +
|bgcolor=#efefef| QUIT
 +
|bgcolor=#efefef|
 +
|-
 +
|
 +
| Beendet die Verbindung zu VDR (SVDRP). Alternativ kann man auch CTRL-D drücken.
 +
|}
 +
 
 +
 
 +
== SVDRP Antwort Codes ==
 +
214 Hilfetext
 +
215 EPG Eintrag
 +
220 VDR-Service bereit
 +
221 VDR-Service schließt Sende-Kanal
 +
250 Angeforderte Aktion okay, beendet
 +
354 Start senden von EPG-Daten
 +
451 Angeforderte Aktion abgebrochen: lokaler Fehler bei der Bearbeitung
 +
500 Syntax-Fehler, unbekannter Befehl
 +
501 Syntax-Fehler in Parameter oder Argument
 +
502 Befehl nicht implementiert
 +
504 Befehls-Parameter nicht implementiert
 +
550 Angeforderte Aktion nicht ausgeführt
 +
554 Transaktion fehlgeschlagen

Version vom 11. Juli 2004, 01:34 Uhr

Inhaltsverzeichnis

Einführung

Das Simple VDR Protokoll (svdrp) erlaubt es per simpler TCP-Verbindung auf Port 2001 einfache Befehle an den VDR zu schicken, um z.B. um ein Nachricht auf dem Fernseher anzuzeigen oder VDR fernzusteuern.

Zum Beispiel kann ein simples Shell-Script einen beliebigen Text ausgeben, beispielweise wenn das Telefon klingelt oder eine Mail ankam:

#!/bin/sh

netcat -w 10 /hostname/ 2001 <<eof
mesg $1
quit
eof

/hostname/ ist dabei durch den Hostnamen des VDR zu ersetzen. Als Parameter übergibt man dam Script einfach den Text. Weitere Beispiele.

Bevor man jedoch von einem Host aus den vdr ansprechen darf, muß man ihn dafür freischalten. Dies geschieht über die Datei svdrphosts.conf im Konfigurationsverzeichnis des VDR, per Default also /video. Der Aufbau ist recht simpel:

IP-Adresse[/Netzmaske]

Also einfach zeilenweise die erlaubten Host-IPs eintragen, oder wenn man gleich ganze Netzblöcke freigeben will, eine IP und eine Maske dazu, natürlich in der ultra modernen Schreibweise der Anzahl der Bits (also /24, usw.).

Die Befehle

Übersicht

CHAN  CLRE  DELC  DELR  DELT
GRAB  HELP  HITK  LSTC  LSTE
LSTR  LSTT  MESG  MODC  MODT
MOVC  MOVT  NEWC  NEWT  NEXT
PUTE  STAT  UPDT  VOLU  QUIT

Beschreibung

CHAN [ + | - | <Nummer> | <Name> | <ID> ]
Schaltet einen Kanal hoch, runter, oder springt zur angegebenen Kanalnummer, zum Kanalnamen, oder zu Kanal-ID. Ohne Parameter, bzw. nach einem Kanalwechsel wird die Nummer und der Name des aktuellen Kanals angezeigt.
CLRE
Löscht die EPG-Daten.
DELC <Nummer>
Löscht den Kanal.
DELR <Nummer>
Löscht die Aufnahme mit der angegebenen Nummer. Um die Aufnahmenummer zu erhalten muss vorher der LSTR Befehl ausgeführt werden. Die Nummern ändern sich durch löschen anderer Aufnahmen nicht. ACHTUNG: AUFNAHMEN WERDEN OHNE VORHERIGE NACHFRAGE GELÖSCHT!!
DELT <Nummer>
Löscht einen Timer.
GRAB <Dateiname> [ jpeg | pnm [ <Qualität> [ <Breite> <Höhe> ] ] ]
Speichert das aktuelle Fernsehbild im JPEG oder PNM Format auf Festplatten. Bei JPEG kann man die Qualität festlegen (Standard: maximum). Über Breite und Höhe lässt sich ein Ausschnitt definieren (Standard: Vollbild).
HELP [ <Begriff> ]
Hilfe.
HITK [ <Taste> ]
"Drückt" die Taste der Fernbedienung. Ohne Parameter werden die Namen aller gültigen Tasten aufgelistet.
LSTC [ <Nummer> | <Name> ]
Ohne Parameter werden alle Kanäle aufgelistet. Wird einen Nummer angegeben, wird nur dieser Kanal aufgelistet, bei Angabe eines Names alle Kanäle, bei denen dieser im Namen auftaucht.
LSTE [ <Kanal> ] [ now | next | at <Zeit> ]
Ohne Parameter werden alle EPG-Daten ausgegeben. Wird ein Kanal angegeben (entweder mit Nummer, oder mit Kanal-ID), werden nur die EPG-Daten dieses Senders angezeigt. 'now, 'next' 'at <time>' sind Filter.
LSTR [ <Nummer> ]
Ohne Parameter werden alle Aufnahmen aufgelistet. Sonst wird die Zusammenfassung der angegebenen Aufnahme angezeigt.
LSTT [ <Nummer> ]
Ohne Parameter werden alle Timer (programmierte Aufnahmen) aufgelistet, Sonst nur der angegeben Timer.
MESG [ <Nachricht> ]
Zeigt eine Nachricht über das OSD auf dem Fernseher an. Ohne Parameter wird die aktuell anhängige Nachricht (wenn vorhanden) angezeigt. Sobald das OSD verfügbar ist, wird die Nachricht für ein paar Sekunden angezeigt, wenn die vorige Nachricht noch nicht angezeigt werden konnte, wird sie überschrieben.
MODC <Nummer> <Einstellungen>
Ändert die Kanaleinstellungen. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTC Befehls.
MODT <Nummer> on | off | <Einstellungen>
Ändert einen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls. Mit 'on und 'off' kann ein Timer einfach ein- und ausgeschaltet werden.
MOVC <Nummer> <nach>
Verschiebt einen Kanal nach <nach> in der Kanalliste.
MOVT <Nummer> <nach>
Verschiebt einen Timer nach <nach> in der Timerliste.
NEWC <Einstellungen>
Erstellt einen neuer Kanal. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTC Befehls.
NEWT <Einstellungen>
Erstellt einen neuen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls.
NEXT [ abs | rel ]
Zeigt den nächsten Timer an. Ohne Parameter geschieht die Ausgabe in menschenlesbarer Form. Mit dem Parameter 'abs' wird die absolute Zeit in Sekunden angegeben, während beim Parameter 'rel' die Zeit von jetzt bis zur Aufnahme in Sekunden angeben wird. Wenn die mit 'abs' zurückgegeben Zeit in der Vergangenheit liegt, bzw. die mit 'rel' zurückgegebene Zeit negativ ist, findet die Aufname des Timers gerade statt. Der Erste Wert der ausgegeben wird stellt die Nummer des Timers dar.
PUTE
Fügt EPG-Daten ein. Das Format der Daten ist in der Manualpage vdr(5) beschrieben und muss genau eingehalten werden. Ein einzelner Punkt in einer Zeile beendet die Eingabe und sorgt für die Weiterverarbeitung der eingegeben Daten, die bislang nur zwischengespeichert wurden.
SCAN
Erzwingt einen EPG-Scan. Auf Systemen mit nur einer DVB-Karte wird der Scan auf dieser durchgeführt, wenn gerade keine Aufnahme läuft.
STAT disk
Liefert Informationen über den Festplattenspeicher-Verbrauch (Total, Frei, Prozent).
UPDT <Einstellungen>
Aktualisiert einen Timer. Das Format von <Einstellungen> muss das gleiche sein wie das des LSTT Befehls. Wenn der Timer noch nicht existiert, wird er erstellt.
VOLU [ <Nummer> | + | - | mute ]
Setzt die Lautstärke entweder direkt (Bereich: 0 - 255), oder Schrittweise. Mit mute wird der Ton stumm geschaltet. Ohne Parameter wird die aktuelle Lautstärke angezeigt.
QUIT
Beendet die Verbindung zu VDR (SVDRP). Alternativ kann man auch CTRL-D drücken.


SVDRP Antwort Codes

214 Hilfetext
215 EPG Eintrag
220 VDR-Service bereit
221 VDR-Service schließt Sende-Kanal
250 Angeforderte Aktion okay, beendet
354 Start senden von EPG-Daten
451 Angeforderte Aktion abgebrochen: lokaler Fehler bei der Bearbeitung
500 Syntax-Fehler, unbekannter Befehl
501 Syntax-Fehler in Parameter oder Argument
502 Befehl nicht implementiert
504 Befehls-Parameter nicht implementiert
550 Angeforderte Aktion nicht ausgeführt
554 Transaktion fehlgeschlagen