(modifié le 22 juillet 2020 à 23:40)

Il y a quelques mois je vous présentais les ampoules LED colorées Philips Hue.

simulateur-aube-philips-hue-domoticz

Quoi de plus stressant qu'un réveil qui vous interrompt votre nuit de sommeil ?

J'ai eu l'idée de créer un script de simulateur d'aube. En effet le corps humain de met en route plus naturellement avec une arrivée progressive de la lumière qu'avec un réveil qui sonne brusquement dans la pénombre.

Fonctionnement

J'utilise ma plateforme de domotique sous Domoticz qui tourne sur un Raspberry Pi, mais vous pouvez utiliser n'importe quelle machine capable d'envoyer une commande Linux.

Il vous faut au minimum :

  • une machine GNU/Linux
  • une ampoule Hue (autre que Lux)
  • un pont Hue (bridge)

Votre pont Hue doit être en dhcp static ou disposer d'une IP fixe.

Nous allons utiliser l'API du pont pour piloter l'ampoule. Fonctionne avec toutes les version du pont, v1 et v2.

Etape 1 : créer un accès sur l'API

Le pont accepte uniquement les ordres venant de périphériques enregistrés (comment). Allez sur :

http:///<ip-pont>/debug/clip.html

Si vous ne connaissez pas l'adresse IP locale de votre pont allez ici :

https://discovery.meethue.com/

Un périphérique/utilisateur enregistré n'est rien d'autre qu'une chaine alphanumérique présente en liste blanche sur le pont (whitelist).

Création d'un utilisateur whitelist (cf doc) :

  • URL: /api/
  • Message Body: {"devicetype": "hue_BM#domoticz"}
  • Bouton: POST

Le pont vous informe que vous n'avez pas appuyé sur son unique bouton :

hue-api-ajouter-utilisateur

Presser le bouton puis dans les secondes qui suivent appuyez à nouveau sur POST (20 secondes environ) :

hue-api-ajouter-utilisateur-ok

Cette fois c'est bon, notez précieusement notre username :
3b6d2f9634466347f4f47faba3685b.

J'en profite pour vous donner quelques commandes qui peuvent être utiles.

Pour lister tous vos username disponibles il faut le faire à partir d'un username valide :

  • URL: /api/<username>
    Ex : /api/3b6d2f9634466347f4f47faba3685b
  • Bouton: GET

Pour supprimer un username (username2 sera supprimé) :

  • URL: /api/<username>/config/whitelist/<username2>
    Ex : /api/3b6d2f9634466347f4f47faba3685b
  • Bouton: DELETE

Doit renvoyer : "success": "/config/whitelist/<username2> deleted"

Exemple en bonus pour faire clignoter votre lampe :

  • URL : /api/xxxxxxxxxxxxxxxx/lights/1/state
  • {"alert":"select"}
  • bouton : PUT

Autre possibilités de clignotement :

{"alert": "select"} : clignote une fois
{"alert": "select", "hue": 50000} : clignotte une fois puis couleur violet
{"alert": "lselect"} : clignote pendant 30 secondes
{"alert": "lselect", "hue": 50000} clignote 30 secondes puis couleur violet

Présentation du script bash

Le script bash que j'ai créé supporte plusieurs arguments facultatifs permettant à Domoticz de l'utiliser facilement.

▶️ Récupérez le script reveil.sh

Si aucun argument n'est précisé c'est une couleur verte à l'intensité maximum (255) avec une transition d'une minute qui commence :

pi@domoPi ~/scripts_bm $ ./reveil.sh


 Couleur: vert
 Intensite: 255
 Duree: 1 min

 { "on":true,
 "bri":255,
 "xy":[0.214,0.709],
 "transitiontime":600 } http://192.168.0.20/api/3b6d2f9634466347f4f47faba3685b/lights/1/state


[{"success":{"/lights/1/state/transitiontime":600}},{"success":{"/lights/1/state/on":true}},{"success":{"/lights/1/state/xy":[0.2140,0.7090]}},{"success":{"/lights/1/state/bri":254}}]

Si vous obtenez "success" alors c'est que tout s'est bien passé. Sinon un message d'erreur vous dira ce qui pose problème. Exemple : "body contains invalid json".

C'est pour cette raison que j'affiche systématiquement les arguments en console, si l'un d'entre-eux est vide alors il y a un souci dans vos arguments. Aucun contrôle n'est fait par le script, c'est à vous de faire attention.

La liste des couleurs supportées par le script sont : orange, bleu, chartreuse, chocolat, cyan, vert (par défaut), magenta, marron, rouge, rose, jaune, violet, blanc. Vous pouvez modifier le script si vous souhaitez une autre couleur XY. L'application Android Hue Pro (payant) permet facilement de récupérer une valeur précise facilement.

Une fois que tout fonctionne comme prévu, passons à l'intégration dans domoticz.

Intégration dans domoticz

Je pars du principe que vous avez déjà appairé votre Hue à Domoticz pour la faire apparaître dans les dispositifs (très simple).

Contrairement à mon billet sur le pilotage de mon ampli Yamaha je n'ai pas crée d'interrupteur virtuel mais un scénario. La raison est simple : nous n'avons pas d'état OFF.

Je veux que l'ampoule 3b6d2f9634466347f4f47faba3685b.

Dans Scénarios > Créer un scénario :

scenario-config

  • Nom : "Réveil progressif 8h10 15m (Bash)"
  • Type : scène
  • Protégé : non coché
  • Action On: script:///home/pi/scripts_bm/reveil.sh orange 255 15
  • Action Off: vide
  • Description : <couleur> <intensité> <durée d'allumage en minute>

Aucun dispositif d'activation. En revanche nous allons utiliser un délai d'extinction pour que l'ampoule s'éteigne après un certain temps, j'ai fixé ce délai à 20 minutes. Je considère après 20 minutes que je n'ai plus besoin d'éclairer la pièce dans laquelle je dors car je n'y suis plus.

Choisir dans Dispositifs l'ampoule Hue :

scenario-config-extinction

  • Dispositif : votre ampoule Hue
  • Commande : Off
  • Délai d'allumage : 0
  • Délai d'extinction : 1200 secondes (20 minutes)
  • Couleur : noir, Nuance : 0, Luminosité : 0, RGB

Vous pourriez très bien choisir une commande sur "On" pour choisir une autre couleur et intensité, comme le blanc pour éclairer la pièce normalement. A vous de voir !

Planification du scénario

C'est un jeu d'enfant. Cliquez sur Scénarios puis sur "planning" en bas de votre scénario :

scenario-planning

Choisir les jours et l'heure de déclenchement.

Vous pouvez créer plusieurs programmations de déclenchement dans le même scénario (semaine, weekend, etc).

Conclusion

Ce billet n'a aucun lien avec une quelconque étude de santé, il s'agit d'une expérience personnelle. Il s'agit d'un script qui peut être amélioré avec des données plus précises comme la température de la lumière et différents paliers.

C'est donc un résultat très subjectif. Personnellement je trouve que ce système permet d'émerger plus facilement le matin, de façon moins brutale. La façon dont on se réveille me semble important pour aborder le reste de la journée.

Si le nombre d'heures de sommeil est suffisant c'est la lumière qui me réveille (avant le réveil). C'est pourquoi je ne la déclenche pas trop tôt, je ne veux pas me lever 30 minutes avant ! Si vous avez une dette de sommeil alors c'est bien votre réveil qui va vous sortir brutalement du réveil, et vous verrez la lumière à son maximum. Ce qui est plutôt bon car l'organisme se "met en route" dès que la lumière est présente. Tout dépend si vous avez un sommeil léger et qu'un simple détail vous réveille ou bien si au contraire vous dormez sans problème dans un environnement changeant.

Mine de rien ce petit script permet de se réveiller en utilisant un autre sens que l’ouïe. Il qui démontre une fois de plus que ces ampoules Hue peuvent servir à bien des usages et ne se limitent pas à l'effet waouh 🙂

note : si vous souhaitez piloter vos systèmes Hue en Python sachez que la librairie Qhue existe

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter