HTTP request avec Harmony

et assistants vocaux

Re: HTTP request avec Harmony

Messagepar jeancoudert » 25 Jan 2018 15:16

Bonjour à tous,
Je dois dire que je suis un peu perdu dans tout ce que vous racontez et je me demande si je recherche la même chose que vous. En fait, je dispose d'un Harmony Ultimate avec son Hub et je cherche une solution simple et élégante pour envoyer des requêtes http depuis ma Eedomus au Hub qui lui même pilotera mes périphériques infra rouge (TV en particulier)
Aujourd'hui via IFTTT et un périphérique scène sur ma Eedomus, je peux activer plusieurs action simultanément avec une seule commande vocale (Ex: On va se coucher) et là toutes les lumières de la maison s'éteignent par exemple mais comment piloter depuis la Eedomus le Hub logitech pour qu'il éteigne également la TV ? Qu'elle requête Http envoyer depuis la box ?
Peut-être les génies que vous êtes pourront m'aider?
Encore merci d'avance pour vos réponses
jeancoudert
 
Messages : 48
Inscription : 12 Fév 2016
Localisation : Colmar

Re: HTTP request avec Harmony

Messagepar Grokiff » 20 Avr 2018 08:41

Bonjour,

J'ai testé cette solution pour déclencher des actions sur ma box eedomus et c'est vraiment pas terrible voici pourquoi :
HA-Bridge simule un bridge Philips Hue. Vous devez donc créer une apoule fictive. HA-Bridge permet d'exécuter une requète HTTP sur chacune des trois actions de base d'une ampoule (ON, dimm, Off).

Prenons un exemple : Vous avez un lapin Karotz relié à votre Box eedomus.
Sur votre box eedomus, vous avez configuré des actions de Text To Speech pour le Karotz :
1) "It's movie time !"
2) "It's party time !"
3) "On éteint tout, bonne nuit !"

Vous créez donc une ampoule fictive sur votre HA-Bridge que vous appelez Karotz
Pour l'action ON vous associez l'url eedomus de l'action 1) (movie time)
Pour l'action DIMM vous associez l'url eedomus de l'action 2) (party time)
Pour l'action OFF vous associez l'url eedomus de l'action 3) (bed time)

Et là vous vous rendez compte qu'on ne peut pas créer une 4ème action à moins de créer une nouvelle ampoule fictive.
Vous multipliez ça par le nombre d'appareils à contrôler (portail, volets, lumières) et c'est le bordel.

Maintenant vous souhaitez associer à vos activités Harmony les 3 actions du Karotz.

Pour intégrer votre ampoule fictive Karotz au système Harmony, vous devez ajouter un dispositif HUE, or les dispositifs Hue sont dans une catégorie à part (domotique).
La gestion des dispositifs domotiques est à part dans Harmony :
Dans une activité, vous ne pouvez que lancer une action (ON, DIM ou OFF) au démarrage de l'activité ou à l'arrêt. vous ne pouvez pas, par exemple, ajouter un bouton sur l'écran de votre télécommande avec une action sur une ampoule. On aurait vraiment aimé avoir un bouton sur l'écran avec le libellé "Party time" qui lance l'action de text to speech sur le karotz !

Par contre j'ai trouvé une solution très simple et beaucoup plus sexy !

J'utilise le daemon triggerhappy qui tourne de base sur les raspberry pi

Explication :
Je me suis basé sur le tuto suivant : https://www.jeedom.com/forum/viewtopic.php?t=8068

Voici l'idée :
Vous contrôlez le Raspberry pi grace au harmony bridge en bluetooth.
Le Harmony bridge est vu par le raspberry pi comme un clavier bluetooth
Vous allez ensuite pouvoir exécuter une action pour chaque touche clavier existant sur un clavier, y compris les raccourcis Maj, CTrl, Alt, etc.

Comment faire :
1) Vous déclarez un dispositif "ordinateur" de marque Microsoft et de type "kodi" dans Harmony (personnellement j'ai renommé le dispositif en "Maison")
2) L'application Harmony va vous demander d'associer l'ordinateur eu Hub en bluetooth. Une fois l'association faite, le Hub est considéré comme un clavier bluetooth
3) Maintenant il faut intercepter les "touches clavier" envoyées par le hub pour exécuter das actions eedomus
En suivant le tuto et en le modifiant un peu, il faut :
a) créer un fichier "eedomus.conf" dans le répertoire /etc/triggerhappy/triggers.d/
b) Dans le fichier, vous ajouter les touches clavier que vous souhaitez interpréter :
Code : Tout sélectionner
KEY_F1  1 /opt/eedomus.py commande BT1
KEY_F2  1 /opt/eedomus.py commande BT2

Explication :
- KEY_F1 = touche F1 du clavier
- 1 signifie que l'on exécute l'action quand la touche est relachée
- /opt/eedomus.py chemin d'accès au script python qui sera exécuté
- commande BT1 sont les 2 arguments passés au script python

c) Ensuite il faut bien entendu compléter le script eedomus.py dans le répertoire /opt/

Code : Tout sélectionner
#!/usr/bin/python

import sys
import re
import urllib

objet = sys.argv[1]
action = sys.argv[2]

if objet == "commande" and action == "BT1":
        r1 = "http://XX.XX.XX.XX/[...]"
        urllib.urlopen(r1)
elif objet == "commande" and action == "BT2":
        r2 = "http://XX.XX.XX.XX/[...]"
        urllib.urlopen(r2)


avec r1 et r2 les requètes de l'api eedomus pour exécuter vos actions.

Dans mon exemple, F1 demande au lapin de prononcer "It's Movie time !"

Pour lancer ces actions, c'est très simple, vous ajoutez le dispositif "maison" dans vos activités.
Il est alors possible :
- d'ajouter un raccourcis d'action sur l'écran de votre télécommande. Dans mon exemple : raccourcis nommé "It's movie time !" avec comme touche "F1"
- d'ajouter une action sur votre box eedomus en début d'activité ou en fin d'activité

Si vous avez besoin de précisions demandez-moi, je regarde le forum régulièrement
Grokiff
 
Messages : 26
Inscription : 10 Août 2015

Re: HTTP request avec Harmony

Messagepar ElYoM » 26 Juil 2018 12:35

Perso, j'utilise désormais le petit serveur web en java de bwssystems (les créateurs de ha-bridge) sur un Raspberry pour contrôler mon hub Logitech Harmony depuis la eedomus, ça expose une interface REST qui est donc appelable via la box. Bien évidemment, ça demande un peu de boulot pour tout mettre en place mais c'est ensuite que du bonheur puisque on peut même déclencher des appuis sur des boutons en particulier.

Un exemple de commande pour passer mes enceintes Edifier sur l'entrée OPTICAL :

URL : http://IP_DU_RASPBERRY:PORT_DU_RASPBERRY/harmony/press
Type : PUT
Paramètres : {"device":"Edifier R1280DB","button":"InputOptical"}

Plus d'infos sur : http://bwssystems.com/#/restfulharmony (Harmony Hub Rest API Application)

PS : Je n'ai par contre par encore trouver comment remonter l'activité en cours à la box eedomus, c'est normalement possible puisque l'appli Java remonte cette info, cependant je suis encore newbie sur tout ce qui est xpath & Co avec la eedomus donc, si quelqu'un se penche sur le sujet, je suis preneur. Dans l'attente, c'est ma Vera Edge qui remonte les changements d'activités Harmony à ma eedomus mais bon, je préférerai bien entendu que tout soit centralisé sur la même box.
ElYoM
 
Messages : 365
Inscription : 08 Sep 2017

Re: HTTP request avec Harmony

Messagepar ElYoM » 19 Août 2018 18:43

PS2 : J'ai finalement réussi à remonter directement l'info de l'activité en cours en créant un capteur HTTP ayant les paramètres suivants, c'est juste dommage que le polling ne puisse pas être inférieur à 1 minute...

Usage : Autre indicateur
URL de la requête : http://IP_DU_RASPBERRY:8081/harmony/show/activity
Chemin Xpath : //label
Dans les paramètres expert, cocher la case "Convertir le JSON en XML".
ElYoM
 
Messages : 365
Inscription : 08 Sep 2017

Précédent

Retour vers Périphériques réseau

Qui est en ligne ?

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