Shyrka973 Posté(e) le 17 juillet 2014 Signaler Posté(e) le 17 juillet 2014 Bonjour, Ceux qui utilisent Plex connaissent peut-être plexWatch. Il permet d'être informé par différent moyen (email, pushover, growl, twitter, ...) des actions en cours sur le serveur: quelqu'un regarde un film, le film est mis en pause, ... Il manquait une moyen de notification pour l'interfacer avec un HC2: la possibilité d'exécuter un script. J'ai donc porté des modifications à plexWatch pour qu'il puisse le faire. Il se trouve ici. Ainsi, mon HC2 sait ce que je fais avec Plex: quand je lance un film, il éteint les lumières, quand je le mets en pause, il allume, ... Le script qui est lancé par plexWatch reçoit comme paramètre un fichier temporaire qui contient les données de notification encodées au format json. Voici un exemple de script que j'utilise. Il utilise le script HCxUpdateVar que j'ai présenté ici sur ce forum. Il met à jour les variables globales "TVWatchxxx" avec l'état des lecteurs Plex; xxx est remplacé par le nom du lecteur. Si celui du salon s'appelle "Salon", il mettra à jour la variable "TVWatchSalon". Les états sont: start, stop, paused, resumed. Le script en exemple lance ma scène id14 suivante: --[[ %% autostart %% properties %% globals TVWatchAdreinna TVWatchshyrka --]] -- Le déclenchement de cette scène par la variable globale ne fonctionne -- car sa mise à jour par l'API "/api/globalVariables" n'active le trigger :-( fibaro:debug("HC2 start script at " .. os.date()) local OrigineDeclenchement = fibaro:getSourceTrigger() --if OrigineDeclenchement['type'] == 'global' then -- Voir remarque plus haut au sujet du déclenchement de la scène if OrigineDeclenchement['type'] == 'other' then local TVState local Ok = 1 local TVWatch = fibaro:getGlobal("TVWatchshyrka") fibaro:debug("TV: "..TVWatch) if (TVWatch == "start") then TVState = 1 -- elseif (TVWatch == "start-watching") then -- TVState = 1 -- elseif (TVWatch == "start-watched") then -- TVState = 1 elseif (TVWatch == "stop") then TVState = 0 elseif (TVWatch == "paused") then TVState = 0 elseif (TVWatch == "resumed") then TVState = 1 -- elseif (TVWatch == "recentlyadded") then -- TVState = 0 else Ok = 0 end if (Ok == 1) then fibaro:setGlobal("TVStateSalon", TVState) end end Cette scène met à jour une autre variable globale "TVWatch" avec l'état: 0: film arrêté ou en pause 1: film démarré ou relancé J'utilise ensuite cette variable avec GEA pour contrôler les lumières du salon. Voilà . Dites moi si vous avez tout compris et surtout si cela peut servir à quelqu'un. 1
labomatik Posté(e) le 19 juillet 2014 Signaler Posté(e) le 19 juillet 2014 Je viens de tomber sur la doc de l'API de plex et notamment la partie qui concerne ce que l'on regarde http://IP:32400/status/sessions c'est du XML retourné, je suis en train de regarder si on sais facilement le lire et traiter avec l'HC2
Shyrka973 Posté(e) le 20 juillet 2014 Auteur Signaler Posté(e) le 20 juillet 2014 Tiens-moi au courant si tu arrives àdévelopper quelque chose.
labomatik Posté(e) le 9 août 2014 Signaler Posté(e) le 9 août 2014 voilà http://www.domotique-fibaro.fr/index.php/topic/1692-plex-films-en-cours-de-lecture/
Messages recommandés