[[TranslatedPages]] ---- '''9.4 E2WebIfAPI''' [=#point9.4] ([wiki:Wiki#point0 Inhaltsverzeichnis]) ([WikiStart#point0 Sprachauswahl]) ---- == Einführung == Enigma2 Webinterface (WebIf) API wurde für Dreambox definiert. Es ist ein Protokoll, welches die Steuerung von Dreambox mittels HTTP-Anfragen erlaubt. Typische Steuerungsaufgaben sind: * Programmierung (Timer) und Wiedergabe von Aufnahmen * Live-Streaming (TV und Radio) * EPG-Funktionen (Anzeige, Suche) * Fernbedienung (Remote Control) Einen guten Überblick zum Protokoll findet Ihr im [http://dream.reichholf.net/wiki/Enigma2:WebInterface DreamboxWIKI]. == Motivation == Für TitanNit wurde die Android-App [TiMote#point9.1 tiMote] entwickelt. Mit dieser App steht die oben beschriebene Funktionalität zur Verfügung. D.h. jeder der ein Android-Handy bzw. -Tablett besitzt, kann den TitanNit-Receiver steuern und sogar auf dem Handy fernsehen. Das ist eine coole Sache, oder? Dieses Glück hat jedoch der Besitzer eines iOS-Geräts (iPhone, iPad) nicht mehr. Man kann zwar auch mit einem Web-Browser plattformunabhängig (Windows, Linux, Android, iOS) den Receiver steuern, dies ist aber nicht so komfortabel wie mit tiMote. Anderseits gibt es sowohl für iOS als auch Android schon fertige Apps für Dreambox-Receiver. Diese Apps basieren auf dem E2-WebIf-Protokoll. Könnte man nicht diese Apps ebenfalls für TitanNit-Receiver verwenden statt eine neue App für iOS zu entwickeln? == Die Lösung == TitanNit besitzt schon ein eigenes Protokoll, welches jedoch mit Enigma2 WebIf nicht kompatibel ist. Nach kurzer Analyse wurde festgestellt, dass eine Konvertierung der E2-Anfragen auf TitanNit-Anfragen nicht so schwer ist. Deswegen wurde ein E2-Web-Server (e2webserv) entwickelt, welches das Enigma2 WebIf implementiert. Dieser Server empfängt die E2-Anfragen, delegiert die Aufrufe zum lokalen TitanNit Web-Server und die TiatnNit-Antworten wandelt zurück ins XML-Format, welches vom E2-Client erwartet wird. Auf diese Weise wird die TitanNit-Box jetzt offen für die vorhandene E2-Clientsoftware. == Voraussetzungen == * Web-Server muss auf dem Receiver aktiviert werden * e2webserv muss auf dem Receiver installiert werden == iOS-Apps == Folgende Apps habe ich auf meinem iPad2: * dreaMote * dreaMote Lite * e2RemoteHD * Dreambox Live Falls Ihr im App-Store nichts kaufen wollt, dann kann ich dreaMote Lite empfehlen. Zusätzlich zu der App benötigt Ihr einen Player. Ich habe folgende Player ausprobiert, welche bei mir gut funktionieren: * GoodPlayer * BUZZ Player * OPlayerHD Lite * VLC Player VLC und OPlayerHD Lite sind frei. == XBMC == Falls Ihr die Media-Center-Software [http://xbmc.org/ XBMC] im Einsatz habt, so könnt Ihr mittels Live-TV-Plugin VU+ Euren TitanNit-Receiver direkt einbinden. XBMC läuft auf einem PC sowohl unter Windows als auch Linux, ist aber auch für Raspberry Pi verfügbar. == VLC == Mit dem installierten e2webserv könnt Ihr Live-Streaming nur mittels [http://www.videolan.org/vlc/ VLC] (ohne extra Software) auf einem PC (Windows oder Linux) genießen. Ihr braucht dafür nicht die Kanäle manuell umschalten, es passiert alles automatisch. Damit dies möglich wird, braucht Ihr eine M3U-Playliste. Solche Playliste könnt Ihr pro Favorit generieren lassen und auf dem PC speichern. Danach einfach M3U-Datei mit VLC öffnen und das gewünschte Programm anklicken. Wie exportiert man die M3U-Datei für eine bestimmte Favoritenliste? In einem Web-Browser einfach die gewünschte Adresse angeben. Beispiel (Favorit heißt "Polish"): [http://192.168.1.1:8080/web/services.m3u?bRef=Polish] Bei dem Link muss nur die eigene IP-Adresse angegeben werden und bei Namen mit Leerzeichen sollte man "%20" statt des Leerzeichen nehmen. Beispiel (Favorit heißt "Mein TV", Receiver-IP: 192.168.0.10): [http://192.168.0.10:8080/web/services.m3u?bRef=Mein%20TV] == Client-Konfiguration == Bitte bei dem E2-Client folgendes konfigurieren: * IP-Adresse des Receivers * Port: 8080 * Streaming Port: 8001 Zu beachten ist, dass SSL nicht unterstützt wird. Unten sieht man eine Beispielkonfiguration für dreaMote. [[Image(DreaMote.png, 384px)]] == e2webserv.conf == Die Konfiguration für den Server muss man bei Bedarf manuell anpassen. Bei Standard-TitanNit-Konfiguration sollten keine Änderungen in e2webserv.conf notwendig sein. Bei einer Flash-Installation liegt die Konfigurationsdatei '''e2webserv.conf''' in dem Verzeichnis '''/mnt/swapextensions/etc''' Hier ist der Inhalt: {{{ # e2 web port port=8080 # e2 data port dataPort=8001 # titan web port titanPort=80 # titan data port titanDataPort=22222 # titan host (change it if e2webserv is not running locally on the receiver) titanHost=127.0.0.1 # automatic switching of channels # It is useful if you don't want manually switch a channel on receiver with a single tuner. # If it is set to false and you have a single tuner the you can stream only channels located # on the same transponder as the current channel active on the receiver. autoZap=true # log output file logFile=/tmp/e2webserv.log # maximal log file size in KB. Set it to 0 (default 10KB) to disable logging (maximal allowed value is 1024). # When the file limit is reached a backup of the current file is created. # It means maximally 2 x maxLogSize KB will be used. maxLogSize=10 # thread pool size (1..8) threadPool=2 # Directory where the transponder and bouquet files are located. # You don't need to specify it, it will be automatically discovered. # But if you you start e2webserv not on the receiver (but e.g. on your Linux server or Windows computer) then you # should copy the settings (channel, transponder, provider and all bouquets file) and specify here the location on the local computer. titanDir=/mnt/settings }}} == Links == * Enigma2 Web-API im [http://www.aaf-digital.info/forum/showthread.php?90948-Enigma2-Web-API-f%FCr-Titan AAF-Forum] * Sources auf [https://github.com/gswiatek/e2api4titan GitHub] [[br]] [[br]]