Possesseurs Harmony Smart Control

Capteurs et actionneurs HTTP

Possesseurs Harmony Smart Control

Messagepar alexzen » 23 Avr 2014 14:19

Bonjour à tous,

Je viens de terminer l'intégration fonctionnelle dans ma eedomus de ma télécommande harmony smart control afin de contrôler ma partie multimédia directement avec ma domotique.

Je pense écrire une bafouille la dessus mais j'aimerai savoir si il y a des possesseurs de cette superbe télécommande et si ça intéresse du monde.

:mrgreen:

Du coup j'ai pu intégré également la gestion des lumières sur une pause/reprise de Plex.

----- Début du tuto

Pré requis :

- Une Harmony Smart Control avec son hub (tant qu'à faire :) )
- Votre identifiant et mot de passe utilisé pour la configuration de votre télécommande (https://setup.myharmony.com/?cl=fr-FR)
- L'adresse IP de votre hub harmony (visible dans la configurationd de votre routeur par exemple)
- Un serveur web sous linux (Raspberry, machine virtuelle, etc.)
- Un peu de temps ^^

L'idée :
Le but est de pouvoir lancer des activités de votre télécommande directement via des requetes http à partir de votre box eedomus.
Pour se faire, on va utiliser le logiciel HarmonyHubControl : http://sourceforge.net/projects/harmony ... rce=navbar que l'on va installer sur notre distribution linux.
On va également faire en sorte de pouvoir lancer ce programme directement via une page php de votre serveur web que l'on appelera par votre eedomus.

Partie Serveur :
Je vais partir du principe que vous avez déjà un serveur web à disposition (type lamp par exemple)
Se connecter sur votre serveur linux et taper les commandes suivantes :

1 - On récupère la derniere version du logiciel HarmonyHubControl :

Code : Tout sélectionner
git clone git://git.code.sf.net/p/harmonyhubcontrol/code harmonyhubcontrol-code


Nota : si vous avez une erreur au niveau de la commande git, il est possible que vous n'avez pas le paquet d'installé.
Dans ce cas taper la commande ci dessous et relancer la commande précédente :

Code : Tout sélectionner
apt-get install git


2 - On renomme le répertoire de base :

Code : Tout sélectionner
mv harmonyhubcontrol-code HarmonyHubControl


3 - On se rend dans le répertoire et on compile l'application :

Code : Tout sélectionner
cd HarmonyHubControl
make HarmonyHubControl


Nota : si vous avez une erreur à la commande make alors assurer vous d'avoir un compilateur d'installer.
Au pire on en installe un avec la commande ci dessous et on relance la compilation :

Code : Tout sélectionner
apt-get install g++


4 - On lance le programme avec la commande :

Code : Tout sélectionner
./HarmonyHubControl


5 - cela doit nous donner ceci :

Code : Tout sélectionner
Syntax:
HarmonyHubControl.exe [email] [password] [harmony_ip] [command (optional)]
where command can be any of the following:
    list_activities
    get_current_activity_id
    start_activity [ID]
    issue_device_command [deviceId] [command]
    list_devices
    get_config


6 - A présent on va récupérer les identifiants de nos activités déjà programmées en lancant la commande :

Code : Tout sélectionner
./HarmonyHubControl votre_email_harmony votre_mot_de_passe adresse_ip_hub_harmony list_activities


7 - Cela doit vous retourner quelque chose comme :

Code : Tout sélectionner
LOGITECH WEB SERVICE LOGIN     : SUCCESS
HARMONY COMMUNICATION LOGIN    : SUCCESS
HARMONY COMMAND SUBMISSION     : SUCCESS
PARSE ACTIVITIES AND DEVICES   : SUCCESS

Activities Available via Harmony :

PowerOff - -1
Regarder la TV - 7894055
...


8 - on teste le lancement d'une activité directement avec la commande :

Code : Tout sélectionner
./HarmonyHubControl votre_email_harmony votre_mot_de_passe adresse_ip_hub_harmony start_activity id_activité


ex : ./HarmonyHubControl votre_email_harmony votre_mot_de_passe adresse_ip_hub_harmony start_activity 7894055

10 - On se met debout sur sa chaise en dansant la danse de la victoire du geek de la domotique. (ou pas.)

A présent il faut trouver une solution pour pouvoir lancer ces commandes directement via une requete http.

Allons y :

11 - Pour des aspects pratiques je vais loger tous les fichiers dont j'ai besoin dans un répertoire à dispo sur le serveur web.
Pour ma part tous les fichiers se trouvent dans le répertoire /harmony de mon serveur web.
Du coup on déplace la totalité dans votre répertoire home apache avec la commande :

Code : Tout sélectionner
cd .. (histoire de se remettre dans le dossier parent)
mv HarmonyHubControl/* /var/www/harmony/


12 - on met les permissions qui vont bien :

Code : Tout sélectionner
cd /var/www/harmony/
chmod 755


13 - Pour lancer les commandes, j'utilise pour ma part un fichier php de ce type que j'ai placé dans le répertoire /harmony de mon serveur web :

Code : Tout sélectionner
<?php
shell_exec('./HarmonyHubControl votre_email_harmony votre_mot_de_passe adresse_ip_hub_harmony start_activity id_activité');
?>


Nota : ne pas oublier de placer également les bons droits sur le fichier avec un chmod 755 soit via votre client ftp soit via votre serveur linux.

14 - tester le lancement d'une activité en lancant l'url de votre fichier php dans un navigateur :

Code : Tout sélectionner
http://urldevotreserveurweb/harmony/votrefichier.php


Nota : pour des aspects pratiques, j'ai créé autant de fichier que d'activités et/ou besoin multimédia.

15 - finir la danse du geek.

Partie eedomus :

1 - créer un actionneur http.
2 - dans les valeurs, créer autant que désiré :

Exemple :
Pièces jointes
harmony.png
harmony.png (29.76 Kio) Consulté 37786 fois
Dernière édition par alexzen le 24 Avr 2014 20:26, édité 1 fois.
Rfxtrx USB, Karotz, N40L pour Plex et des vm, 2 Rpi, 4 Squeezebox Radio + 1 Squeezeslave sur Rpi, des fib en rot, des or en gon et des con de cha.
alexzen
 
Messages : 84
Inscription : 18 Mars 2013

Re: Possesseurs Harmony Smart Control

Messagepar bigedison » 23 Avr 2014 17:28

OUIIIIII !!!!

Je gère deja les pauses/reprises de plex pour la lumière et aussi quand mon GSM sonne ;-)
bigedison
 
Messages : 21
Inscription : 22 Août 2012

Re: Possesseurs Harmony Smart Control

Messagepar alexzen » 23 Avr 2014 19:30

Hum intéressant tu fais ça comment actuellement ?

Je prépare le tuto :)
Rfxtrx USB, Karotz, N40L pour Plex et des vm, 2 Rpi, 4 Squeezebox Radio + 1 Squeezeslave sur Rpi, des fib en rot, des or en gon et des con de cha.
alexzen
 
Messages : 84
Inscription : 18 Mars 2013

Re: Possesseurs Harmony Smart Control

Messagepar gusdelamort » 23 Avr 2014 20:07

Oh que ouiiiiiiiii
gusdelamort
 
Messages : 259
Inscription : 16 Mai 2013

Re: Possesseurs Harmony Smart Control

Messagepar Aurel64 » 23 Avr 2014 20:30

+1
Aurel64
 
Messages : 77
Inscription : 07 Mars 2013
Localisation : FRANCE - Pau

Re: Possesseurs Harmony Smart Control

Messagepar alexzen » 24 Avr 2014 20:33

Le tuto est en ligne, je ferai l'ajout plus tard pour la partie Plex et l'insertion dans Sarah.

Dites moi ce que vous en pensez :)

PS : la base de mon tuto s'appuie sur le wiki Domoticz (http://www.domoticz.com/wiki/Harmony_Hub_Control) et adapté pour une utilisation via http.
Rfxtrx USB, Karotz, N40L pour Plex et des vm, 2 Rpi, 4 Squeezebox Radio + 1 Squeezeslave sur Rpi, des fib en rot, des or en gon et des con de cha.
alexzen
 
Messages : 84
Inscription : 18 Mars 2013

Re: Possesseurs Harmony Smart Control

Messagepar gusdelamort » 26 Avr 2014 18:39

Petite question : as tu le retour d'état dans l'eedomus si tu fais un changement depuis la télécommande ?

J'ai une harmony 555 de mon côté, je connais bien le concept.
gusdelamort
 
Messages : 259
Inscription : 16 Mai 2013

Re: Possesseurs Harmony Smart Control

Messagepar alexzen » 27 Avr 2014 07:44

Je suis entrain de regarder comment faire car tu as une commande qui te permet de connaître l'activité en cours. Il faudrait scripter le résultat de cette commande pour remonter l'info dans l'eedomus ...
Rfxtrx USB, Karotz, N40L pour Plex et des vm, 2 Rpi, 4 Squeezebox Radio + 1 Squeezeslave sur Rpi, des fib en rot, des or en gon et des con de cha.
alexzen
 
Messages : 84
Inscription : 18 Mars 2013

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 07 Mai 2015 10:08

bonjour a tous
il y a quelqu'un qui a pu compiler le programme pour une utilisation dans un nas synology (toolchain....)
merci pour vos retour
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar l0ghan » 11 Mai 2015 12:53

Bonjour,

J'ai fini le script qui permet d'écrire dans un fichier XML l'activité Harmony qui est en cours :

Image

<?php
$status = shell_exec('./HarmonyHubControl [login] [pass] [IPduHubHarmony] get_current_activity_id');

if (file_exists('sortie.xml')) {
//loads the xml and returns a simplexml object
$xml = simplexml_load_file('sortie.xml');

//transforming the object in xml format
$xmlFormat = $xml->asXML();
//displaying the element in proper format
echo '<u><b>This is the xml code from sortie.xml:</b></u>
<br /><br />
<pre>' . htmlentities($xmlFormat, ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre><br /><br />';

//transforming the object in xml format
$xmlFormat = $xml->asXML();
//displaying the element in proper format
echo '<u><b>This is the xml code from sortie.xml with new elements added:</b></u>
<br /><br />
<pre>' . htmlentities($xmlFormat, ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre>';

//changing the nodes values
//in this case we are changing the value
//of all children called <name>
foreach ($xml->children() as $child)
$child->name = $status;
//displaying the element in proper format
echo '<br /><u><b>This is the xml code from sortie.xml with new elements added:</b></u>
<br /><br />
<pre>' . htmlentities($xml->asXML(), ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre>';
$xml->saveXML("sortie.xml");
} else {
exit('Failed to open sortie.xml.');
}
?>


On fait tourner un "actionneur Http" qui lance ce fichier toute les Xminutes :
Image

ensuite, on cree un "capteur HTTP" il suffit d'aller lire le status et d'attribuer une image a ce statut :
Image

si jamais vous voulez des infos faites le moi savoir je vous enverrais tout !! :)

julien
l0ghan
 
Messages : 56
Inscription : 04 Mai 2015

Re: Possesseurs Harmony Smart Control

Messagepar Sylorn85 » 19 Mai 2015 01:29

Pour ceux qui comme moi ne se sentent pas prêt à utiliser un serveur, il y a la possibilité d'utilisé un smartphone android pour servir d'intermédiaire.

Actuellement, j'utilise une montre android wear pour envoyer des commandes vocales, interceptées sur le téléphone par le plugin autovoice de Tasker; qui lui selon la commande, permet de lancer une activité via Harmony Tasker Plug-in.

Pour l'intégration à l'eedomus, il suffit de créer un actionneur http, qui enverra des requêtes au téléphone via autoremote.

A préciser que Tasker, autovoice et autoremote sont payant, le tout aux alentours de 6€ mais à mon humble avis, ça les vaut largement.

PS: c'est loin d'être parfait mais ça marche pas mal.

PPS: par contre si quelqu'un sait comment mettre en pause, remettre en lecture et couper le son, ça m'interesse...
Eedomus + / 22 périphériques Zwave et 9 périphérique 433MHz
(32 périphériques http / 14 périphériques virtuels)
Sylorn85
 
Messages : 6
Inscription : 17 Mai 2015

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 19 Mai 2015 15:40

la derniere version du plugin "Harmony Tasker Plug-in" permet de lancer n'importe quel commande
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar Sylorn85 » 19 Mai 2015 19:08

Merci Merci, j'avais pas fais la mise à jour, excellent...
Eedomus + / 22 périphériques Zwave et 9 périphérique 433MHz
(32 périphériques http / 14 périphériques virtuels)
Sylorn85
 
Messages : 6
Inscription : 17 Mai 2015

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 19 Mai 2015 21:05

Your are welcom , il est super ce plugin , manque juste le retour d état, sinon je suis toujours en recherche d une ame charitable qui peux me compiler le programme cpp pour mon nas synology via l outil toolchain , j ai essayer plein de fois sans succès );
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 01 Juin 2015 22:27

bonjour l0ghan
merci pour ton partage ,sauf que j'arrive pas a utiliser ton fichier "Failed to open sortie.xml." ,c'est possible d'avoir plus d'explication :
faut il creer le fichier sortie.xml a l'avance a la racine du script ?
dans le xpath il faut mettre status comme valeur ,?
merci pour ton retour

l0ghan a écrit:Bonjour,

J'ai fini le script qui permet d'écrire dans un fichier XML l'activité Harmony qui est en cours :

Image

<?php
$status = shell_exec('./HarmonyHubControl [login] [pass] [IPduHubHarmony] get_current_activity_id');

if (file_exists('sortie.xml')) {
//loads the xml and returns a simplexml object
$xml = simplexml_load_file('sortie.xml');

//transforming the object in xml format
$xmlFormat = $xml->asXML();
//displaying the element in proper format
echo '<u><b>This is the xml code from sortie.xml:</b></u>
<br /><br />
<pre>' . htmlentities($xmlFormat, ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre><br /><br />';

//transforming the object in xml format
$xmlFormat = $xml->asXML();
//displaying the element in proper format
echo '<u><b>This is the xml code from sortie.xml with new elements added:</b></u>
<br /><br />
<pre>' . htmlentities($xmlFormat, ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre>';

//changing the nodes values
//in this case we are changing the value
//of all children called <name>
foreach ($xml->children() as $child)
$child->name = $status;
//displaying the element in proper format
echo '<br /><u><b>This is the xml code from sortie.xml with new elements added:</b></u>
<br /><br />
<pre>' . htmlentities($xml->asXML(), ENT_COMPAT | ENT_HTML401, "ISO-8859-1") . '</pre>';
$xml->saveXML("sortie.xml");
} else {
exit('Failed to open sortie.xml.');
}
?>


On fait tourner un "actionneur Http" qui lance ce fichier toute les Xminutes :
Image

ensuite, on cree un "capteur HTTP" il suffit d'aller lire le status et d'attribuer une image a ce statut :
Image

si jamais vous voulez des infos faites le moi savoir je vous enverrais tout !! :)

julien
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar l0ghan » 03 Juin 2015 12:55

Bonjour nabilxp,

Tu dois creer un fichier manuellement, je n'ai pas geré le fait de le creer automatiquement.
Je te laisse egalement gerer les dorits d'acces ;)

Cordialement,
julien
l0ghan
 
Messages : 56
Inscription : 04 Mai 2015

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 03 Juin 2015 13:21

j'ai bien créer un fichier sortie.xml a coté du script avec les bons droits ,mais toujours la même erreur :ugeek:

l0ghan a écrit:Bonjour nabilxp,

Tu dois creer un fichier manuellement, je n'ai pas geré le fait de le creer automatiquement.
Je te laisse egalement gerer les dorits d'acces ;)

Cordialement,
julien
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar l0ghan » 03 Juin 2015 14:52

Bonjour nabilxp,

Je suis actuellement en deplacement, je te repond ce weekend avec des copies d'écran etc .....

julien
l0ghan
 
Messages : 56
Inscription : 04 Mai 2015

Re: Possesseurs Harmony Smart Control

Messagepar nabilxp » 03 Juin 2015 15:04

Thanks :P

l0ghan a écrit:Bonjour nabilxp,

Je suis actuellement en deplacement, je te repond ce weekend avec des copies d'écran etc .....

julien
nabilxp
 
Messages : 24
Inscription : 01 Avr 2015

Re: Possesseurs Harmony Smart Control

Messagepar l0ghan » 07 Juin 2015 15:06

Bonjour nabilxp,

As tu vérifié que le fichier sortie.XML est dispo en écriture ?

julien
l0ghan
 
Messages : 56
Inscription : 04 Mai 2015

Suivant

Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)