VLC Media Player mit HTTPMOD: Unterschied zwischen den Versionen

Aus FHEMWiki
(Seite erstellt und Struktur angelegt)
 
(→‎Readings und Befehle: random, loop, repeat hinzugefügt,)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
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 ==
Der VLC Media Player stellt über das HTTP Interface eine Reihe von Statusmeldungen und Steuerbefehlen bereit. Die folgende Liste zeigt, wie diese in FHEM eingebunden werden können. Dafür müssen die genannten Attribute gesetzt werden, und es werden die darunter gelisteten Readings und Set-Befehle erstellt.
=== Zufällige Wiedergabe ===
Zeigt an bzw. legt fest, ob zufällige Wiedergabe aktiv ist.
==== Attribute ====
attr vlc reading01Name random
attr vlc reading01XPath-Strict /root/random/text()
attr vlc set01Name random
attr vlc set01NoArg 1
attr vlc set01Replacement01Value pl_random
==== Readings ====
* '''random''' - ''true'' wenn zufällige Wiedergabe aktiv ist, anderenfalls ''false''.
==== Set-Befehle ====
Umschalten (negieren der aktuellen Einstellung) der zufälligen Wiedergabe:
set vlc random
=== Endloswiedergabe ===
Zeigt an bzw. legt fest, ob Endloswiedergabe aktiv ist.
==== Attribute ====
attr vlc reading02Name loop
attr vlc reading02XPath-Strict /root/loop/text()
attr vlc set02Name loop
attr vlc set02NoArg 1
attr vlc set02Replacement01Value pl_loop
==== Readings ====
* '''loop''' - ''true'' wenn Endloswiedergabe aktiv ist, anderenfalls ''false''.
==== Set-Befehle ====
Umschalten (negieren der aktuellen Einstellung) der Endloswiedergabe:
set vlc loop
=== Dauerschleife ===
Zeigt an bzw. legt fest, ob eine Dauerschleife (Wiederholung eines bestimmten Titels) aktiv ist.
==== Attribute ====
attr vlc reading03Name repeat
attr vlc reading03XPath-Strict /root/repeat/text()
attr vlc set03Name repeat
attr vlc set03NoArg 1
attr vlc set03Replacement01Value pl_repeat
==== Readings ====
* '''repeat''' - ''true'' wenn Dauerschleife aktiv ist, anderenfalls ''false''.
==== Set-Befehle ====
Umschalten (negieren der aktuellen Einstellung) der Dauerschleife:
set vlc repeat


== Playliste ==
== Playliste ==

Aktuelle Version vom 5. Januar 2020, 01:07 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

Der VLC Media Player stellt über das HTTP Interface eine Reihe von Statusmeldungen und Steuerbefehlen bereit. Die folgende Liste zeigt, wie diese in FHEM eingebunden werden können. Dafür müssen die genannten Attribute gesetzt werden, und es werden die darunter gelisteten Readings und Set-Befehle erstellt.

Zufällige Wiedergabe

Zeigt an bzw. legt fest, ob zufällige Wiedergabe aktiv ist.

Attribute

attr vlc reading01Name random
attr vlc reading01XPath-Strict /root/random/text()
attr vlc set01Name random
attr vlc set01NoArg 1
attr vlc set01Replacement01Value pl_random

Readings

  • random - true wenn zufällige Wiedergabe aktiv ist, anderenfalls false.

Set-Befehle

Umschalten (negieren der aktuellen Einstellung) der zufälligen Wiedergabe:

set vlc random

Endloswiedergabe

Zeigt an bzw. legt fest, ob Endloswiedergabe aktiv ist.

Attribute

attr vlc reading02Name loop
attr vlc reading02XPath-Strict /root/loop/text()
attr vlc set02Name loop
attr vlc set02NoArg 1
attr vlc set02Replacement01Value pl_loop

Readings

  • loop - true wenn Endloswiedergabe aktiv ist, anderenfalls false.

Set-Befehle

Umschalten (negieren der aktuellen Einstellung) der Endloswiedergabe:

set vlc loop

Dauerschleife

Zeigt an bzw. legt fest, ob eine Dauerschleife (Wiederholung eines bestimmten Titels) aktiv ist.

Attribute

attr vlc reading03Name repeat
attr vlc reading03XPath-Strict /root/repeat/text()
attr vlc set03Name repeat
attr vlc set03NoArg 1
attr vlc set03Replacement01Value pl_repeat

Readings

  • repeat - true wenn Dauerschleife aktiv ist, anderenfalls false.

Set-Befehle

Umschalten (negieren der aktuellen Einstellung) der Dauerschleife:

set vlc repeat

Playliste

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


Dateibrowser

Links