VLC Media Player mit HTTPMOD: Unterschied zwischen den Versionen

Aus FHEMWiki
(Seite erstellt und Struktur angelegt)
 
(→‎Device erstellen: Inhalt erstellt)
Zeile 6: Zeile 6:


== Device erstellen ==
== Device erstellen ==
Das VLC Device wird mittels des Moduls [[HTTPMOD]] angelegt. Dafür ist eine URL in der folgenden Form anzugeben:
define vlc HTTPMOD http://<host>:<port>/requests/status.xml 5
Dabei sind <code>&lt;host&gt;</code> und <code>&lt;port&gt;</code> die Angaben für den Hostnamen und Ports des wie im Abschnitt [[#VLC_als_Server_starten]] beschrieben eingerichteten VLC Servers. Die Zahl am Ende gibt das Intervall (in Sekunden) an, nach dem der Server automatisch abgefragt und die Readings aktualisiert werden. Dieser Wert kann bei Bedarf angepasst werden.
Um später Befehle an den Server absetzen zu können, muss noch eine Vorlage für die dafür aufgerufene angegebene URL angegeben werden. Dies lässt sich wie folgt realisieren:
attr vlc setURL http://<host>:<port>/requests/status.xml?command=%%cmd%%
Der Befehl wird beim Aufruf durch einen regulären Ausdruck ersetzt. Dafür dient folgende Angabe:
attr vlc replacement01Regex %%cmd%%
Als letztes muss noch der Login am Server mit dem wie in Abschnitt [[#VLC_als_Server_starten]] beschrieben eingerichteten Passwort erlaubt werden. Dies ist etwas Trickreich, da VLC nur ein Passwort, aber einen leeren Benutzernamen erwartet. Um diese zu übergeben, muss die [http://de.wikipedia.org/wiki/HTTP-Authentifizierung#Basic_Authentication HTTP Authentifizierung] manuell eingerichtet werden. Dafür muss zunächst der String <code>:&lt;password&gt;</code> als [http://de.wikipedia.org/wiki/Base64 Base64] codiert werden. Dies kann z.B. mit einem Online-Converter geschehen, oder unter Linux mit dem Befehl
echo -n ":<password>" | base64
Das Ergebnis wird dann in das VLC Device eingetragen:
attr vlc requestHeader1 Authorization: Basic <base64>
attr vlc getHeader1 Authorization: Basic <base64>
attr vlc setHeader1 Authorization: Basic <base64>
Alternativ kann auch die HTTP URL des VLC Servers über einen Browser und einen Proxy wie [http://portswigger.net/burp/ BurpSuite] aufgerufen werden, und dann beobachtet werden, welchen Header der Browser für die Anmeldung an den Server schickt.


== Readings und Befehle ==
== Readings und Befehle ==

Version vom 16. Dezember 2019, 02:01 Uhr


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


Der VLC Media Player besitzt ein HTTP Interface, das eine Fernsteuerung mittels FHEM möglich macht. Dieses HOWTO beschreibt, wie VLC über das Modul HTTPMOD eingebunden und Kontrollelemente eingerichtet werden können.

VLC als Server starten

Device erstellen

Das VLC Device wird mittels des Moduls HTTPMOD angelegt. Dafür ist eine URL in der folgenden Form anzugeben:

define vlc HTTPMOD http://<host>:<port>/requests/status.xml 5

Dabei sind <host> und <port> die Angaben für den Hostnamen und Ports des wie im Abschnitt #VLC_als_Server_starten beschrieben eingerichteten VLC Servers. Die Zahl am Ende gibt das Intervall (in Sekunden) an, nach dem der Server automatisch abgefragt und die Readings aktualisiert werden. Dieser Wert kann bei Bedarf angepasst werden.

Um später Befehle an den Server absetzen zu können, muss noch eine Vorlage für die dafür aufgerufene angegebene URL angegeben werden. Dies lässt sich wie folgt realisieren:

attr vlc setURL http://<host>:<port>/requests/status.xml?command=%%cmd%%

Der Befehl wird beim Aufruf durch einen regulären Ausdruck ersetzt. Dafür dient folgende Angabe:

attr vlc replacement01Regex %%cmd%%

Als letztes muss noch der Login am Server mit dem wie in Abschnitt #VLC_als_Server_starten beschrieben eingerichteten Passwort erlaubt werden. Dies ist etwas Trickreich, da VLC nur ein Passwort, aber einen leeren Benutzernamen erwartet. Um diese zu übergeben, muss die HTTP Authentifizierung manuell eingerichtet werden. Dafür muss zunächst der String :<password> als Base64 codiert werden. Dies kann z.B. mit einem Online-Converter geschehen, oder unter Linux mit dem Befehl

echo -n ":<password>" | base64

Das Ergebnis wird dann in das VLC Device eingetragen:

attr vlc requestHeader1 Authorization: Basic <base64>
attr vlc getHeader1 Authorization: Basic <base64>
attr vlc setHeader1 Authorization: Basic <base64>

Alternativ kann auch die HTTP URL des VLC Servers über einen Browser und einen Proxy wie BurpSuite aufgerufen werden, und dann beobachtet werden, welchen Header der Browser für die Anmeldung an den Server schickt.

Readings und Befehle

Playliste

Todo: Auslesen der Attribute der Playliste - fortlaufende Nummer und Titel


Dateibrowser

Links