Pour ceux qui ne connaissent pas les produits Harmony, ce sont en fait des télécommandes universelles qui peuvent gérer plusieurs appareils en même temps (TV, Ampli, Box, Phillips Hue…et tout autre périphérique contrôlable par infrarouge) à partir d’une télécommande ou d’un smartphone. Plus d'infos >>ici<<

Le hub et la télécommande basique sont au prix du hub seul en ce moment sur Amazon : >>ici<< et la version Ultimate (Hub + Télécommande avec écran tactile) est aussi en promo : >>ici<<

Cette nouvelle version est connectée à internet par wifi et donc forcément au réseau local.
Donc pourquoi ne pas essayer de commander le démarrage d’une activité à partir d’un des bouton poussoir de la maison ;-)

recherches et mises en pratique :

à partir du projet suivant :
http://sourceforge.net/projects/harmonyhubcontrol
j‘ai compilé les sources, voir la pièce jointe pour ne pas devoir le refaire, vous y trouverez :

  • des versions des exécutables en 32/64 Bit pour Linux
  • une version de l’exécutable Windows 32 Bit pour tester en ligne de commande
    (vous aurez par contre besoin de Microsoft Visual C++ 2010 redistribuable )
  • un petit fichier PHP pour pouvoir contrôler l’exécutable et récupérer les information du hub sur une machine linux.

harmonyhubcontrol20141031.zip

l’installation :

1. Bien entendu avant de commencer tout autre chose il faut installer le hub et créer des activités.

2. Se munir de l’identifiant et mot de passe créer avec le logiciel MyHarmony sur myharmony.com

3. Récupérer l’adresse IP du HUB, le plus simple est de démarrer l’appli Harmony préalablement installé sur votre Smartphone ou tablette et d’aller dans les menus : “A propos de” → “Versions” → “Adresse IP du Hub”.
Astuce : essayer de réserver cette adresse dans la config DHCP de votre routeur pour ne pas avoir de problèmes suite à un redémarrage ou à une coupure de courant…

4. Copier l’exécutable Linux (en 32 ou 64 bit en fonction de votre installation) et le fichier PHP dans le même dossier sur une machine linux:
pour ma part je l’ai installé sur le serveur web de mon NAS à des fins de test,
mais vous pouvez également mettre ces deux fichiers sur la centrale domotique,
pour la version 1 de Calaos c'est dans /usr/share/calaos/web
(en cas de message d'erreur exécuter la commande “chmod 755 HarmonyHubControl32”).

5. Editer le fichier PHP et modifier les trois valeurs entre guillemets (identifiant, mot de passe, l'adresse IP du Hub) par les vôtres et éventuellement le nom de exécutable en fonction de votre version de linux.

6. Récupérer les id de vos activités,
pour cela il suffit d’appeler le fichier PHP dans votre navigateur en y ajoutant le paramètre suivant :

http://192.168.0.xxx/harmony.php?command=**list_activities**

192.168.0.xxx étant l’adresse IP de votre machine Linux

vous obtenez ceci :

7. Démarrer une activité :
Exemple : éteindre tout :

http//192.168.0.xxx/harmony.php?command=start_activity?activityid=-1

Exemple : démarrer l’activité Canalsat :

http//192.168.0.xxx/harmony.php?command=start_activity?activityid=10867576


8. on arrive enfin aux choses intéressantes, l’intégration dans Calaos

a. Démarrer Calaos Installer et charger votre config
b. Ajouter une nouvelle Variable interne booléenne “LogitechHarmony” pour “toggler” entre deux activités.
c. Créer une règle pour affecter le bouton poussoir de votre choix :

d. Créer une règle pour démarrer l'activité “Canalsat” sur votre Hub :



et le script LUA à mettre dans Actions :

calaos:requestUrl("http://192.168.0.xxx/harmony.php?command=start_activity&activityid=10867576") return true
e. Créer une règle pour éteindre tous les périphériques :



et le script LUA à mettre dans Actions :

calaos:requestUrl("http://192.168.0.xxx/harmony.php?command=start_activity&activityid=-1") return true

Au final, ces règles permettent dans mon cas d'allumer ou d'éteindre une activité en faisant un double-clic sur un bouton poussoir.


Bien entendu tout cela n'est pour le moment qu'une ébauche mais parfaitement fonctionnelle 8-)
Le fichier PHP peut encore être amélioré (il pourrait être un peu plus user-friendly).