Bonjour à tous, aujourd’hui on va voir un petit pas à pas permettant d’avoir un petit bilan météo personnalisé. C’est un sujet d’actualité la météo étant si imprévisible.

Bilan Météo

Et si on se servait de la domotique pour avoir des notifications régulières pour un bilan météo, et éventuellement nous alerter lors d’un événement imminent. L’article sera court mais répondra au besoin.

  • recevoir un bilan météo le matin pour la journée en cours
  • le recevoir la veille pour le lendemain
  • connaître les fêtes à souhaiter
  • pouvoir demander un bilan météo à la demande
  • un exemple d’alerte avec la pluie

Petit Bilan Météo : De quoi allons nous avoir besoin ?

Alors pour réaliser tout ceci il va nous falloir quelques plugins :

  • un plugin pour recevoir des notifications (dans mon exemple ce sera Telegram, mais vous pouvez tout aussi bien utiliser slack, les notification mobiles, un email ou un sms)
  • un plugin qui donnera la météo (dans mon exemple ça sera Darksky mais idem vous pouvez très bien en utiliser un autre)
  • et enfin un plugin permettant d’avoir quelques informations de vigilance, ici ce sera Vigilance Météo
  • en option on peut aussi installer le plugin Domogeek (vous verrez par la suite à quoi il peut servir)

Alors bien évidemment le but de l’article étant de donner une idée de conception de scénario pour recevoir le bilan météo et / ou des avertissements, je ne vais pas expliquer ici comment se configure chaque plugin et part du postulat qu’ils sont fonctionnels chez vous. Idem, je n’aime pas donner du tout prémaché dans mes articles. Je ne suis pas partisan du copier coller, je préfère 100 fois au travers d’un exemple que vous voyez certaines philosophies que vous pourrez ensuite ré appliquer de vous même sur d’autres cas.

Bilan météo : Les scénarios

Alors commençons à réaliser un petit bilan météo du matin. Pour rappel dans mon cas je centralise mes notifications donc mes appels pour lancer les notifications feront appel à un scénario mais dans votre cas vous pourrez bien sûr appeler directement votre commande de notification. Si vous voulez quand même voir à quoi ressemble cette gestion centralisée, j’en avais parlé dans cet article :

Utilisation des tags dans Jeedom – Poubelles V2 Le retour Ultimate et rappels

Bilan météo : Scénario du matin

Bilan Météo

On commence par créer un scénario qui sera Programmé et lancé tous les jours à 6h30 du matin avec :

30 6 * * *

Ensuite voici le contenu du scénario :

Bilan Météo

Alors on y retrouve plein de choses :

  • un petit laïus personnalisé
  • les conditions de la journée
  • les bornes de températures
  • l’index UV
  • la probabilité de pluie
  • la vitesse du vent
  • le taux d’humidité
  • la pression atmosphérique
  • le point de rosée
  • les heures de lever et de coucher du soleil (attention ici j’utilise la fonction formatTime pour que les heures ressemblent bien à des heures)
  • EN OPTION avec le plugin Domogeek dont j’ai parlé au dessus on peut même se notifier la liste des Saints du jour
  • et une conclusion personnalisée

Comme vous pouvez le voir dans mon screen, je faisais une différence entre le vendredi et les autres jours pour mettre un clin d’œil dans le message.

Mon premier calcul au dessus du message sert juste à ramener la probabilité de pluie donnée par Darksky en pourcentage (d’origine c’est une valeur entre 0 et 1).

Bilan Météo

Et voilà ce que l’on reçoit et on voit bien qu’il est arrivé à 6h30.

Bilan météo : Scénario du soir

Vous préférez vous coucher et avoir les infos du lendemain pas de soucis :

Bilan Météo

On commence par créer un scénario qui sera Programmé et lancé tous les jours à 22h00 par exemple :

0 22 * * *

Ensuite voici le contenu du scénario :

Bilan Météo

Alors on y retrouve toujours plein de choses :

  • un petit laïus personnalisé
  • les conditions du lendemain
  • les bornes de températures
  • l’index UV
  • la probabilité de pluie
  • EN OPTION avec le plugin Domogeek dont j’ai parlé au dessus on peut même se notifier la liste des Saints du jour
  • et une conclusion personnalisée

On retrouve encore ma distinction entre le Vendredi et les autres jours mais c’était pour mon clin d’oeil personnel. Dans votre cas, vous n’aurez pas à distinguer les jours. Cependant, libre à vous de personnaliser le message en fonction des jours, des mois, ou de ce que vous voulez.

Mon premier calcul au dessus du message sert encore une fois juste à ramener la probabilité de pluie donnée par Darksky en pourcentage (d’origine c’est une valeur entre 0 et 1)

Bilan météo : A la demande

Comme vous avez pu le voir dans mes textes dans la conclusion il y a ceci :

PS : N’oublies pas de me demander dans la journée ‘Météo des prochains jours’ ou ‘Météo des prochaines heures’ pour que je te donne des détails.

Donc vous voyez le topo. A n’importe quel moment de la journée je demande « Météo des prochaines heures » ou « Météo des prochains jours » pour recevoir un rapport des plus complet. Bien évidemment vous l’aurez compris cela fait appel aux interactions.

Bilan météo : Interactions « Météo des prochains jours »

Pour commencer créons le scénario (le type programmé ou déclenché n’a aucune importance, il ne faut rien mettre, ce scénario sera uniquement appelé par une interaction) :

Bilan météo

Je ne vais pas le détailler on utilise juste les commandes infos des prochains jours disponibles dans Darksky (dans mon cas). On a toujours le calcul de la probabilité en pourcentage. Par contre une chose importante et très importante :

Nous n’utiliserons pas la commande de notification mais la commande scenario_return

Le fait d’utiliser cette fonction aura pour effet de renvoyer l’ensemble du message à l’interaction qui aura appelé le scénario.

NB : ce truc qui fait peur date_fr(date(‘l’, strtotime(‘+3 day’,strtotime(date(‘Y-m-d’))))) permet juste de me donner en français le nom du jour n+3 par exemple.

Ensuite créons une interaction des plus simples

Bilan Météo

Vous avez vu on peut pas faire plus simple :

  • une question : « Météo des prochains jours »
  • une réponse qui sera :  #valeur#
  • et on attend 1 seconde pour répondre

L’onglet Action à cependant une importance

Bilan météo

En effet la seule action à faire sur cette interaction est d’appeler le scénario qu’on a préalablement créé. Le fait d’avoir utilisé « scenario_return » dans le scénario donnera la réponse complète à l’interaction.

bilan météo

Et voilà ça marche. Je pose la question et je reçois la réponse et ceci à n’importe quel moment de la journée.

Bilan météo : Interactions « Météo des prochaines heures »

On peut appliquer le même principe pour la météo des prochaines heures. Je ne vais pas tout détailler car c’est la même chose.

Le scénario :

bilan météo

L’interaction :Bilan météoBilan météo

L’interaction est strictement la même avec pour seule différence le scénario appelé et la question bien entendu.

Et voilà parfait un petit bilan des prochaines heures à n’importe quel moment.

Bilan météo : Gérer les alertes exemple de la pluie

Allez un petit dernier scénario pour la route. En utilisant le plugin Vigilance Météo qui peut aussi donner la probabilité de pluie à une heure on peut se faire notifier en cas de risque trop fort de pluie.

Voici le scénario :

bilan météo


bilan météo

Quelques explications :

Le scénario est déclenché sur la valeur « Pluie prévue dans l heure ». Je définis la valeur seuil à 20 (chacun fait comme il veut mais c’est une valeur de 0 à 48). Et je notifie le message. Pour info j’ai coché la case au début du SI pour ne pas avoir de répétition. En gros une fois que ça a dépassé 20 je serai notifié mais que une seule fois tant que ça sera pas passé en dessous de 20 au moins une autre fois.

bilan météo

Conclusion

Voilà ! J’espère surtout que le principe vous aura donné des idées. Car il peut s’appliquer à tout et n’importe quoi. Que ce soit des alertes pour la pluie des vigilances ras de marée, des allergies au pollen et j’en passe. Et les principes vus ici peuvent s’appliquer même en dehors de la météo. Alors laissez place à votre imagination !!!!!



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

18 commentaires

  1. Merci pour le tuto, c’est une vachement bonne idée.
    Manque de change l’expression date_fr(date(‘l’, strtotime(‘+3 day’,strtotime(date(‘Y-m-d’))))) ne fonctionne pas chez moi, elle me revoie une valeur vide. C’est liée a strtotime qui n’est pas reconnu. Une idée?
    Merci

  2. Merci,merci.
    j utilise désormais les interaction!! J’ai eu un peu de mal à transformer une valeur en texte.
    En fait tout est prévu dans les interactions : conversion binaire. 0=off|inactif,éteint …Plus sympa dans un message.

  3. Bonsoir
    Petite évolution pour l’affichage de la direction du vent qui est bien utile pour les personnes faisant du velo.

    $angle = cmd::byString(« #[Meteo][Meteo localisation Nico][Direction du Vent]# »);

    $angle = ($angle % 360) + ($angle – intval($angle));

    $variation = $test = 22.5;
    $list_direction = array(‘Nord’, ‘Nord est’, ‘Nord est’, ‘Est’, ‘Est’, ‘Sud est’, ‘Sud est’, ‘Sud’, ‘Sud’, ‘Sud ouest’, ‘Sud ouest’, ‘Ouest’, ‘Ouest’, ‘Nord ouest’, ‘Nord ouest’, ‘Nord’);

    for($i=0; $test setData(« direction », $list_direction[$i]); .

    Puis dans le scenario ajouter variable(direction) pour avoir la direction du vent

  4. Bien le bonjour jeedomiens 🙂

    J’ai vu qu’avec telegram, certains utilisateurs s’envoyaient des captures de caméra. J’aimerai m’envoyer les prévisions météo sous forme d’image. Plus exactement, j’aimerai m’envoyer le graphe du plugin meteoprev qui depuis Juillet m’a l’air fiable :

    aluminum dioxide

    C’est possible ?

  5. Bonjour Nicocha,
    Je ne comprend pas comment tu insères la direction du vent? Où je déclare la variable ?
    Est ce que une capture ou une explication est possible ?

    Merci beaucoup pour l’article en tout cas.

  6. Salut Jonathan
    Je remarque qu’il manque un morceau

    $angle = cmd::byString(« #[Meteo][Meteo localisation Nico][Direction du Vent]# »);
    $angle = ($angle % 360) + ($angle – intval($angle));
    $variation = $test = 22.5;
    $list_direction = array(‘Nord’, ‘Nord est’, ‘Nord est’, ‘Est’, ‘Est’, ‘Sud est’, ‘Sud est’, ‘Sud’, ‘Sud’, ‘Sud ouest’, ‘Sud ouest’, ‘Ouest’, ‘Ouest’, ‘Nord ouest’, ‘Nord ouest’, ‘Nord’);

    for($i=0; $test setData(« direction », $list_direction[$i]);

    Le résultat est dans une variable nommé direction

  7. Salut Nicocha,
    J’y arrive pas. J’ai ça dans le mail reçu:

    la vitesse de vent est de 33.48km/h et il vient de 193 $angle = cmd::byString(« 193 »); $angle = ($angle % 360) + ($angle – intval($angle)); $variation = $test = 22.5; $list_direction = array(‘Nord’, ‘Nord est’, ‘Nord est’, ‘Est’, ‘Est’, ‘Sud est’, ‘Sud est’, ‘Sud’, ‘Sud’, ‘Sud ouest’, ‘Sud ouest’, ‘Ouest’, ‘Ouest’, ‘Nord ouest’, ‘Nord ouest’, ‘Nord’); for($i=0; $test setData(« direction », $list_direction[$i]);)

    Je pense que je déclare pas la variable comme il faut.
    Je fait comme ça dans le mail : la vitesse de vent est de #[météo][Météo][Vitesse du vent]#km/h et il vient de #[météo][Météo-Montmorillon][Provenance du Vent]# variable(direction)

    Je vois pas..

  8. Bonjour,
    merci de ton aide,
    j’ai bien créé un bloc « code » et j’ai collé dedans :

    —début—-
    $angle = cmd::byString(« #[météo][Météo-Montmorillon][Provenance du Vent]# »);
    $angle = ($angle % 360) + ($angle – intval($angle));
    $variation = $test = 22.5;
    $list_direction = array(‘Nord’, ‘Nord est’, ‘Nord est’, ‘Est’, ‘Est’, ‘Sud est’, ‘Sud est’, ‘Sud’, ‘Sud’, ‘Sud ouest’, ‘Sud ouest’, ‘Ouest’, ‘Ouest’, ‘Nord ouest’, ‘Nord ouest’, ‘Nord’);

    for($i=0; $test setData(« direction », $list_direction[$i]);

    —fin—-

    par contre je ne comprend pas comment appelé la variable…???
    il faut que je la nomme? comment?
    dans le mail « modèle »,j’ai ça:
    …..
    la vitesse de vent est de #[météo][Météo][Vitesse du vent]#km/h et il vient de #[météo][Météo-Montmorillon][Provenance du Vent]# variable(direction)
    …..

    ça m’affiche juste :
    ….
    la vitesse de vent est de 29.52km/h et il vient de 214
    …..

    merci encore de ton aide

  9. Comme ça? :

    $angle = cmd::byString(« #[météo][Météo-Montmorillon][Provenance du Vent]# »);
    $angle = ($angle % 360) + ($angle – intval($angle));
    $variation = $test = 22.5;
    $list_direction = array(‘Nord’, ‘Nord est’, ‘Nord est’, ‘Est’, ‘Est’, ‘Sud est’, ‘Sud est’, ‘Sud’, ‘Sud’, ‘Sud ouest’, ‘Sud ouest’, ‘Ouest’, ‘Ouest’, ‘Nord ouest’, ‘Nord ouest’, ‘Nord’);

    for($i=0; $test setData(« direction », $list_direction[$i]);

    ça change rien pour le moment.

  10. J’ai essayé ça (si le blog veut bien ne pas corriger):
    $angle = cmd::byString(« #[météo][Météo-Montmorillon][Provenance du Vent]# »);
    $angle = ($angle % 360) + ($angle – intval($angle));
    $variation = $test = 22.5;
    $list_direction = array(‘Nord’, ‘Nordest’, ‘Nordest’, ‘Est’, ‘Est’, ‘Sudest’, ‘Sudest’, ‘Sud’, ‘Sud’, ‘Sudouest’, ‘Sudouest’, ‘Ouest’, ‘Ouest’, ‘Nordouest’, ‘Nordouest’, ‘Nord’);
    for($i=0; $test->setData(« direction », $list_direction[$i]);)

    Mais j’ai syntax error, unexpected end of file
    Alors je pense à une erreur mais ….

  11. Bonjour et grand merci pour tous ces tutos très interessants et inspirants…
    J’ai cependant pas mal galéré pour faire fonctionner celui-la, en effet la « formule qui fait peur » ne fonctionnait pas pour moi, sauf après la suppression des tirets dans la date :
    avant – date_fr(date(‘l’, strtotime(‘+3 day’,strtotime(date(‘Y-m-d’)))))
    après – date_fr(date(‘l’, strtotime(‘+3 day’,strtotime(date(‘Ymd’)))))

    Si cela peut aider quelqu’un…

    Encore merci.

Laisser un commentaire

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