Bonjour à tous ! Aujourd’hui on va voir une des méthodes pour une problématique bien courante en domotique. Je précise bien “UNE” des méthodes, en effet on verra d’autres articles montrant d’autres méthodes. Il s’agit de pouvoir synchroniser son réveil avec Jeedom et Tasker sur Androïd. Vous l’avez compris l’idée est de mettre au courant votre solution domotique de l’heure programmée pour votre réveil sur votre téléphone. En effet un bon 95% des personnes utilisent leur téléphone comme moyen de se réveiller.

Synchroniser son réveil avec Jeedom et Tasker

Contexte

Vous voulez déclencher des choses avant votre réveil, vous assurer un réveil en douceur :

  • café prêt
  • sèche serviette chaud
  • volet entre ouvert pour être réveillé par la lumière du soleil
  • lumière tamisée dans la chambre
  • musique diffusée partout dans la maison

Bref pour résumer vous voulez que votre domotique puisse anticiper votre réveil. Afin de vous réveiller de la meilleure manière qu’il soit et non pas comme ceci :

Synchroniser son réveil avec Jeedom et Tasker

Alors pour cela il y a une solution consistant à programmer des actions à des heures précises, mais au final on a toujours les exceptions qui font que généralement ça donne ça …. Mais si vous savez le réveil en furie alors que c’était le jour de la grasse matinée :Synchroniser son réveil avec Jeedom et Tasker

Donc le moyen fiable de pouvoir réaliser tout cela c’est de rendre dynamique l’heure de réveil en fonction de votre réveil. Donc comme je l’ai dis en introduction, il y a plusieurs façons de procéder, je vous en montrerai plusieurs. Mais aujourd’hui nous allons voir comment synchroniser votre réveil avec Jeedom et Tasker.

Synchroniser son réveil avec Jeedom et Tasker

Tasker mais c’est quoi ?

Alors je vais pas décrire ce qu’est Tasker, ce n’est pas le but de l’article. Mais pour ceux qui ignoreraient complètement ce que c’est il faut voir cela comme un logiciel de création de scénario sur votre téléphone. Il en existe plusieurs, on retrouve le très connu Automate dans cette catégorie. D’ailleurs très prochainement je vous montrerai comment utiliser Automate pour la même chose.

Que faut-il ?

Alors pour ce tuto il vous faut plusieurs choses :

  • un téléphone Androïd
  • que vous vous serviez de celui-ci pour régler votre réveil
  • l’application tasker
  • le plugin tasker Auto Alarm
  • et bien évidemment Jeedom ou toute autre solution domotique avec une api http
  • dans le cas de Jeedom, le plugin Virtuel

Première étape : Création du virtuel dans Jeedom

Synchroniser son réveil avec Jeedom et Tasker

Pour commencer on va créer un virtuel qui recevra donc les infos nécessaires :

Synchroniser son réveil avec Jeedom et Tasker

On retrouve plusieurs infos (la plupart n’étant pas affichée) :

  • Heure : ce sera l’heure du réveil au format  08:30, principalement pour l’affichage
  • Date : ce sera une date complète du prochain réveil
  • Heure tech : ce sera juste l’heure du réveil : ex : 08
  • Minute tech : ce sera la partie minute du réveil : ex : 30
  • Minutes jusqu’à : ce sera le nombre de minutes jusqu’au prochain réveil au moment de la réception
  • Jours : le nombre de jour jusqu’au réveil : 0 si c’est le jour courant

Voilà notre virtuel est prêt. Notez bien l’ensemble des Ids que vous retrouvez sur la première colonne ils nous serviront pour la suite.

Deuxième étape : Tasker

Alors, je pars du principe que vous avez Tasker d’installé et le plugin AutoAlarm d’installé et que vous l’avez lancé au moins une fois.

Création de la tâche :

On va donc créer une tâche dans Tasker qui ira chercher les infos d’alarme et les enverra à Jeedom.

Synchroniser son réveil avec Jeedom et Tasker

Vous inquiétez pas on va décrire tout ça.

  1. AutoAlarm : c’est une action Plugin de tasker qui ira chercher les infos. Important il faut mettre un délai de 3 secondes en bas. Une suffit mais je préfère mettre 3.
  2. Une condition Si qui vérifie si la variable %taskertime est affectée (en gros y a t il un prochain réveil)

Synchroniser son réveil avec Jeedom et Tasker

En 3) c’est du débug qui permet d’afficher un petit message à l’écran de ce genre :

Synchroniser son réveil avec Jeedom et Tasker

Ensuite de 4 à 9 ce sont les envois des différentes infos à Jeedom

Avec dans l’ordre :

L’heure :

https://URLJEEDOM/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=IDCMD&value=%taskertime

Avec bien entendu :

  • http ou https selon votre cas
  • URLJEEDOM à remplacer par l’url de votre Jeedom
  • APIKEYJEEDOM à remplacer par l’apikey de votre Jeedom
  • IDCMD à remplacer par l’id de la commande en l’occurence celle de l’heure
L’heure technique :

Exactement comme précédemment en remplaçant %taskertime par %hour et en remplaçant IDCMD par la commande heure tech.

La minute technique :

Exactement comme l’heure en remplaçant %taskertime par %minute et en remplaçant IDCMD par la commande minute tech.

Minutes jusqu’à :

Exactement comme l’heure en remplaçant %taskertime par %minutes et en remplaçant IDCMD par la commande minutes jusqu’à.

Jours :

Exactement comme l’heure en remplaçant %taskertime par %daysc et en remplaçant IDCMD par la commande jours.

Et enfin date:

Alors ici c’est particulier il faut remplacer IDCMD par la commande date bien évidemment et %taskertime par :

%day/%month/%year-%raw-%daysc

J’insiste sur un point, il faut absolument que l’envoi date soit le dernier de la liste. En effet c’est lui qui va lancer le scénario et comme ça on est sûr que les autres infos sont à jour quand lui est mis à jour.

La partie sinon de la tâche affiche un debug “Rien à  faire”:

Synchroniser son réveil avec Jeedom et Tasker

Et envoie à la commande date (la même commande que la dernière au dessus) ceci :

https://URLJEEDOM/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=IDCMD&value=Aucun

Cela permettra en cas de désactivation d’une Alarme en cours de prévenir Jeedom afin que lui aussi annule ce qu’il avait prévu de faire.

A partir de maintenant on peut lancer sa tâche pour tester en cliquant sur “Play” tout en bas. Si tout va bien vous devriez voir ceci sur votre dashboard :

Synchroniser son réveil avec Jeedom et Tasker

Automatisation :

Alors bien évidemment, l’idée n’est pas d’aller lancer systématiquement la tâche manuellement sinon cela perd de son intérêt. Nous allons donc créer deux profils dans Tasker.

Le premier est un profil de type Application et il faudra choisir l’application Horloge. Et en action il faudra choisir la tâche que l’on vient de créer. Par contre attention par défaut il mettra la tâche en entrée avec une flèche verte. Il faudra appuyer longuement dessus pour cliquer sur “Déplacer vers sortir”. Vous devriez obtenir ceci :

Synchroniser son réveil avec Jeedom et Tasker

Et enfin on va créer une autre tâche qui va se lancer toutes les nuits entre 22h et 6h du matin (toutes les 2 heures).  Ça sera donc un profil “Heure”. Dans ce cas précis on laissera notre tâche en entrée. Vous devriez donc obtenir ceci :

Synchroniser son réveil avec Jeedom et Tasker

 

Voilà vous avez finis pour la partie Tasker. Alors pourquoi faire deux profils. Tout simplement car il faut que Jeedom soit informé si vous changez votre réveil dans l’application horloge (ou si vous le désactivez). Mais dans le cas d’alarme récursive “Tous les jours de la semaine”, il faut aussi que Jeedom soit mis au courant car vous n’irez plus sur l’application horloge. Voilà pourquoi je fais le profil d’envoie la nuit. Et j’assure le coup du téléphone déchargée en rentrée de soirée en le faisant toutes les 2h entre 22h et 6h.

Donc voilà à partir de maintenant votre solution domotique est systématiquement au courant de l’heure de votre prochain réveil. Voyons ce qu’on peut en faire.

Scénario de réveil

Alors l’idée dans tous ça c’est bien évidemment de faire faire des choses à sa domotique avec toutes ces infos. Alors c’est partie :

Synchroniser son réveil avec Jeedom et Tasker

Commençons par le commencement :

Synchroniser son réveil avec Jeedom et Tasker

Alors au début il y a eu le Big Bang ensuite …. Quoi ? Ah oui je m’égare pardon.

Donc pour commencer il faut un déclencheur à notre scénario.

Le déclencheur

Synchroniser son réveil avec Jeedom et Tasker

Alors si vous avez suivi, vous avez du noté que c’est la fameuse commande date qui va servir de déclencheur de scénario. C’est la raison pour laquelle elle contient tout un tas d’infos qui vont permettre de la rendre unique et éviter ainsi de jouer avec la répétition dans les scénarios.

Le scénario

Alors concernant le scénario il y a pas de miracles, chacun aura ses propres besoins. Mais je vais vous détailler le mien pour vous donner des astuces notamment quelques fonctions que j’utilise.

Vous avez dû le remarquer je remonte plein d’infos. Je ne les utiliserai pas toutes mais au moins si besoin elles sont là.

Synchroniser son réveil avec Jeedom et Tasker

Alors voilà mon scénario qui je pense répond aux besoins que l’on peut avoir quand on parle de réveil et domotique à savoir :

  •  faire des actions anticipées que ce soit pour préparer un café, le chauffage ou même aider au réveil en ajustant les volets ou la lumière de la chambre.

Donc j’explique le scénario et après ça sera à vous de faire ce que vous voulez comme action :

Le bloc SI

SI #[Chambre Parentale][Réveil Ludo][Jours]# == 0 ET #[Chambre Parentale][Réveil Ludo][Date]# != “Aucun”

Là c’est simple je vérifie simplement deux choses :

  • le nombre de jours jusqu’au prochain réveil est il à 0 (je vous rappelle que la nuit est envoyé le réveil)
  • et la date n’est pas à “Aucun” (oui sur notre tâche tasker c’est le sinon dans le cas ou on annule un réveil par exemple)

Alors

La première chose que je fais je supprime toutes les éventuelles actions DANS ET A qui auraient été programmé au préalable sur ce scénario avec :

remove_inat

Ensuite je prépare mes différentes planifications 20 minutes avant, 10 minutes avant etc…

Pour cela j’utilise un bloc A avec :

time_op(str_replace(‘:’,”,#[Chambre Parentale][Réveil Ludo][Heure]#),-20)

  • La fonction time_op permet d’enlever 20 minutes à l’heure de réveil
  • la fonction str_replace permet de remplacer les : par rien pour que 8:30 devienne 830

Vous pouvez bien évidemment adapter le -20 comme bon vous semble. Une autre façon de procéder est d’utiliser le bloc DANS puisqu’effectivement nous avons aussi à disposition l’information nombres de minutes jusqu’au réveil.

Dans mon cas j’appelle un scénario qui gère pas mal de choses notamment mes lampes de chevet Yeelight. Mais aussi le café, le sèche serviette, les volets etc… Ici chacun mettra bien évidemment ce qu’il souhaite. Vous pouvez même vous envoyer une notif, faire vibrer un miband 1S et bien d’autres.

Sinon

Alors dans le cas où vous vous lèveriez plus tôt et que vous coupiez le réveil alors que les tâches DANS et A du scénario sont programmés, le bloc sinon permet de les supprimer ici aussi avec l’action :

remove_inat

Conclusion

Voilà, il était difficile pour moi de rendre ce tuto le plus amusant possible. Mais j’espère qu’en le relisant et en procédant par étape vous arriverez à faire des choses sympathiques. En tout cas normalement vous avez toutes les clés en main pour faire ces choses. Bien évidemment vous pouvez faire ça pour chaque membre de votre famille si elle a un smartphone et s’en sert pour son réveil. Il suffira de créer un virtuel pour chaque membre et un scénario pour chacun.

A vous de jouer !!



Partager sur :

Infos de l'auteur

Je m’appelle Ludovic Sarakha j’ai 32 ans et je suis habitant de Clermont-Ferrand. Concernant les études il faut savoir que bien que j’ai travaillé dans l’informatique (SSII internationale) et maintenant dans la domotique, j’ai un doctorat de Chimie des matériaux. Je suis un autodidacte passioné d'informatique, de domotique et de tout ce qui tourne autour des objets connectés

37 commentaires

  1. Salut Doc,
    merci pour le partage.
    j’aimerai faire la même avec mon chauffage qui est géré par le plugin thermostat, et donc le plugin agenda pour la programmation, mais je n’arrive pas à trouver comment faire.
    As-tu une astuce, une ligne de commande ou un conseil pour pouvoir changer les heures de démarrage dans le plugin agenda en fonction de l’heure de réveil?
    Merci
    Mulb

  2. Pingback: Notre Veille : Synchroniser son réveil avec Jeedom et Tasker -

  3. Merci beaucoup !! Très intéressant !! J’utilise énormément Tasker !
    Mais bon pour ce tuto c’est impossible à mettre en place chez moi à cause de ma sale manie de mettre 5 réveils et de retarder le dernier… Et encore… Et enc.. merde j’suis en retard ! Je me retrouverai avec un café froid ! :’)

  4. Un grand merci pour ce tuto,
    En plus de l’aspect pratique de la fonction, ça me permet d’améliorer ma compréhension de la programmation sous tasker et jeedom.
    Super instructif à mon niveau d’utilisateur rookie et je ne peux t’encourager à poursuivre la publication de ce genre d’article

    Bonne journée, Fred

  5. Ah encore une fonctionnalité de tasker que je n’avais pas imaginé……. c’est dingue on peut vraiment tout faire. Merci je vais pouvoir supprimer mon agenda de chauffage de salle de bain pour l’intégrer dans ce scénario. Au top, bravo et encore merci 🙂

  6. Au top merci !
    Ca fonctionne parfaitement sauf que mon téléphone envoi une alarme ce jour a 13h00 alors qu’elle n’existe pas (il n’y en a qu’une seule à 6h30)….

  7. Bonjour Sarakha, encore un super article 🙂
    j’ai une question, coté tasker, quand on crée la tache, on indique un “si %taskertime est affecté”, mais visiblement on ne la supprime jamais, du coup, bah elle est toujours affectée, donc on ne tombe jamais dans le “sinon” (ou j’ai zappé un truc dans le tuto ?).
    Pour ma part j’ai donc rajouté un “effacer variable” sous l’envoie du dernier get http (%day/%month/%year-%raw-%daysc).
    Je sais pas si je raconte des bêtises mais si je ne fais pas ça, même si je désactive l’alarme et que je relance la tâche à la main, la tâche envoie tout de même des (mauvaises) infos à Jeedom…
    Si ça peut aider certain 🙂

    Snouf

    • Non inutile, car en fait la première action autoalarm se charge de l’affecté ou de la laisser non affecté si pas de reveil.

      Tu pourras le constater avec les messages flash debug en activant une alarme et en retournant la desactiver tu verras bien le sinon.

      Ce que tu constates est normal car tant que tu restes sur la page tasker il ya un pseudo cache de tasker

  8. ok je me disais qu’il y avait surement un truc du genre, car quoi que je fasse je tombe toujours dans le SI, jamais dans le SINON. Je vérifierai en le laissant faire sa vie comme tu l’indiques, merci 🙂

  9. Ok je viens de tester en lui foutant la paix (et en pensant à désactiver le “effacer variable” que j’avais mis en place) et ça fonctionne parfaitement.
    Merci 🙂

  10. super article
    pour ma part j’utilise automate que je maitrise plus que tasker
    ce que j’ai fait (si ca peut donné des idées notamment @Kant1)
    J’ai 2 réveil sur mon android
    Automate envois a chaque changement de programmation le reveil, mais pour considérer que le 1er au passage en mode nuit j’active le scenario reveil qui check tout les quart d’heure si l’heure actuel = l’heure du reveil – 45min
    quand c’est vérifié je passe en mode reveil et je programme selon l’heure du réveil mes événement (allumage de la radio, des lumières, de la bouilloire) a + ou – X min selon l’heure du 1er reveil et pour l’arret de tout ca, c’est quand je sors du mode reveil donc soit programmé au bout de h+90min soit en passant “manuellement” en mode normal

    P.S. instant autopromo, j’ai mis sur le “market” d’automate, le script que j’utilise pour envoyé le timestamp de mon reveil a mon jeedom (Jeedom – Envois réveil via http) si ca peut servir a d’autre personne 😉 http://llamalab.com/automate/community/flows/16521

  11. Après plusieurs test auto alarm vois un reveil toutes les 30minutes… En gros si il est 15h12 j’ai une alarme a 15h30 et si il est 15h47 il vois une alarme à 16h00 et ceci toutes les 30 minutes de la journée. Je comprend pas. J’ai supprimé le cache de l’appli Horloge ainsi que les données mais rien n’y fait :/

  12. Pareil, j’ai un soucis avec autoalarm qui s’emmêle les pinceaux avec les alarmes (notifications) que je peux avoir dans mon agenda. tasker remonte bien les heure tec et jour correct dans jeedom par contre la variable %taskertime est fausse à partir du moment où j’ai un évènement dans mon agenda avant l’heure de réveil…

  13. J’ai pas encore pousser dans se sens, faut dire, nos reveil sont déjà trop limite pour s’autoriser le snooze :p

    par contre j’utilise aussi automate pour savoir quand madame et moi meme somme couché
    quand on se couche on branche nos téléphones, donc quand il est 22h passé, que l’ecran est eteint et le téléphone branché je considère que c’est qu’on est couché

    ensuite dans la nuit que la puissance du chargeur descends sous le W, je l’eteint parce que les téléphone sont chargé, et je rallume le chargeur 20min avant le reveil pour etre certain de commencer la journée a 100%

  14. Bonsoir mister Sarakha
    Merci pour ce nouveau tuto.
    J avais adopté la même solution mais avec une simple notification du reveil sur macrodroid , qui déclenche mon scénario reveil sous jeedom.

  15. renouleaud anthony le

    Bonjour Ludo.
    Super tuto!!
    C’est marrant que tu parles de ça car j’utilise autoalarm depuis des mois pour la gestion de réveil de la maison mais depuis quasi deux semaines autoalarm ne fonctionne plus. Taskertime m’indique toujours 00h00 et quand le réveil sonne j’ai le droit à une nouvelle heure aléatoire. J’ai beau chercher je ne vois pas d’où cela peut venir. Précision: le problème est apparu en même temps sir le téléphone de ma femme.

  16. Bonjour,
    Merci pour ce tuto !
    Comme pour communiquer vers Jeedom, il faut le Wifi ou la 3G.
    Y a t-il une possibilité (afin de ne pas avoir les notifications de jeu ou autre durant la nuit) de gérer la connexion le temps de l’update toutes les 2h ?

    Merci d’avance de votre retour.

    Je suis repassé sur l’appli basique android pour augmenter l’intéraction avec la maison. Merci

    • cédric hanquier le

      tu peux ajouter une ligne dans ta tache Tasker qui active le wifi, attend 5 secondes, joue les taches décrites par Sakarha, puis désactive le Wifi à la fin.

  17. Bonjour,
    Je ne sais pas si je suis le seul à rencontrer cette problématique mais il semblerait que :
    time_op(str_replace(‘:’,”,#value#),-20)
    pose quelques soucis.
    Erreur dans bloc (type A) : 115, heure programmée invalide : -1
    Le caractère “:” composant la #value# pose problème.
    Une idée ?
    Merci d”avance,
    Cdt

    • cédric hanquier le

      Je dis cela parce-que ça m’est arrivé : as-tu fais un copier / coller depuis le site de Sarakha ?
      Car en faisant un copier / coller, j’ai eu des erreurs, et en collant le texte dans un notepad je me suis rendu compte que les apostrophes et guillemets étaient remplacés par les formats américains, qui ne sont pas reconnu.
      Je les ai donc juste changé à la main et tout était ok.

      • cédric hanquier le

        d’ailleurs ce qui semble être un guillemet n’en est pas un, mais bien une double apostrophe (en copiant / collant depuis le site on se retrouve avec un guillemet…)

  18. @Saraha69,

    C’est incroyable la maîtrise que tu as de Jeedom et Tasker… et de tout en faite !! le plus incroyable, c’est que tu arrives a expliquer comment mettre en place des choses plutôt (très) compliqués, ceci le plus simplement du monde !

    Perso, j’adore Jeedom, la domotique en général… et tes articles ! Chaque matin, j’espère voir apparaître un nouveau tuto. Et puis s’il n’y a rien, je me console en regardant tes bons plans, qui sont dans l’ensemble très bien ciblés, contrairement a d’autres sites qui publient tout et rien et surtout n’importe quoi.

    Bref, comme beaucoup d’autres personnes, je t’encourage pour ton blog, pour le développement de Jeedom et surtout pour tes futurs articles (ainsi que tes nouveaux équipiers pour le blog) !

    • Merci vraiment énormément pour ton commentaire ça fait plaisir à lire.

      Pour les tutos oui vu que ca prend plus de temps qu’un test, il n’y en a pas tous les jours, mais yen aura toujours régulièrement

  19. Bonjour,

    Merci à vous deux pour votre retour.
    @SARAKHA63: J’ai omis de te remercier pour ton tuto. Merci à toi.
    Concernant le contenu de la #value# , je te donne un exemple : “06:00”
    Entre temps, la réponse apportée par @CÉDRIC HANQUIER est tout à fait correct est m’a permit de comprendre la fonction str_replace qui remplace le caractère ‘:’ contenu dans la #value# par du “vide” symbolisé par les doubles ‘ => ”
    Cela fonctionne. Encore une fois, merci à vous deux !! 🙂

  20. Bonjour à tous,

    Moi qui viens justement de passer sur un Android (Oneplus 5 suite à l’un de tes bons plan) je trouve que cela tombe pile-poil avec le type de procédé que je cherchais à mettre en place. Un GRAND MERCI au à toi @sarakha63.

    Petite question, est-il possible avec Tasker de créer une tâche en amont qui selon le jour ou le nom du réveil envoie l’information à Jeedom?

    Je m’explique, le lundi/mardi/jeudi/vendredi une alarme avec une heure définie et le mercredi une autre alarme avec une autre heure définie (le mercredi étant la journée Homework+Garde d’enfant donc pas besoin de réveiller tout le monde).

    Je vais faire quelque recherche, mais est-ce que cela est possible?

    Encore un grand merci à toi et ton équipe de rédacteur pour le temps passer aux tests/tutos/rédactions.

  21. Pingback: Bilan de la Semaine 43 - La Domotique de Sarakha63

  22. Bonjour
    Je voudrai faire une simulation d’aube depuis jeedom sur la yeelight bed mais je n’arrive pas à programmer le scenario. Quelqu’un l’a-t-il déjà fait ? merci

Laisser un commentaire