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.
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 :