Plex Home Theater Modul

Hallo Daniel,

danke für die schnelle Erklärung :slight_smile:

Ich frage mich allerdings, ob das Verzeichnis IP-Symcon der richtige Ort ist. Denn bei vielen CDs wird es dann dort voll. Bei mir spielt es keine Rolle, da ich IP Symcon immer komplett vom Entwicklungssystem auf das Produktivsystem übertrage und damit keine Reste vorhanden sind :wink:

Gruß
Hans

Ich fände den Media Ordner da auch den richtigen Ort und nicht im IP-Symcon Verzeichnis.

Könntest Du nicht in Zeile 124
Transparent.png
durch
IPS_GetKernelDir().„media“.DIRECTORY_SEPARATOR.„Transparent.png“
ersetzen und an den anderen Stellen an denen das Cover abgelegt wird?

Doch, klar kann ich das machen.
Werde ich demnächst mal einbauen.

Hallo,

ich wollte das Modul auch mal probieren, habe aber jetzt ein kleines Problem.
Wo finde ich Plex Home Theater denn?
Ich habe den Plex Media Server installiert und nach meinem Wissen ist das Home Theater ein Client.
Auf der Plex Seite bekomme ich nur den Plex Media Player angeboten, oder sind die identisch?

Sorry für die späte Antwort. Du hast Recht, ich kann das Home Theater auch nicht finden. Ich schaue mal inwieweit der Plex Media Player läuft.

Moin,

dies könnte die Erklärung sein https://support.plex.tv/hc/en-us/articles/201241357-Installation

Ich habe die Version 1.4.1.469-47a90f01-windows-x86 im Einsatz die problemlos unter Win 10 Pro x64 läuft. Man bekommt sie noch hier http://www.computerbild.de/download/Plex-Home-Theater-7659343.html, wie eine schnelle Google Suche ergeben hat :wink:

Es wäre sehr schade, wenn das irgendwann so nicht mehr laufen würde :eek: Ich mach jedenfalls in diesem Bereich keinerlei Updates, damit das Modul von Daniel weiterhin seinen guten Job machen kann :slight_smile:

Gruß
Hans

Danke für die Info

Gesendet von meinem SM-T805 mit Tapatalk

Also der neue Client scheint in keiner Form JSON RPC zu supporten.
D.h. wir werden mit dem Plex Home Theater so lange klarkommen müssen wie er läuft.

Hallo Daniel,

dann sollte man sich hüten, noch irgendwelche Updates einzuspielen, da es so wie es ist, einfach super läuft :wink:

Frohe Weihnachten
Hans

Plex hat endlich erkannt, das es sinnvoll wäre, Infos an ein SmartHome zu senden:

Webhooks – Plex

Und für alle USA Alexa User gibt es auch seit heute ein Alexa Skill, ob das auch jemals nach Deutschland kommt glaube ich nicht :frowning:

Alexa, ask Plex to get this party started! | Plex

Wie könnte ich den Alexa so umstellen das ich dieses Skill installieren könnte ?

Zur Zeit wohl gar nicht, Du kannst zwar den Echo mit einem US Account anmelden und dann auch den Skill installieren. Dafür musst Du dann immer Englisch mit Echo quatschen und deutsche Skills kannst Du auch nicht nutzten. In dem Momenten wo Du wieder umstellst ist der Skill wieder weg. Bleibt also nur zu hoffen das der Skill dann auch in Deutschland verfügbar sein wird.

Es besteht zumindest Hoffnung das das auch in Deutsch kommen könnte. Es müssen ja nur die Utterances angepast werden und neu bei Amazon zur Zertifizierung eingereicht werden.
alexa-skill-will-german-version-come-our-way

Webhook habe ich bei mir mal gleich eingerichtet. Wäre ja noch prima wenn man das ins Modul einbauen könnte dann muss das nicht jeder per Hand selber machen ;). Muss aber erst mal beobachten wann jetzt überhaupt was absetzt wird von Plex ist ja noch neu.

Edit: Ich sehe bei mir zwar das der Webhook von Plex getriggert wird bei Events wie Play, Pause, Stop allerdings bekomme ich keinerlei Payload zu fassen. An sich sollte da ja JSON geschickt werden bei mir kommt aber nix von Plex an, der Webhook wird aber aufgerufen.

Ist das bei Euch auch so bzw. hat einer von Euch es schon geschafft das Plex auch wirklich was sendet?

Ifun.de berichtet:

Deutsche Version in Arbeit
UPDATE: Das Plex-Team hat uns bestätigt, dass eine deutsche Version in Arbeit ist. Angaben zum Zeitpunkt der Freigabe können allerdings noch nicht gemacht werden, es wird wohl noch etwas dauern.

Wegen den Webhook von Plex:

Bei mir geht es:

  1. Script für den Webhook anlegen:
<?


IPS_LogMessage("PLEX LOG", print_r($_POST, true)); // Debugging !


?>
  1. Webhook anlegen und auf das zuvor angelegte Script verweisen…

  2. Die IPS Webhookadresse in Plex eintragen…

  3. Fertig…

In den Meldungen solltest du dann die Plex Nachrichten sehen :wink:

Hm was mach ich denn falsch?

Ich versuche mit


$plexjson = file_get_contents('php://input');
$data = json_decode($plexjson);

an den payload zu kommen, aber der Array ist leer.

Wenn ich das selber teste indem ich mal was an den Hook schicke mit


$connect = "https://myserverurl";
$plexhook = "hook/plex";


$data = '{  
   "event": "media.play",
   "user": true,
   "owner": true,
   "Account": {
      "id": 1,
      "thumb": "https://plex.tv/users/1022b120ffbaa/avatar?c=1465525047",
      "title": "elan"
   },
   "Server": {
      "title": "Office",
      "uuid": "54664a3d8acc39983675640ec9ce00b70af9cc36"
   },
   "Player": {
      "local": true,
      "publicAddress": "200.200.200.200",
      "title": "Plex Web (Safari)",
      "uuid": "r6yfkdnfggbh2bdnvkffwbms"
   },
   "Metadata": {
      "librarySectionType": "artist",
      "ratingKey": "1936545",
      "key": "/library/metadata/1936545",
      "parentRatingKey": "1936544",
      "grandparentRatingKey": "1936543",
      "guid": "com.plexapp.agents.plexmusic://gracenote/track/7572499-91016293BE6BF7F1AB2F848F736E74E5/7572500-3CBAE310D4F3E66C285E104A1458B272?lang=en",
      "librarySectionID": 1224,
      "type": "track",
      "title": "Love The One You\'re With",
      "grandparentKey": "/library/metadata/1936543",
      "parentKey": "/library/metadata/1936544",
      "grandparentTitle": "Stephen Stills",
      "parentTitle": "Stephen Stills",
      "summary": "",
      "index": 1,
      "parentIndex": 1,
      "ratingCount": 6794,
      "thumb": "/library/metadata/1936544/thumb/1432897518",
      "art": "/library/metadata/1936543/art/1485951497",
      "parentThumb": "/library/metadata/1936544/thumb/1432897518",
      "grandparentThumb": "/library/metadata/1936543/thumb/1485951497",
      "grandparentArt": "/library/metadata/1936543/art/1485951497",
      "addedAt": 1000396126,
      "updatedAt": 1432897518
   }';

        //var_dump($data);


$result = SendTriggerPlex($connect, $plexhook, $data);
var_dump($result);


function SendTriggerPlex($connect, $plexhook, $data)
    {

        $plexuser = "plexwebhookuser";
        $plexpassword = "plexwebhookpassword";
        $URL = $connect."/".$plexhook;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$URL);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_TIMEOUT, 5); //timeout after 5 seconds
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_USERPWD, "$plexuser:$plexpassword");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data))
        );
        $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
        $result=curl_exec ($ch);
        curl_close ($ch);
        return $result;
    }

Dann kommt auch was an. Hast Du eine Idee was ich falsch machen könnte?

Ja stimmt da kommt bei mir auch was an. Aber wie verarbeitest Du das, kannst Du da mal ein Beispiel posten?


$plexjson = file_get_contents('php://input');
$data = json_decode($plexjson);
SetValue(26349 /*[Geräte\Heimkino\Video\Plex\Plex Webhook\Plex Webhook Request]*/, $plexjson);

Nur zu Testzwecken wollte ich mal das gesamte JSON ablegen bevor ich das zerlege ab da wird nichts in die Variable geschrieben. Eine Idee was da falsch ist?

Habs selber rausbekommen wusste nur nicht wie es verpackt ist aber dank deinem Hinweis mit dem Log klappt es jetzt


$plexjson = $_POST["payload"];
$data = json_decode($plexjson);

Hi ach meno, habe mir auch eben extra die Arbeit gemacht, du warst nur schneller :frowning:

<?
IPS_LogMessage("PLEX LOG", print_r($_POST, true)); // Debugging !


$var=$_POST;

$daten=json_decode($var[payload],true);
IPS_LogMessage("PLEX LOG", print_r($daten, true)); // Debugging !

?>

Bevor Du Dir noch mehr Arbeit doppelt machst, vielleicht hast Du es ja aber schon zumindest für Movies.


$plexjson = $_POST["payload"]; 
		$data = json_decode($plexjson);
		//var_dump($data);
		
		
		$event = $data->event;
		var_dump($event);
		$user = $data->user;
		var_dump($user);
		$owner = $data->owner;
		var_dump($owner);
		$account = $data->Account;
		$accountname = $account->title;
		$accountpic = $account->thumb;
		var_dump($accountname);
		var_dump($accountpic);
		$server = $data->Server;
		$servername = $server->title;
		$serveruuid = $server->uuid;
		var_dump($servername);
		var_dump($serveruuid);
		$player = $data->Player;
		$playerlocal = $player->local;
		var_dump($playerlocal);
		$playerpublicip = $player->publicAddress;
		var_dump($playerpublicip);
		$plexclientname = $player->title;
		var_dump($plexclientname);
		$plexclientuuid = $player->uuid;
		var_dump($plexclientuuid);
		$metadata = $data->Metadata;
		$librarysectiontype = $metadata->librarySectionType;
		var_dump($librarysectiontype);
		$ratingkey = $metadata->ratingKey;
		var_dump($ratingkey);
		$ratingkeydata = $metadata->key;
		var_dump($ratingkeydata);
		$guid = $metadata->guid;
		var_dump($guid);
		$sectionid = $metadata->librarySectionID;
		var_dump($sectionid);
		$studio = $metadata->studio;
		var_dump($studio);
		$plextype = $metadata->type;
		var_dump($plextype);
		$plextitle = $metadata->title;
		var_dump($plextitle);
		$plexoriginaltitle = $metadata->originalTitle;
		var_dump($plexoriginaltitle);
		$contentrating = $metadata->contentRating;
		var_dump($contentrating);
		$summary = $metadata->summary;
		var_dump($summary);
		$rating = $metadata->rating;
		var_dump($rating);
		$viewoffset = $metadata->viewOffset;
		$viewcount = $metadata->viewCount;
		$lastviewedat = $metadata->lastViewedAt;
		$year = $metadata->year;
		var_dump($year);
		$tagline = $metadata->tagline;
		var_dump($tagline);
		$thumb = $metadata->thumb;
		var_dump($thumb);
		$art = $metadata->art;
		var_dump($art);
		$duration = $metadata->duration;
		$originallyavailableat = $metadata->originallyAvailableAt;
		$addedat = $metadata->addedAt;
		$updatedat = $metadata->updatedAt;
		$chaptersource = $metadata->chapterSource;
		$primaryextrakey = $metadata->primaryExtraKey;
		$genreinfo = $metadata->Genre;  // Array
		foreach($genreinfo as $key => $genre)
		{
			$genre = $genre->tag;
			var_dump($genre);
		}
		$directorinfo = $metadata->Director;
		foreach($directorinfo as $key => $director)
		{
			$director = $director->tag;
			var_dump($director);
		}
		$writerinfo = $metadata->Writer;
		foreach($writerinfo as $key => $writer)
		{
			$writer = $writer->tag;
			var_dump($writer);
		}
		$producerinfo = $metadata->Producer;
		foreach($producerinfo as $key => $producer)
		{
			$producer = $producer->tag;
			var_dump($producer);
		}
		$countryinfo = $metadata->Country;
		foreach($countryinfo as $key => $country)
		{
			$country = $country->tag;
			var_dump($country);
		}
		$roleinfo = $metadata->Role;
		foreach($roleinfo as $key => $cast)
		{
			$actor = $cast->tag;
			var_dump($actor);
			$role = $cast->role;
			var_dump($role);
			$actorpic = $cast->thumb;
			var_dump($actorpic);
			
		} 

ist wirklich toll was man so sauber über den Webhook an Infos bekommt. Kann man dann in einzelnen Variablen in IP-Symcon hauen oder daraus eine Webseite bauen. Wäre schön das im Modul zu ergänzen.

Ja ist schon toll das wir jetzt die Daten so schön rausbekommen, aber wäre auch toll wenn wir auch Befehle an Plex schicken könnten, das man sagen könnte: spiele die Neuste ungesehene Folge von new girl auf Player xy :slight_smile:

Gesendet von iPhone mit Tapatalk