Aller au contenu

Tasker (Android) Pour La Home Center (Hclite Et Hc2)


Messages recommandés

Posté(e)

Pour ceux ou celles qui souhaiterais interfacer leur Home Center avec Tasker (Outil d'automatisation sous Android), voici un tuto pour vous aider (TUTO).

 

Il vous suffira d’intégrer les 5 tâches comme décrit dans le tuto, de renseigné l'adresse de votre Home Center afin de pouvoir :

  • Allumer un périphérique
  • Éteindre un périphérique
  • Interroger l’état d’un périphérique
  • Interroger un module virtuel
  • Interroger une propriété d’un périphérique ou module virtuel
  • Connaître la consommation d’un périphérique (adapté au relevé de consommation)
  • Démarrer un scène
  • Connaître la liste et ID de tout vos périphériques.

 

L'idée est de pouvoir demander à  tasker d'effectuer des opérations avec un langage simple : "Allumer Prise Cuisine" en lieu et place de "http://<HC2 ip address>/api/callAction?deviceID=4&name=turnOff " qui est moins compréhensif et moi naturel :)

 

Avec cela vous allez pouvoir, entre autre, piloter votre HC via SMS, secouez votre téléphone pour tout allumer, retourner votre téléphone pour éteindre, ...

 

 

Le système est composé de 5 tâches :

  1. Une pour traduit le langage "simple" en demande HC
  2. Une pour exécuter les actions
  3. Une pour interrogé vos périphériques
  4. Une pour tester votre configuration
  5. Une pour regrouper tout cela.

 

Usage :

 

J'ai essayé de simplifier un maximum

  1. Vous renseignez une variable %HC_REQUEST avec votre demande par exemple "Consommation Frigo"
  2. Vous exécuter la tâche : HC Traiter Demande

C'est tout ...

le résultat sera stocké dans la variable %HC_RESULT que vous pourrez exploiter à  votre guise. (Exemple : Flash %HC_RESULT donnera une petite popup affichant "Frigo consommation=43.8W")

 

La syntaxe est donc <action> <nom du périphérique ou son ID>

 

Un des autre avantage d'un langage "naturel" est de pouvoir intégrer très facilement cela avec un système de reconnaissance vocal tel que AutoVoice pour les amoureux de la parole.

 

 

Pour les technos :

 

Il y a du code JavaScript la derrière qui interroge votre HC et exploite le JSON afin de trouver les ID des périphériques. Exemple "Consommation frigo", le nom "frigo" est cherché dans le json afin de pouvoir déterminer son id (exemple 32) puis on effectuer une requeste afin d'obtenir le json du device 32. Après, on parse le tout pour trouver valueSensor.

 

 

Voilà  pour plus d'information, c'est directement sur le tuto.

 

Amusez-vous bien ;)

 

  • Upvote 6
Posté(e)

Non, Tasker n'est pas un serveur, il n'est donc pas possible de faire du push vers Tasker. 

 

Il y a peut-être un plug-in pour cela.

Posté(e)

Testé sur une requête on/off sur un module...ça marche au poil.

 

Je suis pas chez moi, donc je peux pas tester la commande par Sms,

cette fonction par contre m’intéresse grandement, je vais le mettre en place en plus de Paw, en cas de coupure internet, pouvoir piloter quelques modules importants de l’extérieur.

 

Félicitation pour ton travail !

 

p'tite question : tu as été obligé de coder depuis ton smartphone?

Posté(e)

p'tite réponse... OUI.

Au début j'ai fait du copier/coller dans des e-mail puis j'ai laissé tomber et j'ai codé sur le téléphone.

Et tu veux savoir ? Et bien oui, c'est vraiment la m...

Sinon je suis content que cela fonctionne, de plus si toi tu as réussi alors que tu lis habituellement une ligne sur deux, c'est soit que mon tuto est parfait, soit les lignes assez haute. Ne réponds pas, je connais déjàta réponse ;)

Posté(e)

Tu sais moi, plus c'est simple, plus j'♥. Le plus dur ne fut pas de coder sur mon téléphone mais de conduire en même temps :o

  • Upvote 3
Posté(e)

@Nico

Il existe AutoRemote pour faire cela (un plug-in pour Tasker).

 

Le principe est le suivant

 

La HC2 envoi une requête HTTP vers le site de AutoRemote qui redirige la demande via un push sur Tasker,

Ce que je ne sais pas c'est si les messages doivent être prédéfini dans Tasker ou si on peut les envoyer depuis la HC2 en paramètre.

 

En tout cas, cela à  le mérite de fonctionner.

Posté(e)

Merci pour les tâches. Par-contre, si les devices sont nommés "lumière" dans la pièce séjour et "lumière" dans la pièce cuisine ça va pas le faire, bien juste?

De mon côté j'aurais besoin de pouvoir dire "lumière cuisine" et qu'il switch l'état actuel (sans lui dire allume ou éteins par exemple) et qu'il me permette d'utiliser le nom du device + pièce pour targeter le bon device.

De mon côté j'utilisais déjàtasker mais me suis fait **** àme faire les tâches les unes après les autres.

Posté(e)

Comme précisé, tu peux mettre l'ID àla place du nom (utile en cas de doublon).

De mon côté, j'ai pas envie de faire une usine àgaz. Néanmoins, si tu as le courage, il y a tout ce qu'il faut puisse que je ramène déjàles pièces.

Tu devrais donc d'abord interroger l'état "HC status" puis actionner.

Posté(e)

Faut dire que j'ai déjàmes tâches en prod donc voilàmais ça m'a intrigué dans le sens où de ton côté tu as nommé tes devices "lampe cuisine" pour la lampe de la cuisine? Moi elles ont toujours le même nom mais c'est uniquement le nom de la pièce qui varie, plus par curiosité

Posté(e)

Voilà , ça fonctionne :)

Maintenant je peux prendre mon smartphone, envoyer un SMS à  mon autre smartphone, afin d'allumer la lumière au dessus de ma tête.

Absolument indispensable :D

 

Merci Steven :)

 

Bon par contre j'ai le même problème que Razowski avec les noms des dimmers qui sont en majorité identiques d'une pièce à  l'autre....

  • Upvote 1
Posté(e)

2 demandes pour la même chose sa commence àfaire beaucoup :-) Je vais voir àl'occasion pour ajouter la pièce.

Posté(e)

Lol Steven le perfectionniste... Par-contre être perfectionniste sur Fibaro c'est chaud

Faut dire que la demande vient pas de deux pives

En tout cas si tu ajoutes ça, je switch direct ça m'évitera de devoir finaliser mes tâches une àune, les exporter/importer sur tous mes devices...

  • 2 semaines après...
Posté(e)

Salut Steven, comme je te l'avais dit sur ton site, tu as fini de me convaincre de basculer sur la HC2 !

Mais du coup, il va falloir assumer ... Moi aussi je voudrais avoir la pièce ! Ca fait 3 personnes alors au boulot ! :D

Posté(e)

Je pense pas que j'y arriverais avant mes vacances mais je vais donc y travailler pendant :)

 

Vous êtes méchant avec moi  :wacko:

 

 

:D  :D  :D

  • 1 mois après...
Posté(e)

Depuis hier j'ai un petit souci avec tasker, quand j'envoi un sms pour allumer une lumiere (par exemple), ca ne fonctionne plus...

Pourtant avec la tache de test ca fonctionne, et si je lance a la main la tache du profil sms ca marche aussi !

Le profil qui gere la reception des sms semble poser souci, pourtant pas de modif depuis la mise en place.

Une idee, une piste ?

Thx !

Posté(e)

je me réponds àmoi même mais ça sevira àtous ceux qui ont mis en place tasker :

mon bug venait du trop grand nombre de sms reçu par expéditeur.

un gros ménage et hop ça remarche !!! (ça sens la tache tasker àcréer ça....)

  • Upvote 1
  • 3 semaines après...
Posté(e)

Bonjour Steven,

 

Après avoir utilisé avec grand succès GEA, j'ai découvert tasker en cherchant à  automatiser mon téléphone et le liée avec Fibaro et sur mes recherches sur le net je suis tombé sur tes tutos, le monde est petit  :)

Sur ce lien http://spiccand.wordpress.com/2014/08/08/tasker-home-center-utiliser-les-variables-globales/#more-326 j'ai suivi ta procédure et j'obtiens une erreur dans HC_RESULT.

On allant voir ton code dans le script java, j'ai vu que tu faisais cette opération :

var url = global("HC_URL");
if (url.indexOf("@") != -1) {
  url = url.substring(url.indexOf("@")+1, url.length);
}
url = "http://"+url.replace("http://","") + "/api/globalVariables";

Si je comprend bien, tu enlèves la partie avant le @ qui correspond aux identifiants/mot de passe en basic authentification.

Par la suite tu utilises url mais je n'ai pas trouvé, dans ta requête la reprise de l'authentification avec le json.

Est ce que cette requête, sans authentification n'est pas la source de l'erreur ?

Ne faut il pas ajouter l'identifiant et mot de passe dans le client.open ?

Je te souhaite un très bon week end.

Séb

Posté(e)

Pour ce tuto là , je n'ai pas trouvé de solution fonctionnelle. Il a marcher pour moi lorsque je le testais puis, après quelques retour disant que cela ne fonctionnait pas, je l'ai retester sans succès. Comme tu le dis, toujours des problèmes d'authentification.

 

J'ai essayé pas mal de système différent sans succès ... puis avec l'arrivée de la v4 et surtout de APIs qui change, j'ai laissé tombé.

 

Je pense que j'ai du, lors de mes tests m'authentifier autrement et que ma session est restée valide ... ce qui fait que lorsque j'ai testé cette tache, elle a fonctionner correctement.

 

Si tu as une idée et surtout le temps, je suis preneur.

Posté(e)

Bonsoir Steven,

 

Je crois qu'il suffit, en théorie, d'envoyer le login et mot de passe dans la fonction client.open client.open("PUT", url, false,login,mdp);

Après il faut peut être l'encoder mais je ferai des tests dès que j'ai un peu de temps.

Après si l'API a changé, le problème peut tout de même persister et si l'idée fonctionne alors elle sera aussi valable pour la v4.

Je te tiens au courant de mes tests.

Je te souhaite une très bonne soirée.

Séb

×
×
  • Créer...