SwitchPlugin

Aus TV-Browser Wiki
Version vom 6. April 2015, 14:06 Uhr von Mk⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Was ist das?

Das Switch-Plugin dient dazu ein externes Programm mit einem Parameter zu starten. Damit werden z.B. TV-Sender einer TV-Applikation umgeschaltet.

Einstellungen

Einstellungen switchplugin.jpg

Zu startendes externes Programm
Über Einstellungen (Strg+S) -> Plugin-SwitchPlugin gelangen Sie in die Einstellungen zum SwitchPlugin. Hier wird unter "Zu startendes externes Programm" die TV-Applikation angegeben. Diese muss auch Parameter annehmen können.
Parameter
Bei "Parameter" geben Sie die an die Applikation zu übergebende Parameter an.
Sonstige Einstellungen
Unter "Sonstige Einstellungen" kann der Text angepasst werden, der einem zum Umschalten auffordert.
Der Kontextmenüeintrag dient der Identifizierbarkeit des Menüpunktes, wenn man mit der rechten Maustaste auf eine Sendung klickt.
Sender-Einstellungen
Damit auch wirklich der richtige Sender in der TV-Applikation eingeschaltet werden kann, muss die Senderliste angepasst werden. Hier werden nur die Sender aufgeführt, die man im TV-Browser zur Anzeige definiert hat. Der "Externe Sender-Name" wird an die TV-Applikation als Parameter übergeben. Es sollten also auch Werte sein, die die Applikation beherrschen und umsetzen kann.

Einstellungen für TV-Anwendungen

DVB Dream (Nummer als externer Sender-Name)
/chno={channel_name_external}
DVB Dream (Name als externer Sender-Name)
/chname='{channel_name_external}'
DVBViewer (Nummer oder Name als externer Sender-Name)
-c{channel_name_external}
WinTV32
-nc -c{channel_name_external}
WinTV2000
-c{channel_name_external}

Weitere Einstellungen für WinTV sind auf der Webseite von Hauppauge dokumentiert.

Terratec Home Cinema (THC)

Das Script ein einen Texteditor kopieren und als "switch_channel.vbs" speichern. Natürlich müssen der Benutzername die IP und das Passwort entsprechend angepasst werden. Die entsprechenden Werte könnt Ihr im HTC unter "Optionen - Netzwerk - Netzwerkfernbedienung (Telenet)" nachschauen.


  Option Explicit
  Dim objShell
  Set objShell = CreateObject("WScript.Shell")
  objShell.run "telnet 127.0.0.1"
  WScript.Sleep 500
  
  'Anmelden
  objShell.SendKeys "zeus{enter}"    'Benutzer
  objShell.SendKeys "hermes{enter}"  'Passwort
  
  
  'enter command
  objShell.SendKeys "ch " + WScript.Arguments(0) + "{enter}"
  WScript.Sleep 500
  
  'close PuTTY window
  objShell.SendKeys "exit"
  objShell.SendKeys "{enter}"
  WScript.Sleep 500
  objShell.SendKeys "{enter}"
  
  
  Set objShell = Nothing
  WScript.Quit 0
  
  
  
  'Commands currently supported:
  
  'help                   this help
  
  'channel                display the current channel
  'ch                        ... short form
  'channel +              watch the next channel
  'ch +                      ... short form
  'channel -              watch the previous channel
  'ch -                      ... short form
  'channel <new channel>  set the current channel
  'ch <new channel>          ... short form
  
  'favorites              display the current favorites list
  'fav                       ... short form
  'favorites <new list>   set the current favorites list
  'fav <new list>            ... short form
  
  'list favorites         show all favorites lists
  'list fav                  ... short form
  'list channels          show all channels of the current favorite list
  'list ch                   ... short form
  
  'Parameter              - It's not required to enclose arguments in quotes
                         'channel Das Erste' is valid
  '                       - are case sensitive
  
  'info                   display info about current stream
  'timer                  display current timer list
  
  'play                   simulate a keystroke on 'play'
  'pause                  simulate a keystroke on 'pause'
  'rec                    simulate a keystroke on 'rec'
  'stop                   simulate a keystroke on 'stop'
  
  'multicast              get multicast state (multicast IP and port when multicast is on)
  'multicast <on|off>     enable/disable multicast
  'echo <on|off>          enable/disable echo for Telnet
  'exit                   close Telnet session
  'exitthc                close TerraTec Home Cinema


Im TV Browser muss das VB-Script mit folgenden Parametern eingetragen werden. Natürlich muss es auch unter dem Angegebenen Pfad gefunden werden ;-) Plugin config1.jpg


Es ist wichtig, die im 2. Bild eingetragenen Sendernamen genauso zu schreiben, wie sie im THC in der Favoriten Liste stehen. Plugin config2.jpg

Funktionsweise

Aus dem Hauptfenster vom TV-Browser aus kann eine Sendung mit der rechten Maustaste angeklickt werden. Im Kontextmenü erscheint der Eintrag "Umschalten", den man anklickt. Es erscheint ein Fenster mit der Frage ob das externe Programm gestartet werden soll.

Frage1 switchplugin.jpg

Man hat hier noch die Wahl des Abbruches. Bestätigt man mit Ja, so wird das externe Programm gestartet und gleichzeitig der richtige Sender eingestellt. Ist die Applikation schon am Laufen, so wird nur der Sender eingestellt.

Besondere Anwendung

Im TV-Browser hat man die Möglichkeit Erinnerungen an ein anderes Plugin weiterzureichen. Diese Option ist in den Einstellungen (Strg+S), Plugins-Erinnerer einstellbar. Wird die Erinnerung an das SwitchPlugin weitergereicht, wird bei einer anstehenden Erinnerung gefragt ob die TV-Applikation gestartet werden soll (nachfolgendes Bild).

Frage2 switchplugin.jpg

Somit kann es sehr komfortabel eingesetzt werden.

Weitere Anwendung

Mit dem SwitchPlugin ist es außerdem möglich externe Geräte, wie z.B. Digital Receiver zu steuern. Vorraussetzung ist ein USB UIRT oder Y.A.R.D. (Weitere IR-transceiver wie z.B. Microsoft MCE Remote sind in Arbeit). Mit diesen Geräten kann man vom Computer aus Infrarotsignale senden. Weiterhin benötigt man die Open Source Software EventGhost die als Verbindung zwischen TVB und dem Infrarotgerät dient. Eine genaue Anleitung (am Beispiel eines Humax PR Fox C Digital Receivers) findet man im Forum von EventGhost.

Technisat Receiver über RS232 Umschalten

Ältere Technisat Receiver haben nur eine RS232 Schnittstelle,trotzdem können diese Geräte (über ein angeschlossenes Serielles Kabel) fernbedient werden. Ein einfaches 1:1 9-poliges D-Sub Kabel wie es für die Updatefunktion benutzt wird reicht aus (kein Nullmodemkabel), die Länge ist relativ Unkritisch, 10 Meter geht immer. (getestet am Digit D)

Parameter

Ein Script übernimmt die Steuerung eines DOS-Fensters welches die Daten an die COM Schnittstelle sendet. Das Script in einen Texteditor kopieren und als "switch_channel.vbs" speichern. Mit diesem Script wird COM1 angesprochen, bei Bedarf com1 in gewünschte Nummer ändern.

 Option Explicit
 Dim objShell
 Set objShell = CreateObject("WScript.Shell")
 objShell.run "cmd", 2
 WScript.Sleep 600
     
 'enter command
 objShell.SendKeys "type " + WScript.Arguments(0) + ">com1" + "{enter}"
 WScript.Sleep 500
 
 'close window
 objShell.SendKeys "exit"
 objShell.SendKeys "{enter}"
 WScript.Sleep 2500
   
 Set objShell = Nothing
 WScript.Quit 0


Danach die Parameter im SwitchPlugin wie folgt eintragen. Pfade können frei angepasst werden.

SpParameter.png

Sender

Es ist Sinnvoll beim Start des Rechners eine .bat Datei im Autostart zu haben die folgenden Inhalt hat.

mode com1:115000,n,8,1

dadurch wird der Modus Eingeschaltet den die Box benötigt.

Zu jedem Sender muss eine Datei vorliegen die die Codes zum Umschalten beinhaltet. Dabei ist für jeden zu sendenden Befehl eine neue Zeile nötig die immer mit ltt0001 beginnt und danach den Code beinhaltet. Der Pfad zu den Dateien muss mit dem Pfad des Scriptes übereinstimmen.

Die Codierung ist einfach; 00=0, 01=1, ...09=9. Die 24 ist die OK Taste auf der Fernbedienung. Leider können nur Senderplätze bis 99 angesprochen werden.

Beispiel: Umschaltung auf Programm 45 mit Übermittlung der 'OK' Taste (sofortige Ausführung der Umschaltung)

ltt000104
ltt000105
ltt000124

Beispiel: Umschaltung auf Programm 1 mit Übermittlung der 'OK' Taste (sofortige Ausführung der Umschaltung)

ltt000101
ltt000124

Die Dateien können freie Namen haben (1.txt, ard.dat usw.), sie werden dann als externer Sender-Name unter Sender eingetragen.


SpSender.png

Sonstige Einstellungen

Sind ja irgendwie Selbsterklärend... wer unkompliziertes Umschalten möchte deaktiviert die Sicherheitsabfrage.

SpSonstige.png


Danach kann über das Kontextmenü (rechte Maustaste) im TV-Browser auf den Kanal Umgeschaltet werden.

SpMenue.png


Kathrein SAT-Receiver umschalten

Kathrein SAT-Receiver ab UFS-912 lassen sich über ihre Netzwerkschnittstelle UFSControll ebenfalls vom TV-Browser fernsteuern.

Damit TV-Browser http Kommandos senden kann wird zusätzlich cURL benötigt. Eine Bezugsquellen-Übersicht von cURL für verschiedene OS findet man zum Beispiel hier: http://curl.haxx.se/download.html Für cURL sind nach der Standard Installation keine weitere Einstellungen nötig.

Getestet wurde folgende Konfiguration unter Win7 x64 mit einem UFS-913, sollte sich aber auch mit anderen Betriebssystemen und Receivern nutzen lassen. Beim SwitchPlugin ist auf der Seite "Applikation/Parameter" unter "zu startendes externes Programm" folgende Zeile einzutragen:

"C:\Program Files\cURL\bin\curl"

Die Anführungszeichen sind hier notwendig, der Pfad ist gegebenenfalls anpassen. Als "Parameter" ist folgende Zeile einzutragen:

-X GET http://192.168.178.12:9000/cmds/changeChannel/channel-no={channel_name_external}

Die zutreffende Netzwerkadresse (im Beispiel: "192.168.178.12") ist im Kathrein SAT-Receiver bei den Netzwerkeinstellungen zu finden und hier entsprechend anzupassen.

Beim SwitchPlugin sind auf der Unterseite "Sender" als "externer Sendername" noch die Nummern einzutragen unter der die Sender im Kathrein SAT-Receiver einsortiert wurden und mit der sie auch über die Fernbedienung aufgerufen werden:

1 ... 9999

Weitere Einstellungen sind nicht zwingend notwendig, machen die Umschaltfunktion aber erst richtig komfortabel. (Allgemeine Einstellungen/Maustasten, Allgemeine Einstellungen//Kontextmenue, Plugins/Erinnerer/Erinnerte Sendung weitergeben an...) Hinweis: Hier wurde nur die Umschaltung getestet, UFSControll sollte aber auch eine Einbindung bei der Aufnahmesteuerung ermöglichen.

Das SwitchPlugin als Bestandteil einer offenen bidirektionalen Schnittstelle

In den bisherigen Abschnitten wurde das SwitchPlugin stets in Verbindung mit einer konkreten externnen Anwendung betrachtet. Das SwitchPlugin kann aber auch in einem viel allgemeineren Kontext gestellt werden. So besteht in Kombination mit einer Filterkomponente vom Typ BeanShell-Filter bzw. einer CSV-Datei-Filterkomponente und dem Plugin Filter-Info-Icons die Möglichkeit zur Konfiguration einer offenen bidirektionalen Schnittstelle.