Hack du Hue Motion

Dans ce nouvel article de la série trucs, astuces et conf. maîtrisez Home assistant je vous propose de nous intéresser au Hue motion. Je vous en avais déjà parlé ici, le Hue motion est un petit boîtier permettant d’allumer automatiquement vos lampes en fonction de la luminosité et des mouvements dans une pièce. Il utilise donc un détecteur de luminosité ainsi qu’un détecteur de mouvement. Ce qu’on sait moins c’est qu’il dispose aussi d’une sonde de température !

Nous avons donc ici un périphérique plutôt complet et intéressant. Le problème est que, de base, il n’est pas possible d’agir sur un autre système que les lampes Hue ni même de récupérer les informations. Notre but sera à l’aide d’Home assistant de récolter toutes ces données – y compris la température – et de les utiliser afin de mieux suivre votre domicile. De plus, nous allons voir comment transformer ce boîtier en « alarme ».

Prés-requis

Tout d’abord, vous devez être un minimum équipé. Voici les différents éléments indispensables :

  • Un système Hue fonctionnel (voir ici pour plus d’info)
  • Un boîtier hue motion (entre 30 et 40€ )
  • Une installation home assistant (si vous n’en avez pas, cette série est consacrée à la mise en place complète d’un tel système)

Accédez au mode développeur hue

Dans un premier temps, identifiez l’adresse IP de votre matériel Hue. Pour ma part, je passe par ma box pour la connaître. Ensuite dans votre navigateur tapez http://<Adresse_IP>/debug/clip.html. Ainsi, vous accéderez ainsi à un client REST permettant de faire des requêtes sur votre pont Hue.

cli hue

C’est le moment de paramétrer un utilisateur. Tapez seulement /api dans URL et remplissez Message Body comme ce qui suit en remplaçant pseudo par ce que vous souhaitez.

Obtenir un nom d‘utilisateur

Maintenant, cliquez sur POST. Vous devriez normalement recevoir l’erreur suivante.

Appuyez sur le bouton présent sur votre bridge hue et cliquez de nouveau sur post. Cette fois-ci, vous devriez avoir un message contenant un champ username. Conservez-le, nous allons l’utiliser tout au long de cet article.

Capturer la température et la luminosité

Les sensors Hue

Tout d’abord, nous allons tenter de récupérer les valeurs de luminosité et la température mesurée par votre hue motion. Pour ce faire, nous avons besoin en premier lieu d’identifier les sensors. Retournez sur le client rest que nous avons vu dans le chapitre précédent, entrez l’url comme ci-dessous, en remplaçant username par celui que vous avez obtenu précédemment.

Vous devriez trouver dans l’encart Command response une réponse plutôt verbeuse, surtout si vous possédez plusieurs sensors (équipement Hue autre que les lampes et ampoules). Parmi ces informations, identifiez les parties concernant la température Hue temperature et la luminosité Hue ambient light et notez leurs id(sur l’exemple ci-dessus, pour le sensor daylight il s’agit de l’id 1).

Pour vous assurer que tout est ok, vous pouvez relancer une requête comme précédemment en ajoutant l’id de votre sensor. Vous ne devriez ainsi obtenir que les informations de ce dernier.

Sensor id 7

La configuration home assistant

Il est maintenant temps de configurer Home assistant. Nous allons ajouter de nouveaux sensors. Pour ce faire, ouvrez le fichier de configuration et ajoutez les lignes suivantes.

https://gist.github.com/quentinchap/d1b2cdfa30f8e4caca57d7b0ca9dfc5a

Si vous avez déjà un bloc sensors avec des platform configurées, veillez à simplement ajouter les deux nouveaux éléments à la suite et vérifier que tout soit formaté correctement. J’ai personnellement eu quelques erreurs à cause d’une mauvaise indentation.

Après redémarrage voici ce que j’obtiens en page d’accueil de Home assistant.

et dans la partie history

 

Détecter les mouvements

Configuration Hue

Pour la détection de mouvement, nous devons tout d’abord créer un élément virtuel du côté de notre installation Hue. Retourner sur la page http://<Adresse_IP>/debug/clip.html et paramétrer le client comme ci-dessous. Cliquez sur post et votre sensor virtuel sera créé. Conservez bien son id qui est renvoyé en réponse.

Ensuite, de la même manière que dans le début de l’article, identifiez votre capteur physique. Pour le repérer, fiez vous au type, il devrait ressembler à ZLLPresence. De mon côté l’id est le 6, je l’utiliserai donc dans les exemples qui suivent.

Nous allons maintenant définir les règles auxquels le capteur répondra. Dans un premier temps, voyons celle qui gère la détection. Configurez votre client comme l’exemple ci-dessous et cliquez sur POST.

Rule sensor on

Rule sensor on

Retrouver le code ci-dessous sur github

Maintenant, voyons la règle qui permettra de réinitialiser le capteur. Configurez votre client comme l’exemple ci-dessous et cliquez sur POST. Vous pouvez bien entendu modifier la valeur PT00:05:00, cela aura pour effet de modifier le temps avant que le reset intervienne.

Rule sensor off

Rule sensor off

Retrouver le code ci-dessous sur github

Configuration Home assistant

Maintenant que tout est en place, il ne reste plus qu’à paramétrer notre sensor côté Home Assistant. Pour ce faire, retournez dans votre fichier de configuration et ajoutez le code ci-dessous en remplaçant bien Adresse_IP et username.

Le chiffre 10 dans l’url de la resource correspond à l’id de mon sensor virtuel. Pensez à le remplacer par la valeur que vous aviez obtenue.

https://gist.github.com/quentinchap/c7f7209cb1946991b884d753767b0ca5

Un petit redémarrage de Home assistant et nous y voilà. Vous devriez avoir un indicateur de ce type en page d’accueil. Le chiffre 1 devrait s’afficher en cas de mouvement et il devrait laisser sa place à un 0 au bout de cinq minutes sans activité.

 

Notification

Super, nous sommes maintenant capables de détecter un mouvement. Le top serait d’être averti de ce dernier afin de repérer un éventuel intrus !

La solution que j’ai retenue, mais il en existe d’autres, est d’envoyer un message via telegram afin de recevoir une notification. Pour ce faire, je vais passer par IFTTT. Nous n’allons pas voir en détail chaque étape, mais nous allons nous appuyer sur cet article.

Configuration de IFTTT

Dans un premier temps, créez un applet:

if Maker then Telegram

Pour le composant marker, j’ai choisi de réagir à l’event HASS_MOTION_DETECT et pour le composant Telegram j’ai choisi send a message.

Ce qui nous donne quelque chose comme ça :

Configuration de home assistant

Maintenant dans la partie automation ajoutez la configuration suivante :

https://gist.github.com/quentinchap/7a4a9715aa588b5049bb0d0bfa14bd38

À partir de maintenant chaque mouvement détecté donnera lieu à l’envoie d’un message sur Telegram et donc d’une notification.

Conclusion

C’est tout pour aujourd’hui, vous pouvez maintenant tirer parti de toutes les possibilités du Hue motion. Pour le moment, chaque mouvement donne lieu à une notification, mais vous pouvez très simplement déclencher cette automation seulement dans certaines conditions. Par exemple, si vous avez mis en place le tracking décrit dans cet article, vous pouvez limiter les notifications aux moments où vous n’êtes pas chez vous.

 

21 réponses

  1. Laurent.JO dit :

    Bonjour Quentin,
    Super cet article c’est exactement ce que je cherchais. Cependant je ne comprends pas la partie « créer un élément virtuel du côté de notre installation Hue »
    A quoi cela sert il ? Si tu pouvais m’éclairer sur ce point.
    Je découvre cet accessoire et je veux en faire la base de mon système domotique. Pour la partie, messagerie je me base sur Raspbian+Gammu avec un dongle GSM, le tout sur onduleur. Je veux un système de détection fonctionnel même sur absence de courant.
    Merci

  2. Bonjour,

    Intéressant comme projet 🙂 N’hésite pas à nous en dire plus à l’occasion !

    L’élément virtuel, ou pour être plus précis le state virtuel va pouvoir être requêté via l’API REST. Cela va nous permettre de passer outre la limitation du Hue Motion qui ne peu pas être consulté directement. Sans ce state, jusqu’à maintenant, il n’est pas possible d’obtenir l’état du capteur.

    En espérant t’avoir apporté des réponses à tes questions 🙂
    Bonne soirée

  3. Nadir dit :

    Bonjour !

    Excellent article, très clair et qui va donner envie d’acquérir ce motion sensor dans la panoplie Hue ^^
    J’aurai une petite question côté utilisation, je me suis procuré des prises Osram Smart+ compatible Hue sur lesquelles j’ai branché des radiateurs, est-ce que tu sais si avec le sensor et le capteur de température, on pourrait déclencher les prises et inversement ? Exemple, si il capte que la pièce est en dessous de 18° ça allume la prise, donc le radiateurs, et une fois les 20° ça stoppe la prise ! Le sensor deviendrait une sorte de thermostat intelligent 🙂

    Merci d’avance !

    • Bonjour,
      Merci de ces retours. Je ne connais pas en détails Osram Smart+ donc ma réponse va rester approximative. Il est je pense impossible de faire ce montage uniquement en comptant sur la compatibilité du produit avec hue. En effet, le thermomètre est une fonction caché du hue motion et donc inaccessible de manière « simple ». Cependant, en trouvant une plateforme qui est compatible avec Osram Smart+ et qui est capable de communiquer avec des API il est surement possible de bricoler quelque chose.
      Côté communication avec des API, comme l’article le montre, Home assistant le gère très bien. Cependant concernant la prise connecté il faudrait tester ceci: https://home-assistant.io/components/light.osramlightify/. Ensuite il est possible de créer des scripts d’automation qui pourront convenir à votre cas d’utilisation.

      A bientôt.
      Bonne Journée.

  4. pwalz dit :

    Bonjour et merci pour cet article bien utile !
    J’arrive bien à interroger les capteurs, par contre pour la création d’un nouveau capteur pour la présence, cela ne fonctionne pas chez moi (retour = body contains invalid json). J’ai revérifié moult fois ce que j’ai écris dans le json sans trouver d’erreur.

    • Bonjour,
      Merci de vos retours 🙂 D’après l’erreur renvoyé par le client REST de Hue, c’est au niveau du body qu’il y a un souci. Pouvez-vous joindre les paramètre que vous avez saisis pour la requête qui pose problème? Sans ces éléments c’est compliqué de vous aider :s
      Bonne journée.

  5. Laurent B. dit :

    Bonsoir, désolé je n’avais pas vu votre réponse. Et bien le body du json est celui-ci :
    {
    « name »: « sdb.presence »,
    « type »: « CLIPGenericStatus »,
    « modelid »: « PHA_STATE »,
    « manufacturername »: « Philips »,
    « swversion »: « 1.0 »,
    « uniqueid: « sdb.presence »,
    « recycle »: false
    }
    J’ai repris votre texte en changeant le name et uniqueid, je n’explique pas pourquoi il n’arrive pas à interpretter cela.

  6. il s’agit d’une toute petite erreur de syntaxe je pense. Il semble que vous ayez oublier  » après uniqueid.

  7. Laurent B. dit :

    Arf, dire que je l’ai relu et relu sans voir l’erreur, merci 😉

  8. Eli C dit :

    Hello, des la première étape je n’ai pas le même message que toi :'( j’ai celui ci
    [
    {
    « error »: {
    « type »: 6,
    « address »: « /devidetype »,
    « description »: « parameter, devidetype, not available »
    }
    }
    ]

  9. Bonjour,

    peux-tu m’indiquer exactement l’URL et le Body que tu as utilisé ?

    Merci

  10. kurisutofa dit :

    Bonjour, merci pour cet article. Question de novice : Il est indiqué que pour ajouter la temperature des sensors, il faut rajouter des lignes dans un fichier de configuration de home assistant. Ou trouver ce fichier svp ?

  11. Bernard dit :

    bonjour, est-il possible, juste avec google home et l’assitant virtuel de google de faire la même chose s’il vous plait (donc sans Home Assitant). je vous remercie pour votre retour

    • Bonjour, à ma connaissance ce n’est pas possible étant donné que c’est un détournement du fonctionnement normal du produit. Google assistant n’est pas très ouvert et ne permet pas des « bricolages » de ce genre.

  12. Alex dit :

    Bonjour,
    Merci pour ce beau tuto. Par contre depuis que IFTTT est devenu payant serait il possible de le mettre en place avec une autre application comme tasker par exemple ?
    Merci
    ( J’espère ne pas avoir fait un double poste j’ai eu un soucis avec mon navigateur )

    • Bonjour,
      En effet plus de IFTTT gratuit donc personnellement je n’utilise plus le service (de plus je préfère favoriser les service « cloudless »). J’ai donc choisi de me passer de service externe tel que telegram et j’utilise les notifications de l’application mobile Home assistant. Cela marche bien 🙂

  1. 16 juillet 2017

    […] Hack du Hue Motion : Devotics […]

  2. 16 juillet 2017

    […] Hack du Hue Motion ( Devotics ). […]

  3. 22 août 2017

    […] Dans ce nouvel article de la série trucs, astuces et conf. maîtrisez Home assistant je vous propose de nous intéresser au Hue motion. Je vous en avais… Source link […]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.