Aujourd’hui, j’ai terminé un plug-in Vera pour transformer une simple lampe de chevet en reveil lumineux. Vous pouvez le retrouver ici sur l’app store, ou directement depuis votre Vera.
Pour réaliser le plugin, je suis parti du tres bon plugin « WakeupRamp » de ZMaF que vous pouvez retrouver ici sur le forum Micasaverde. Ce plugin offre la possibilité de générer une croissance progressive de lumière. C’est un bon début, mais cela ne pas suffisant pour faire reveil lumineux.
Initialement, j’utilisais le WakeupRamp couplé une scène programmée. Pas mal pour débuter, mais cela présentait un défaut principal : l’heure que l’on programmait sur la scène correspondait à l’heure du début de la rampe alors que sur ce genre de reveil, on règle l’heure de fin de la rampe qui correspond à l’heure du lever… même si le calcul mental est bon pour notre matière grise, à la longue ça use et ce n’est pas très WAF. Alors j’ai eu l’idée de créer un plugin pour correspondre à mon usage perso.
1/ Le fonctionnement du plugin
1.1 La programmation de l’heure de l’alarme
Parce qu’un reveil, c’est avant tout une alarme, après avoir utilisé pendant plusieurs mois une scène, j’ai trouvé le mode de programmation horaire bien adapté à cette usage : Alarme unique / Répétition Journalière / etc … J’ai donc gardé ce principe pour le plugin. J’ai donc gardé un rendu graphique similaire même si la mécanique derrière a été complètement développée pour l’occasion.
Quelques captures pour illustrer :
Ci-dessous, l’écran d’accueil des « Timers » (par ce que l’on peut en mettre plusieurs 🙂 ). Cet écran présente un résumé de chacun deux. Depuis la case a cocher, il est tres facile d’en activer / désactiver un ou plusieurs.
Le bouton Add Timer permet d’en ajouter de nouveaux :
Dans cet écran on choisi les paramètres de notre « Timer » : son nom, sa durée, le type (Interval / Jours de la semaine / Jours du Mois / Absolue) …
Rien de tres compliqué, puisqu’on retrouve le principe présent dans la programmation des scènes à une difference près : l’heure que l’on sélectionne n’est pas l’heure du début de la rampe mais celle de l’atteinte du maximum.
1.2 L’arrêt manuel
Comme sur le plugin d’origine (avec quelques corrections de bug supplémentaires), il est possible de stopper la rampe si vous éteignez manuellement votre lampe de chevet durant le cycle.
Pour que cela marche le mieux possible, je vous conseil d’utiliser le variateur AEON Lab (que vous retrouverez ici chez Planète Domotique, ou ici chez Domadoo). En effet ce module fait une remontée d’info immédiatement, alors que pour d’autres, il faut attendre un poll … ce qui peut provoquer la non détection de votre commande par la Vera, donc par voie de conséquence par le plug-in.
1.3 Commande via Scène
En plus des Timers, il est toujours possible d’utiliser le plugin via vos scènes. Vous pouvez donc l’utiliser avec le plug-in Google calendar par exemple.
1.4 Condition de déclenchement
Via le paramétrage du plugin, il est possible de conditionner le déclenchement du reveil en fonction de l’état de un ou plusieurs modules. Si par exemple, vous avez comme moi un flag qui permet de savoir s’il y’a quelqu’un chez vous, vous pouvez faire en sorte que le reveil ne se lance que si ce flag est actif (ou au contraire non actif). Nous verons le paramétrage plus en détail dans le chapitre 2 de cet article.
2/ La configuration
La configuration reste assez simple, il vous faut régler les paramètres suivants :
- devices : la liste des ID des lampes que vous voulez contrôler pour votre reveil. (exemple : 14,36)
- Ramp Time Min : Ce paramètre permet de définir la durée par défaut de la rampe lumineuse (en minute). Vous pourrez ensuite modifier cette durée pour chacun de vos timers. C’est également cette durée qui est prise si vous activez le module dans une scène.
- maxLevel : C’est la position maximum de la rampe
- minInterval : C’est la durée minimal en seconde entre deux augmentations de niveau lumineux (en seconde). Si votre module variateur ne fait pas de remontée d’info, il vous faudra augmenter ce paramètre pour faciliter la detection d’un arrêt manuel.
- inhibitingDevices (optionnel) : la liste des ID des modules conditionnant le déclenchement du reveil séparé par des virgule. Par défaut le module ne se lance que si tous les modules de cette liste sont éteints (off). Si vous voulez que le module ne se lance que si le module est allumé (on) il faut rajouter un moins devant l’id. Exemple : 36,-27,45 = La reveil ne se lancera que si le module 36 et le module 45 sont éteints (off) et que le module 27 est allumé (on).
3/ Ce qu’il reste à faire
3.1 Une interface mobile
Ayant un emploi du temps assez changeant, je règle mon reveil presque tous les soirs. J’aimerais pouvoir utiliser une simple page web optimisée pour mobile afin de pouvoir regler mon reveil plus rapidement. Ce n’est pas tres compliqué a faire pour la partie mise à jour du paramètre du plugin, par contre je suis loin d’être un pro pour ce qui est de l’interface graphique. S’il y’a des experts, n’hésitez pas a vous manifester dans les commentaires 😉
L’objectif sera de faire page qui ressemblerait par exemple aux horloges sur l’iphone :
3.2 Meilleur gestion des évènements
Pour allez plus loin, je vais rajouter des évènements qui pourront être utilisés dans les scènes :
- La rampe démarre (déjà disponible)
- La rampe arrive au milieu
- Fin de la rampe lumineuse (déjà disponible mais à améliorer)
l’idée est de pouvoir enrichir notre reveil en ajoutant par exemple une scène qui fait chauffer le seiche serviette de la salle de bain ou encore l’ouverture des volets …
4 Conclusion
J’espère que ce petit développement maison vous aidera à rendre vos matins moins douloureux 😛 . N’hésitez pas a me faire vos retour par commentaire.
This post is also available in: Anglais