I. Présentation

 

Nous allons voir comment récupérer dans Jeedom les informations de notre serveur Plex. En l’occurrence ici ce qui nous intéresse (enfin moi surtout 😛 ), c’est de savoir si un film et en lecture ou en pause afin de réduire la luminosité ou l’augmenter automatiquement.

 


II. Pré-requis

 

Pour cette méthode il faut quelques pré-requis et dans notre cas débourser de l’argent.

  • Dans un premier temps, il nous faut acheter un Plex pass
  • Dans un second temps, acheter le plugin Http Remote Event (4€)

 

Le Plex pass permettra de débloquer une fonctionnalité nécessaire à notre scénario. Personnellement j’ai pris le pass à vie (très vite rentabilisé). Le plugin servira à recevoir les informations transmisse par Plex.

 


III. Plugin Http Remote Event

 

Je vous passe l’installation depuis le market, je pense que je l’ai assez montré 😀
Une fois votre plugin installé et activé on peut commencer sa configuration.

 

Le plugin fourni une url qu’il faudra copier dans Plex.

 


IV. Plex

 

Prenons l’url précédente: http:///core/api/jeeApi.php?apikey=XXXXXXXXXXX&type=httpRemoteEvent&eqId=63&payload=<payloadValue>

Il va falloir la transformer très légèrement. J’ai volontairement pas communiquer ma clé api –> remplacé par les XXXX

Il manque une information importante dans l’url, c’est l’adresse de votre Jeedom.

  • Avant: http:///core/api/jeeApi.php?apikey=XXXXXXXXXXX&type=httpRemoteEvent&eqId=63&payload=<payloadValue>
  • Aprés: http://IP_JEEDOM/core/api/jeeApi.php?apikey=XXXXXXXXXXX&type=httpRemoteEvent&eqId=63&payload=<payloadValue>

 

Maintenant rendez-vous dans votre compte Plex pour aller chercher le menu Webhook.

 


V. Scénario

 

Retour dans Jeedom, où l’on va créer un scénario afin de traiter les informations fournies par Plex au plugin http remote event.

 

 

Dans l’onglet Scénario on va ajouter un bloc de type code.

Dans ce bloc code nous allons mettre le code suivant:

Merci à Shyrka973 pour sont post sur le forum

 

// On récupère le payload
$cmd = cmd::byString("#[Multimédia][PlexRomain][Payload]#");
$postdata = $cmd->execCmd();

// On le décode
$postdata = utf8_encode($postdata);
$scenario->setLog('PostData :'.$postdata);
$results = json_decode($postdata);

// On récupère l'événement déclencheur: media.play, media.pause, media.stop, ...
$event = $results->event;
$scenario->setLog('Event: :'.$event);
$scenario->setData('PlexEvent', $event);

// On récupère le lecteur
$player = $results->Player->uuid;
$scenario->setLog('Player : '.$player);
$scenario->setData('PlexPlayer', $player);

 

En rouge partie à modifier: correspond à la case éventement dans notre scénario.

Nous nous retrouvons avec deux variables PlexEvent et PlexPlayer

 


VI. Test

 

Maintenant vous pouvez lancer un film dans Plex, celui-ci envoi ses informations à Jeedom récupéré par le plugin Http Remote Event et traiter dans notre scénario.

 

Dans le log, nous retrouvons:

  • le PostData qui correpond a ce qu’envoi Plex, il s’agit d’un XML
  • La variable Event –> correspondant à la variable PlexEvent
  • La variable Player –> correspondant à la variable PlexPlayer

Vous pouvez également retouver les variable dans en cliquant sur Variable en haut du scénario.

 

Nous pouvons voir que nous avons donc l’état de la vidéo play, stop ou pause et sur quel type de matériel est lancé la vidéo. Ainsi vous pouvez continuer votre scénario pour traiter les variable et faire diminuer la lumière lorsque la vidéo est en lecture uniquement lancé sur le media PC, car si vous lancer une vidéo sur votre téléphone dans le metro, ça ne sert à rien de baisser la luminosité chez vous 😀

Voici un exemple :