Skip to content

daschaefer/SymconPlex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plex Home Theater PHP Module für IP-Symcon

Dieses IP-Symcon PHP Modul steuert vorhandene Plex Home Theater Clients. Außerdem werden applikationsweite Methoden zur Steuerung der Plex Home Theater Clients bereitgestellt.

Content

  1. Funktionsumfang
  2. Anforderungen
  3. Vorbereitung & Installation & Konfiguration
  4. Variablen
  5. Hintergrund Skripte
  6. Funktionen

1. Funktionsumfang

Die folgenden Funktionalitäten sind implementiert:

  • Steuerung
    • Lautstärke
    • Menu Bewegung
    • Auswahl von Titeln
    • Wiedergabesteuerung
  • Einblendungen von Nachrichten
  • Auslesen des Client Zustandes

2. Anforderungen

  • IP-Symcon 4.x installation (Linux / Windows)
  • Bereits bestehende Plex Home Theater Instanz
    • Windows
    • Linux
    • OSX
    • Rasplex
  • Netzwerkverbindung der Plex Home Theater Instanz

3. Vorbereitung & Installation & Konfiguration

Vorbereitung am Plex Home Theater Client

Damit der Plex Home Theater Client über die bereits vorhandene, aber deaktivierte JSON RPC Schnittstelle gesteuert werden kann muss im jeweiligen Programmverzeichnis folgende Datei:

  • Windows
//%APPDATA%\Plex Home Theater\userdata\guisettings.xml
  • OSX
~/Library/Application Support/Plex Home Theater/userdata/guisettings.xml
  • Linux
~/.plexht/temp/userdata/guisettings.xml
  • Rasplex
/storage/.plexht/userdata/guisettings.xml

geöffnet werden und folgender XML Eintrag gesetzt werden (üblicherweise von false auf true):

<esallinterfaces>true</esallinterfaces>

Anschließend muss die Plex Home Theater Applikation neu gestartet werden! Unter Rasplex muss der Raspberry Pi neugestartet werden!

Installation in IPS 4.x

Im "Module Control" (Kern Instanzen->Modules) die URL "git://github.com/daschaefer/SymconPlex.git" hinzufügen.
Danach ist es möglich eine neue Plex Instanz innerhalb des Objektbaumes von IP-Symcon zu erstellen.

Konfiguration

Client IP-Adresse:

Die IP-Adresse/Hostname unter dem der Plex Home Theater Client zu erreichen ist (in der Regel macht hier eine statische IP-Adressvergabe Sinn).

Client Port:

Der Port unter dem der Plex Home Theater Client zu erreichen ist. Automatisch vorbelegt ist 3005 und muss in der Regel nicht angepasst werden.

Client MAC-Adresse:

Die MAC Adresse der Netzwerkkarte des Plex Home Theater Clients. Dient dazu den Client per Wake on LAN (WOL, Magic Paket) auf zu wecken.

Client Socket:

Es wird automatisch bei der Installation der Plex Instanz ein Client Socket hinzugefügt, dieser dient der Kommunikation mit dem Plex Home Theater Client. Dieser Client Socket wird hier automatisch verlinkt und muss in der Regel nicht angepasst werden.

Server IP-Adresse:

Die IP-Adresse/Hostname des Plex Media Servers. Wird verwendet um z.B. Cover und weitere Detailinformationen zu laden.

Server Port:

Der Port über den die Kommunikation mit dem Plex Media Server stattfindet. Automatisch vorbelegt ist 32400 und muss in der Regel nicht angepasst werden.

X-Plex Token:

Diese Einstellung ist Optional. Falls Plex Home aktiviert ist, wird zur Verfizierung der Datenkommunikation der X-Plex Token verwendet. Anderenfalls können erweiterte Informationen wie z.B. das Cover des aktuellen Titels nicht geladen werden.

4. Variablen

Client Status

Gibt den aktuellen Status des Plex Home Theater Clients wieder, je nach Zustand:

Eingeschaltet = Aktiv
Ausgeschaltet = Inaktiv

Cover

Das Cover des aktuellen Titels im Großformat.

HTML

Geplante HTML Formatierte Ausgabe mit diversen Informationen zum aktuellen Titel. Wird aktuell noch nicht gefüllt!

Item

Item ID des aktuell gespielten Titels (zur internen Verwendung).

Lautstärke

Die Lautstärke des Clients.

Player ID

Die aktuelle Player ID des Clients (zur internen Verwendung).

Power

Buttons zum Einschalten (WOL) und Ausschalten (Herunterfahren) des Clients.

Status

Der aktuelle Status des Clients:

  • Spielt
  • Pausiert

Steuerung

Buttons zur Steuerung (Hoch, Runter, Links, Rechts, Seite +, Seite -, Auswahl, Zurück) auf der Clientoberfläche.

Titel

Der aktuell gespielte Titel.

Wiedergabe Steuerung

Buttons zur Steuerung der Wiedergabe (Play, Pause, Stop, Next, Prev).

Wiederholung

Buttons zur Steuerung der Repeat Funktion.

5. Hintergrund Skripte

Wenn eine Plex Instanz erstellt wird, wird folgendes Skript angelegt:

SocketController

Dieses Skript dient dazu den aktuellen Zustand des Plex Home Theater Clients zu überwachen, und entsprechend den Client Socket zu aktivieren/deaktivieren. Es wird mit einem Timer versehen, der im Standard jede Sekunde aufgerufen wird. Der Timer kann nach eigenem Ermessen verändert werden, jedoch hat sich ein Intervall von 1s als Optimal herausgestellt.

6. Funktionen

PHT_Back(integer $InstanceID)

Sendet Befehl 'Zurück' an Plex Home Theater Client.


PHT_Down(integer $InstanceID)

Sendet Befehl 'Runter' an Plex Home Theater Client.


PHT_GetPlayerID(integer $InstanceID)

Liefert die aktuelle Player ID.


PHT_GetSocketID(integer $InstanceID)

Liefert die aktuelle ID des zugehörigen Client Sockets.


PHT_Left(integer $InstanceID)

Sendet Befehl 'Links' an Plex Home Theater Client.


PHT_Next(integer $InstanceID)

Springt zum nächsten Titel.


PHT_Pause(integer $InstanceID)

Pausiert die Wiedergabe.


PHT_PgDown(integer $InstanceID)

Sendet Befehl 'Seite Runter' an Plex Home Theater Client. (Zum einfachen blättern innerhalb der Bibliothek)


PHT_PgUp(integer $InstanceID)

Sendet Befehl 'Seite Hoch' an Plex Home Theater Client. (Zum einfachen blättern innerhalb der Bibliothek)


PHT_Play(integer $InstanceID)

Setzt die Wiedergabe fort.


PHT_PowerOff(integer $InstanceID)

Veranlasst ein Herunterfahren des Plex Home Theater Client Systemes.


PHT_PowerOn(integer $InstanceID)

Sendet ein Wake on LAN (WOL) Befehl an die MAC-Adresse des Plex Home Theater Client Systemes.


PHT_Prev(integer $InstanceID)

Springt zum vorherigen Titel.


PHT_RepeatActualElement(integer $InstanceID)

Setzt die Wiederholung auf das aktuell abgespielte Element.


PHT_RepeatAll(integer $InstanceID)

Setzt die Wiederholung auf die aktuelle Playlist.


PHT_RepeatOff(integer $InstanceID)

Wiederholungen ausschalten.


PHT_Right(integer $InstanceID)

Sendet Befehl 'Rechts' an Plex Home Theater Client.


PHT_Select(integer $InstanceID)

Sendet Befehl 'Auswahl' an Plex Home Theater Client.


PHT_Send(integer $InstanceID, string $JSONString)

Sendet einen Befehl an den Plex Home Theater Client. Der Befehl muss full qualified JSON String sein. Dazu sieht man sich am besten die API Dokumentation des XMBC Kodi Projektes an: http://kodi.wiki/view/JSON-RPC_API


PHT_SendMessage(integer $InstanceID, string $title, string $message)

Sendet eine Nachricht mit Titel an den Plex Home Theater Client. Die Nachricht wird dann auf der Oberfläche des Clients angezeigt.


PHT_SetVolume(integer $InstanceID, integer $level)

Passt die Lautstärke an. Mögliche Werte liegen zwischen 0 and 100.


PHT_Stop(integer $InstanceID)

Stoppt die Wiedergabe.

About

Plex Home Theater PHP Module for IP-Symcon

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages